ExcelのPowerQueryで、下図の左側のような元データから右側のような年度別の順位推移表(マトリクス表)を作成する方法についての備忘録。
順位表に値をそのまま表示するようなケースです。
なお、結論は、次のPower Pivot(Excelの標準機能) を利用する方法が基本です。
繰り返し発生する業務や、分析軸を編集したいなど後日のメンテナンス性を考えた場合は、Power Pivotの方法が最適となるケースが多い印象です。
今回はその他の方法として、同じくExcelの標準機能であるPowerQueryの「列のピボット」を利用して作成する方法です。
ただし、前述のとおり、ピボットテーブルとしてのレイアウトの自由度、作成、修正の容易さなどが「Power Pivotの方法」より劣る印象です。
よって、PowerQueryの「列のピボット」は、後工程や前工程のデータ処理の都合で、PowerQueryだけで処理することが便利な場面などに活用します。
PowerQueryでの作成手順
基本の手順は、次のとおりです。ただし、少しイメージが持ちづらいので、以下で補足します。
補足手順
横軸にしたいフィールドを選択後、「変換」-「列のピボット」
横軸にしたいフィールドを選んでおくこと。
値列と、値の集計関数を設定
「値の集計関数」は、「最小値」を選択しておく。
参考:
「最小値・最大値・中央・集計しない」のいずれかで、値をそのまま表示可能。
重複する値がある場合は「最小値」は昇順で表示され、「集計しない」はErrorとなり空白になる。「集計しない」を選び、いくつかステップを重ねる複雑な処理をするとエラーになることがあったので、「最小値」や「最大値」の方が良さそう。
上記で「OK」をクリック後、「閉じて読み込む」をクリックすると、冒頭のマトリクス表ができる。
注意点
PowerQueryの「列のピボット」で注意が必要な点は、行フィールドや値フィールドに該当する項目を2つ以上選択できない、という仕様のようです。他に方法があるかもしれないが、3列を超えるデータの場合は、事前に列削除などが必要です。
なので、上記のように4列ある場合、次のような表ができてしまいます。
以上、PowerQueryの「列のピボット」を使用した手順でした。