[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『集計の仕方について』(うた)
下記のような元データがあるとして、
注文日、決済方法の次に購入商品が横一列に並びます。
1点購入の人もいれば、複数買っている人もいます。
注文日 決済方法 商品1 金額 商品2 金額 商品3 金額
これを下のように集計したいのですが、
どのようにするのが良いでしょうか。
【2020年11月でフィルタ】
決済方法 商品 件数 金額
複数商品購入したときに、商品1の列にまとめるとピボットでもいけると思いますが、
なるべく元データを崩さずに集計する方法はありますか。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
注文年 2020 注文月 11
決済方法 商品 件数 金額 クレジット AAA 1 500 BBB 1 700 現金 AAA 1 500 BBB 2 1400 CCC 1 200
'------ let ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"注文日", type date}, {"決済方法", type text}, {"商品1", type text}, {"金額", Int64.Type}, {"商品2", type text}, {"金額2", Int64.Type}, {"商品3", type text}, {"金額3", Int64.Type}}), ピボット解除された他の列 = Table.UnpivotOtherColumns(変更された型, {"注文日", "決済方法"}, "属性", "値"), 追加された条件列 = Table.AddColumn(ピボット解除された他の列, "商品", each if Text.StartsWith([属性], "商品") then [値] else null), 追加された条件列1 = Table.AddColumn(追加された条件列, "金額", each if Text.StartsWith([属性], "金額") then [値] else null), 下方向へコピー済み = Table.FillDown(追加された条件列1,{"商品"}), フィルターされた行 = Table.SelectRows(下方向へコピー済み, each [金額] <> null and [金額] <> ""), 挿入された年 = Table.AddColumn(フィルターされた行, "注文年", each Date.Year([注文日]), Int64.Type), 挿入された月 = Table.AddColumn(挿入された年, "注文月", each Date.Month([注文日]), Int64.Type), 削除された列 = Table.RemoveColumns(挿入された月,{"注文日", "属性", "値"}), 並べ替えられた列 = Table.ReorderColumns(削除された列,{"注文年", "注文月", "決済方法", "商品", "金額"}) i n 並べ替えられた列
(マナ) 2020/11/14(土) 15:14
(うた) 2020/11/14(土) 15:41
let ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], ピボット解除された他の列 = Table.UnpivotOtherColumns(ソース, {"注文日", "決済方法"}, "属性", "値"), 追加された条件列 = Table.AddColumn(ピボット解除された他の列, "商品", each if Text.StartsWith([属性], "商品") then [値] else null), 追加された条件列1 = Table.AddColumn(追加された条件列, "金額", each if Text.StartsWith([属性], "金額") then [値] else null), 下方向へコピー済み = Table.FillDown(追加された条件列1,{"商品"}), フィルターされた行 = Table.SelectRows(下方向へコピー済み, each [金額] <> null and [金額] <> ""), 挿入された年 = Table.AddColumn(フィルターされた行, "注文年", each Date.Year([注文日]), Int64.Type), 挿入された月 = Table.AddColumn(挿入された年, "注文月", each Date.Month([注文日]), Int64.Type), 削除された列 = Table.RemoveColumns(挿入された月,{"注文日", "属性", "値"}) in 削除された列
(マナ) 2020/11/14(土) 18:49
(マナ) 2020/11/14(土) 22:10
これでデータ数が増えても更新でいけますね。
年、月のフィルターは、パワークエリで挿入しなくても、
ピボットにしてからでも絞れますもんね。
今日初めて知りましたが、パワークエリに感動しています。。
本当にありがとうございます。
(うた) 2020/11/14(土) 22:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.