ゆとり社会人の読書ノート&エクセルVBA

素人が公法を中心に幅広く読書をします&エクセルVBA奮闘記です。

PowerQueryに対する愚痴

エクセルがGoogleスプレッドシートに一番負けている(と個人的に思う)分野です。

query関数が大好きです

私は業務上Googleスプレッドシートを利用する機会が多いです。エクセルではなく敢えてGoogleスプレッドシートを利用する一番の利点として認識しているのが、query関数を利用できることです。

query関数とはSQLで使われるクエリのようなもので、スプレッドシート上のデータ(ベース)に対して特定の条件を満たすデータのみを抽出するための関数です。

元データから特定の列のみを抽出したり、フィルターをかけたりと何かと便利な関数です。

関数なので、引数に条件を入れていけば簡単に使うことができます。

PowerQueryは嫌いです

対するエクセルには同様の機能として、PowerQueryが実装されています。PowerQueryは、専用のPowerQueryエディタを起動して、列の削除やフィルターといった操作をマウスで行っていきます。「マクロの記録」のようなイメージです。

マウスで行った操作は、M言語という形で記録されることになります。基本的にはM言語を編集することなく直感的にデータを取得・集計することができます。

中級者以上になるとM言語を直接編集する機会も増えていくことになると思いますが、M言語ベースでクエリを組み立てていくことはあまり想定されていないように感じます。

PowerQueryエディタの使い勝手の悪さと、PowerQuery自体の遅さから、私はあまり積極的に利用したいと思いません。

どういう使い方を想定しているのか?

Microsoftがそう考えているかは分かりませんが、Googleスプレッドシートと比較すると、PowerQueryは操作が直感的で初心者でもわかりやすい点を重視して設計されているような気がします。エディタを経由するせいかは分かりませんが、query関数と比較しても動作は重く感じます。

対するGoogleスプレッドシートのquery関数はSQLに慣れ親しんだユーザーにはとても分かりやすく、関数にかなり多くの引数を入れていくことになることから、中級者以上を想定しているように感じます。

PowerQueryが本格的に導入されてきたのはこの2年ほどですが、PowerQueryの正統派の使い方はまだ確立していないように思います。

VLOOKUP関数の代わりのような使い方がもてはやされることもありますが*1、おそらく一番力を発揮するのは、①フォルダ内の元データを取得して一つのデータベースにまとめる、②逐次更新されるようなデータではなく、週次や月次で更新されるようなデータの場合、なのではないかと思います。

PowerQueryの解説として一番有名なのは上記で紹介されている本だと思いますが、解説は良くも悪くも全般的・平板になっていて、いまいちポイントがつかみにくくなっています。

困ったときのOffice TANAKA

Googleスプレッドシートのquery関数では、関数なので引数・パラメータをセルに外出しするのは容易です。他方、PowerQueryは直感的な操作を中心に構成されていることから、パラメータを関数にして~のような操作はあまり解説されていませんでした。

そんな中、やはり頼りになったのはOffice TANAKAでした。

officetanaka.net

YoutubeチャンネルでもPowerQueryの解説が追加されていますので、興味のある方はご覧ください。

www.youtube.com