パワークエリで可変列がある表の列の並べ替え
はじめに
以下のような表で、列をAA→BB→CC→DDの順に並べ替え、可変の列は右端に寄せたい場合の方法を紹介します。可変の列は列のタイトルが変わるかもしれないし、列自体の増減があるかもしれない表です。
![](https://assets.st-note.com/img/1681614235364-0ZhHna53gb.png?width=1200)
単純な並べ替え
表の列タイトルをマウスでつまんで順にドラッグして移動すれば、所望の順番に列を並べ替えかえることは簡単です。
ですが、その並べ替え操作で生成される式を見てみると、可変の列のタイトルも含まれています。これでは列タイトル変更や列の増減があったとき、正しく並べ替えができない恐れがあります。順を指定した列が無い場合はエラーにもなります。(Table.ReorderColumns()関数の、オプション引数であるmissingFieldを指定すればこのエラーは回避可。)
![](https://assets.st-note.com/img/1681614597826-1KmlXsiLhn.png?width=1200)
であれば、上の式の可変の列タイトルの部分を消せばよいかと思えば、残念ながらそうなりません。たしかにAA→BB→CC→DDの順にうそはないのですが、以下のように途中に可変の列が挟まってしまいます。(順を明示的に指定していない列の位置は変えない。)
![](https://assets.st-note.com/img/1681614893532-er9FhM5DBj.png?width=1200)
可変列を考慮した並べ替え方法
列名が固定の列を全て選択した状態で、「その他の列のピボット解除」をします。
![](https://assets.st-note.com/img/1681618602848-tMlBfcYOXq.png?width=1200)
以下のような式が生成され、可変列の部分だけがピボット解除されます。
この式の中に可変の列のタイトルは登場しないのがポイントです。
![](https://assets.st-note.com/img/1681618661187-jW82CvfINk.png?width=1200)
その後、ステップを追加して以下のように記載すれば、所望の順に列を並べ替えられます。式に、可変の列名も登場しません。
(適当な列をドラッグして列を移動すれば、Table.ReorderColumns()の式が勝手に挿入されるので、その後、ReorderColumns()の第2引数の部分を手で書き換えてもよいでしょう。)
![](https://assets.st-note.com/img/1681618777774-3rof8CNRhj.png?width=1200)
その後、「属性」列を選択した状態で、「列のピボット」を実行します。
![](https://assets.st-note.com/img/1681619354962-LCrozwt4TO.png?width=1200)
このとき出てくるダイアログの「値列」には、列の名称である「値」を指定し、「値の集計関数」には「集計しない」を指定します。
![](https://assets.st-note.com/img/1681619548046-az2ozAlAZg.png?width=1200)
これで元の表の並べ替えが完了しました。
![](https://assets.st-note.com/img/1681619641626-2bNAzsgCY8.png?width=1200)