■ このスレッドは過去ログ倉庫に格納されています
Excel総合相談所 153
- 426 :名無しさん@そうだ選挙にいこう:2023/04/01(土) 19:42:21.86 .net
- >>422
名前と要素の2列だけの読取りクエリーから直接、
名前列をピボット(値列:要素、値の集計関数:集計しない)しても
値が1つ(う)しかないC列以外はエラーになった。
変換先は、暗黙のうちに、
・Aグループ、Bグループ、Cグループそれぞれで縦に並べる順番(仮に「行番号」)
があるので、ピボットするときはリクツ上、少なくとも3列以上ないとできないのかも?
で、
1. まず、名前でグループ化して、その中で順位を振る
2. 名前、要素、行番号の3列が出来てから、初めて
名前列をピボット(値列:要素、値の集計関数:集計しない)
とすると、こんな感じ。
https://i.imgur.com/5whiPoz.png
行番号が不要なら、このあと列削除でもOK。
詳細エディター
let
ソース = Excel.CurrentWorkbook(){[Name="T_元表"]}[Content],
変更された型 = Table.TransformColumnTypes(ソース,{{"名前", type text}, {"要素", type text}}),
グループ化された行 = Table.Group(変更された型, {"名前"}, {{"wTable", each _, type table [名前=nullable text, 要素=nullable text]}}),
追加されたカスタム = Table.AddColumn(グループ化された行, "indexTable", each Table.AddIndexColumn([wTable], "行番号", 1, 1)),
削除された他の列 = Table.SelectColumns(追加されたカスタム,{"indexTable"}),
#"展開された indexTable" = Table.ExpandTableColumn(削除された他の列, "indexTable", {"名前", "要素", "行番号"}, {"名前", "要素", "行番号"}),
変更された型1 = Table.TransformColumnTypes(#"展開された indexTable",{{"名前", type text}, {"要素", type text}, {"行番号", Int64.Type}}),
ピボットされた列 = Table.Pivot(変更された型1, List.Distinct(変更された型1[名前]), "名前", "要素")
in
ピボットされた列
グループ内で番号を振る方法はこれを参考にした。
https://papasensei365.com/powerquery-index-the-group/
総レス数 1002
233 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200