マトリクス表の変換方法を書いてて思ったこと。
そう、パワークエリにはピボット解除という強力な機能が備わっています。
ですので記事にあるようなマトリクス表だとわざわざ数式組んでやる必要はないですよね。
それでも、関数で同じことがしたかったわけですが。
そして今回。
今回はパワークエリよりも関数で処理した方が簡単だよっていう事例があったので、それを紹介したいと思います。
今回ピボット解除したい表
これです。
タイトル行が複数列あるパターンです。
これをパワークエリでピボット解除するとどうなるか。
このように、2行目のタイトル項目もピボット解除の対象になってしまいます。
パワークエリでもこれを整形すること自体はできるのですが、それはそれで手間がかかります。
では関数で処理するとどうなるでしょう。
実は、前回の記事とそれほど手間は変わりません。
詳しい処理の内容は前回の記事を読んでいただくとして、
この記事では前回の記事との違いを中心にお届けしたいと思います。
テーブル形式に変換する際のポイント
基本的に、スタート地点からの移動距離を使って変換することに変わりはありません。
では何が変わるのかというと、移動距離の取り方(最初だけ)が変わります。
スタート地点からの移動距離を示した表をご覧ください。
タイトル行、タイトル列いずれも2行(2列)使っているため、スタート地点から最初の値までの移動距離が(2,2)となっています。
ちなみに前回は(1,1)でした。
表のタイトル行(列)についても、取り方がちょっとだけ変わってます。
これだけ分かれば十分です。あとは前の記事と同じように関数を組めば完成です。
~~完~~
え、これだけ?
えぇ。これだけ。
これだけで終わっては不親切なので、一応数式も確認しておきましょうか。
処理の手順
補助列の作成
まずはスタート地点からの移動幅を指定する補助列を作成しましょう。
タテ・ヨコそれぞれ示した通りです。
IF関数の内容はこうです。
- ヨコ:前段+1が4(1行でのヨコ項目数)を超えたら2、越えなかったら前段+1
- タテ:同行ヨコが2なら前段+1、そうでないなら前段と同値
こんなところです。前回と一緒でしょ?
唯一違うのは、タテヨコともに2スタートとなっていることぐらいでしょうか。
それは上の移動幅を示した図をご覧いただければわかるかと思います。
テーブル形式表への変換・作成
次にテーブル形式への変換過程を見ておきましょう。
とっても前回の記事とほぼ同じですが。
基本的にOFFSET関数で補助列を参照することは同じです。
違うのが、2行目のタイトル列の扱いですね。
スタート地点との関係で見たとき、2行目(2列目)はそれぞれ1移動してますよね。
なのでそのように数式を入力すればOKです。
数式は上の図より確認してみてください。
するとこのようにピボット開場した状態のテーブルに変換できる、とこうなるわけです。
最後に
いかがだったでしょうか。
複数タイトル行を持つマトリクス表の変換方法について書いておきました。
まぁOFFSET関数を使いこなすことはもちろんですが、スタート地点とそれに対応する移動数など、そのあたりをちゃんと設計してやればなんてことない話だったともいます。
さはさりとて。
今回も最後までお読みいただきありがとうございました。