Power Query(パワークエリ)には、マトリクス表をリストに変換できる「列のピボット解除」という機能があります。
「列のピボット解除」には、「その他の列のピボット解除」と「選択した列のみをピボット解除」を含めて3種類あり、それぞれの処理の違いについての備忘録です。
内容:
アウトプットイメージ
実施方法
Power Query(パワークエリ)の基本操作が不明な場合は、【Power Queryの初歩】簡単な事例説明(使いながら覚える最初のポイント) をご覧ください。
列のピボット解除
列方向に変換したい列を選択して「列のピボット解除」をクリック(事例では年度列(20X1~20X5)のデータを選択している)。
その他の列のピボット解除
列方向に変換しない列を選択して「列のピボット解除」をクリック。この場合、前述の「列のピボット解除」の選択と逆側を選択することになる。
選択した列のみピボット解除
列方向に変換したい列を選択して「列のピボット解除」をクリック。最初の「列のピボット解除」の選択と同じであるが、数式が異なるため(下図の黄色下線)、元データが変化したときの処理が異なる。詳細は次項で説明する。
それぞれの方法の違い
基本は「列のピボット解除」か「その他の列のピボット解除」で設定のイメージが持ちやすい方でよい。操作方法は違うが、M数式の結果は同じであった。
「選択した列のみピボット解除」はM数式がUnpivotで異なり、他の2つ(UnpivotOtherColumns)とは違った。こちらは、ピボット解除の対象が固定の場合に利用が良さそう。
なお、それぞれの説明(Microsoftの公式サポートページ)と、数式の事例は次のとおり。
項目と説明 | 上記事例で作成されるM 数式言語 |
列のピボット解除 現在、非選択の列以外の全ての列を属性/値のペアに変換します。 |
= Table.UnpivotOtherColumns(ソース, {"顧客","商品"}, "属性", "値") |
その他の列のピボット解除 現在選択されている列以外のすべての列を属性/値のペアに変換します。 |
= Table.UnpivotOtherColumns(ソース, {"顧客","商品"}, "属性", "値") |
選択した列のみをピボット解除 現在選択されている列のみ、属性/値のペアに変換します。 |
= Table.Unpivot(ソース, {"20X1","20X2","20X3","20X4","20X5"}, "属性", "値") |
以上、Power Queryの「列のピボット解除」でマトリクス表をリストに変換と、それぞれの機能の違いの備忘録でした。