Power Queryについて、名前は知っていて興味はあるけど実際にどう使うの?
という人は多いと思います
私は良くPower Queryをスマホに例えて説明するようにしています
例えば、好みに合うレストランを探してスマホで予約するケースでは、①検索サイトで好みのレストランを探す、②好みのレストランが見つかったら電話番号をクリック、③レストランの電話番号が、スマホの電話アプリ内に自動で読み込まれるのでそのままクリックする、という感じになりますよね
Power Queryでも①シート内、他のファイル、フォルダからデータを取得、②データを変換、③シートやピボットテーブルに取得データを読み込み、という流れになります

そして、詳細は本編に譲りますが、Power Queryの”Query”はスマホ内に設定するBOOKMARKと同じだと説明しています

スマホ内のBOOKMARKは、クリックさえすれば、いつでもお気に入りのデータにアクセスできます
Power Queryがスマホ内に設定するBOOKMARKとの違いは、アクセスしたデータを事前に決めたルールで変換できることです
今回は、このQueryの変換例を紹介します
ところで、エクセル内のデータを自分の都合のいいように集計するコツって何でしょう?
関数を知っている、ピボットテーブルを使いこなせる・・・
上記はいずれも、正しいです
但し、もっと重要なことがあります
データを集計するためのキーをうまく作り出すことです
私が良くセミナーで受講者の方に出す問題があります
ちなみにこの事例は、私が以前、日常業務で行っていたものです
以下から実際の問題です

上記の表にて、条件1と条件2、両方が”B”の時に、表内に◯を加えるにはどうしたらいいでしょう?というものです
しかも、条件がたえず変わる事も考慮して解決せよ、というものです
もしかしたら、AとCの時に〇を出せ、という風に修正されることもあるし、更にCとCの時にも〇を加えろ、ということもありえます
答えは、新たなキーを生み出すことにあります!

条件1と条件2を組み合わせて複合キーを作成するのです
そして、複合キーに対応した値を加えた表を作成します(この表をマスター表とします)
こうすれば、D列にVLOOKUP関数を加えれば、複合キーを参照して関数が自動的に、右横の表から値を引っ張ってきてくれます
もし、条件が修正になったり、条件が加わっても、右横の表を変えれば自動的に対応できます
以上がキーをうまく使いこなすことの効果の説明です
では、今回説明した問題の解決方法をPower Queryでも行ってみましょう!
Power Queryには”列のマージ”という機能があるので、上記で説明したような複合キーも簡単に作成できます
①表をテーブルに変換してPower Query Editorを立ち上げ
エクセルシート上のデータをテーブルにして取得し、変換できるようにします

ちなみに、このPower Query Editorというデータ変換用の画面が、別途、立ち上がるのが、Power Queryの分かりにくさかもしれませんね
➁Power Query Editor画面上の”列の追加”をクリック

③画面内の両列をクリックした上で”列のマージ”をクリック
Ctrlキーを押しながら、複合キーを作成する列を指定するのがポイントです

④③を行うと自由に複合キーを作成できるようになります!
両列をつなぐ文字に”-”を指定して、新たに作成する列名を複合キーと指定します

⑤読込先を”接続の作成のみ”に指定して読込
接続の作成のみとは、シートに表示しないでQueryを作成するという意味です

⑥新たなQueryが画面右に出来ました!

⑦マスター表も接続のみのQueryを作成

⑧作成した2つのQueryをマージします
Queryのマージとは関数で言えば、VLOOKUP関数と同じです

①~⑧で読み込まれた表が以下です!

<まとめ>
Power Queryを前述の問題に適用しましたが、Power Queryだと最初から複合キーを作成する前提で機能が作られている分、利便性が高いです。
そして、VLOOKUP関数で同じことを行う場合には、実際には、VLOOKUP関数単独だとマスター表にないものはエラー表示になりますので、”IFERROR関数”も組み合わせる必要があります。エラー対策が必要ない点も、Power Queryが利便性が高いです。
長文になりましたが、Power Queryに可能性を感じた方は、ぜひ、Power Query講座をのぞいてみてください!


コメントを残す