- ベストアンサー
Excel Power Queryのグループ化
下記のようなケースで”同じ年月”で”複数レコード”がある場合(下記例では2023/06)、”更新日時の新しいほう”の数量を引っ張る為には、一つのクエリーで一つのグループ化では無理でしょうか?ご教示頂きたくお願いします。 取引先 年月 更新日時 数量 ○×商事 2023/05 2023/05/01 1:00 7個 ○×商事 2023/06 2023/06/01 9:24 6個 ○×商事 2023/06 2023/06/08 7:30 7個
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1No2は数量の最大値だと勘違いしてました。 他者の助言をいただいて作成したものです。 let ソース = Excel.CurrentWorkbook(){[Name="テーブル2"]}[Content], ChangedType = Table.TransformColumnTypes(ソース,{{"取引先", type text}, {"年月", type date}, {"更新日時", type datetime}, {"数量", Int64.Type}}), GroupedRows = Table.Group(ChangedType, {"年月", "取引先"}, {{"更新日時", each List.Max([更新日時]), type datetime}}), MergedRows = Table.NestedJoin(GroupedRows,{"年月", "取引先"},ChangedType,{"年月", "取引先"},"NewColumn"), ExpandedRows = Table.ExpandTableColumn(MergedRows, "NewColumn", {"数量", "更新日時"}, {"数量", "更新日時_1"}), FilteredRows = Table.SelectRows(ExpandedRows, each [更新日時] = [更新日時_1]), Result = Table.RemoveColumns(FilteredRows,{"更新日時_1"}) in Result
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1719/2589)
No.1の追加です。 質問では取引先が一社だけでしたのでNo.1の回答になりましたが、複数の取引先があるのでしたらグループ化は2個になると思います。 = Table.Group(変更された型, {"年月", "取引先"}, {{"最終数量", each List.Max([数量]), type number}})
- kkkkkm
- ベストアンサー率66% (1719/2589)
= Table.Group(変更された型, {"年月"}, {{"最終数量", each List.Max([数量]), type number}}) でいかがでしょう。数量は書式を数値として保存しておいてください。
お礼
ありがとうございました。 ”更新日時_1”を別途列追加して、”更新日時”と比較してフィルターすることは思いつきませんでした!