テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

Power Queryの基礎 1_特徴

少し前にPower Query(パワークエリ)で簡単にWeb上のデータを抽出できるデモをやりましたが、今回から基礎について見ていきたいと思います。

Power Queryの特徴

Power Queryの基本的な特徴は以下の通りです。

  • Excelに搭載されたデータ加工機能(※BIツールであるPower BIも同じ)
  • Excelの通常作業と同じ操作感覚
  • ユーザーインターフェース(UI)操作でデータ処理の殆どを完結可能
  • 使えば使う程、その”凄さ” に感動を覚える(簡単・パワフル・深い)
  • データ抽出・加工(ETL)の“デファクト・スタンダード”(使えないと仕事にならない!)

ETL
Extract(抽出)
Transform(変換)
Load(出力)
の略で、英語ではData Wranglingとか、Data PreparationData Crunchingと表現され、日本語ではデータ整備やデータ加工、あるいはデータ・クレンジングとも言います。 

これまでのデータ処理

これまでのデータ処理は殆どの場合においてExcelスプレッドシートに頼ってきました。Excel作業は例えば下記のようなものがありますが、このような作業に携わったことがある方であれば、どれほど時間と労力が必要であるかお分かり頂けるかと思います。

  • データをニーズに合わせて変換(行・列の追加や削除等)
  • データセットの追加(時系列データ)
  • データセットの結合(VLOOKUP関数によるデータマッチング等)
  • データの視覚化(チャートの作成等)

そして、上記の作業は常に以下3つのジレンマとの闘いになります。

  1. 基データが汚い
  2. データ量が多く、数式使用によって更新に時間を要する
  3. 同じような反復作業が多い

こうしたことから、今までのベストプラクティス(少なくとも私の中で)は、いかにExcel名人になれるかでした。分かりやすく言えば、Excel操作のショートカットマスターとか、関数マスター、更に上を目指すのであれば、VBA名人といった存在になれるか、ということが最重要でした。VBAはご存知の通り、マクロのことですが、スキル差により後任に引き継ぎが出来ず、マクロなだけに”お先真っ黒”というダジャレも生まれたとか、生まれなかったとか。

古典的なデータ処理方法ではいつまで経っても生産性は上がらず、今でも恐らく日本の殆どの企業が苦しんでいると思います。Power Queryの存在を知らないがゆえに苦しんでいるのです。少々言い過ぎかもしれませんが、長年このジレンマに苦しんできた人間、そして同じく長年Power Queryを使用してきた人間からすると、もはやこれは

”知っているか、知らないかの差”ではなく、”知らないじゃ済まないレベル"

と断言できます。

Power Queryの費用対効果

Power Queryを自在に使えるようになると、上述したジレンマから解放されるだけでなく、日々のルーチンワーク楽チンワークに変わり、データに対する見え方が一変します。ちょいちょいダジャレを入れるのやめてほしい、という声が聞こえてきそうですが、それもご愛敬として理解して頂けるとありがたいです。

さて、実際にここでPower Queryの効果がどれほどのものかを知るために、以下の画像を用意しました。

f:id:marshal115:20200418001539p:plain

横軸をマスターするための期間(Years)、縦軸を効用(Benefits)とした場合、Power Queryとfx(Excel関数)、VBA(マクロ)をそれぞれプロットすると、最も効用が高く、かつ習得時間が短いのが実はPower Queryなのです。

この図からお分かりの通り、VBAは関数よりも効用が高いものの、習得する前に非常に長い時間が必要であり、人によっては拒絶反応を起こす可能性もあります。それと比べると、VBAよりもユーザーフレンドリーなユーザーインターフェース(UI)があり、エンジニアのようにソースコードをひたすら書くのではなく、Excelを使う時と同じようにクリック操作でデータ整備ができることが魅力の1つです。

Power Queryエディタ

Power Queryエディタは、300種類以上ものデータ変換機能を持つPower Queryを使うためのUIです。下図がこれになりますが、主に5つの部分から成り立っています。

f:id:marshal115:20200418024943p:plain

  1. リボン
    Excelの画面と同じく、クエリエディタも操作するためのアイコン(リボン)があり、この中から適切な処理を行っていきます。

  2. ナビゲーション
    ここに様々なクエリが作られます。クエリのソースデータはExcelCSV、Webコンテンツ、データベース等から抽出されたデータで構成されます。クエリの種類はテーブル、リスト、レコード、関数等があり、用途に応じて使い分けられます。

  3. 数式バー
    クエリを作るための処理を記録したコード(数式)。処理を1つ行う毎に異なるコードが記載され、例えば”消費税”という列を追加したコードは以下の通りです。
    = Table.AddColumn( Source, "消費税", each 0.08, Percentage.Type )

    f:id:marshal115:20200418031716p:plain
    コードはリボンにあるボタンをクリックするだけで自動的にPower Query側で追加してくれるため、自分で書く必要はありません。初心者にも優しいことからExcelを使い慣れたユーザーにとって入門しやすいわけです。

  4. プレビュー画面
    データ処理を行う度にその結果を表示してくれる画面です。Excelでの作業と大きく異なる点は、処理した結果は全て⑤のクエリの設定の「適用したステップ」に記録されていることです。これにより、自分がどのような処理をどのような順番で行ったのかが分かり、何度もやり直しが可能となります。

  5. クエリ設定画面
    上述の通り、適用したステップを記録してくれる場所。 既存メニューにあるアイコンをクリックした場合に記録されるステップは簡易的な名称(例:削除された列、等)ですが、後で自分の好きな名称に変更することもできます。

クエリエディタはExcelとPower BIで(色こそ違うものの)殆ど同じUIとなっていますので、混乱することはないと思います。Power Queryでデータ処理を行う際に必ず使用するエディタですので、最初はUIで操作、慣れてきたらコードを自分で少し変更してより難しい処理にチャレンジする、といった使い方になっていくと思います。

まとめ 

今回はPower Queryの基礎その1を紹介しましたが、ポイントは2つ。

  1. Excelに慣れている人にとってはすごく使いやすいUI
  2. データ処理を行うのであれば、関数やVBAをはるかに超える効果が得られる

次回はPower Queryの基本的な動作について、例も交えてみていきます。