ご覧になっている皆さんは会社や学生時代の授業でExcelを使ったことがあると思います。
特に会社員の方ですと、「Excelを使わない日なんてない!!」というくらいに使用している方もいらっしゃるかもしれません。
そんなExcelを使った仕事でも、いろいろなデータを集めて、加工して集計を行う業務やレポート作成といった定型的な作業もあるでしょう。
こうした定型業務を自動化するのに、
「VBAを使ってマクロを作る。」
「Excel関数を駆使したツールを作成する。」
といった方法がありますが、
・VBAが難しくて、覚えるのが大変。
・Excel関数では後々のメンテナンスに苦労する。
・そもそも、ツールを作ることに時間が相当かかってしまう。
というような障壁もあり、なかなか業務効率化へ進むことができない場合もあるのではないでしょうか?
このような、マクロを作ることやExcel関数を組み合わせることを行わずに、データの取得やデータ加工、整形といった定型作業を効率化させるExcel機能として、
「Power Query」
と呼ばれる機能があります。
今回の記事では、
・どのような機能なのか?
・Power Queryでできることとその具体的内容
・Power Queryのデメリット
・効果的なPower Queryの勉強法
といった4点について解説していきます。
Power Queryとは?
Power QueryはExcel2016年以降に標準搭載された機能の1つです。
Power Queryでは主に、
・様々な形式のデータを取得(接続)する。
・取得したデータの加工/整形を行う。
という2点について比較的自由に行うことができ、かつ定型的な内容は自動化することができます。
データの作成/取得~データ分析/可視化までのフローで見ていくと、Power Queryは
集計を行う前工程処理に特化しています。
ここで、「Power Pivot」と「Power BI」という言葉がありますが、「Power Pivot」はPower Queryと同様に搭載されたExcel機能であり、集計以降の工程に特化した機能です。
一方の「Power BI」はExcelではなく、MicrosoftのBIツールであり、データの可視化や分析に特化したソフトです。
(Power PivotとPower BIは別で記事を記載する予定です!)
Power Queryで出来ること
Power Queryは、データの取得や加工/整形に特化した機能がありますが、さらに分けると、下記4つに分けることができます。
様々な形式のデータ取得
Power Queryでは、ExcelやCSVファイルからのデータ取得はもちろんのこと、
・Accessや他のデータベースソフト
・PDFファイル
・webブラウザ/webサイト
といった幅広い形式からデータを取得し、最終的にExcel形式に変換することができます。
取得したデータは、最終的にExcel形式に変換し、ワークシート上に反映させることやPower Pivotでの集計を行うことができます。
データの取得方法については、こちらも併せてご覧ください。
取得したデータの整形/加工ができる
取得したデータはPower Queryの機能で目的に応じた加工や整形を行うことが可能です。
データの加工や整形は、「Power Query エディター」を使用して行います。
上図はデータ取得後のPower Query エディター画面ですが、基本的にデータの加工や整形を行う場合は、リボンに設定された各種機能を利用します。
Power Query エディターで行えるデータ加工方法は多岐に渡りますが、私がPower Queryを使っていて使用頻度が高い機能としては下記の機能です。
・日付、数値、文字列へのデータ型変換
・列・行の削除(重複データ含む)
・列の並べ替え
・英数字の大文字、小文字の変換、データの置換
・特定データの抽出
これらの機能それぞれはExcelのワークシート上でも簡単に行うことができる機能ですが、Power Queryではこれらの機能を必要に応じて使用し、その使用履歴を記録しておくことができます。
そのため、データが更新されても都度同じ作業をすることなく、クエリを更新することで記録した履歴(ステップ)を実行することができます。
データとデータをつなぎ合わせることができる。
データとデータをつなぎ合わせると聞くと、いまいちピンとこないかもしれないですが、Power Queryでは2パターンのつなぎ合わせを行うことができます。
クエリのマージ(データを横につなぎ合わせる)
データを横につなぎ合わせる…といってもイメージが沸きづらいと思いますので、以下のような例で考えてみたいと思います。
例えば、下表のような携帯電話契約データと担当社員のデータを利用して、担当社員別の携帯電話契約のデータを作成する場合、どのようにして行いますか?
Excel関数の場合であれば、VLOOKUP関数を使って、「検索値」(担当者ID)を指定して、担当社員データから携帯電話契約データでデータをつなぎ合わせていくこととなります。
ただし、データをVLOOKUP関数で持ってくる列が多くなればなるほど、何度も関数を使う必要もあり、煩雑かつ工数負荷となってしまいます。(少なくとも例表の場合だと、最大8回VLOOKUP関数を使ってデータを突合する必要があります。)
それと比較し、Power Queryでは「クエリのマージ」機能を使うことで、上記のような煩雑な操作を簡単に行うことができます。
上図のように、「担当者ID」にてクエリのマージを使ってデータを突合することで、「携帯電話契約データ」と「担当社員データ」を横につなげたデータを作ることができます。
「クエリのマージ」に関しては、こちらも併せてご覧ください。
クエリの追加(データを縦につなぎ合わせる。)
横の次は縦にデータをつなぎ合わせることもPower Queryでは簡単かつ自動で行うことができます。
例えば、集計表のレイアウト(列の配置や項目名称)には変わりはないが、日ごとや週ごとでデータがどんどん追加、更新され、複数のファイルができてしまう場合、これらを一つのファイルにまとめたいとなった場合、どうするでしょうか?
下図のように、パッと思いつくのは「1つのファイルに他のファイルにあるデータを転記する。」ということ。
より工数削減する場合は「マクロを作り、ファイルを統合する。」という方法もあります。
実際に実行することはできますが、データ転記のミスやマクロツールを作るにあたってのスキル不足やツール作成に時間がかかるなど、デメリットもありつつ、都度更新作業を行うことにも時間がかかってしまいます。
この場合に関しても、Power Queryの「クエリの追加」機能を使用することで簡単かつ更新作業も楽に行うことができます。
クエリの追加機能では2つ以上のファイル(クエリ)があっても、マウス操作だけで簡単にデータを縦につなぎ合わせることができるだけでなく、クエリを更新するだけで、データを最新の状態にすることも容易に可能です。
「クエリの追加」に関しては、こちらも併せてご覧ください。
データクレンジングを行える
Power Queryはデータの加工や整形に特化しているため、Power Queryエディターにてデータクレンジングを行うこともできます。
特に、Power Queryで行う場合多いのは下図のようなレポート形式のデータを「データテーブル型」へ作り変える作業を行うことが多いです。
通常行う場合は、集計表やレポートの場合、定期的に最新のデータ更新されることが多いため、その都度データを転記または表を作り変えるといった手間が発生してしまいます。
ですが、Power Queryにてデータクレンジングを行う場合、集計表が更新されても同様にクエリを更新するだけで、データを最新の状態にすることが可能となります。
【注意】Power Queryのデメリットは?
これまで、Power Queryで出来ることについてまとめてきました。
ですが、一方でPower Queryを使う上でデメリットとなってしまうこともあります。
ここでは、私がPower Queryを使いながら感じた点も踏まえてデメリットを4点取り上げます。
通常のExcel関数とは異なる関数を使う
Power Queryではワークシート上で使う関数(例えば、SUMやVLOOKUP関数)とは異なる、M言語と呼ばれる関数を使用します。
初見ですと、M言語は一般的に扱うExcel関数と比較すると難解な関数のように受け取れてしまいます。
ですが、特殊なステップを作成しない限りはPower Queryエディターのリボン上でおこなえる機能ですので、M言語が分からないからといってPower Queryが使えないわけではありません。
テーブルの結合は1度に2つまでしか行えない。
上記「Power Queryで出来ること」で紹介した、「クエリのマージ」でのデメリットになります。
Accessを使ったことがある方ですとイメージしやすいですが、Accessでデータテーブルを複数使ってクエリを作成する場合は3つ以上のテーブルでリレーションシップを組むことが可能です。
ですが、Power Queryの場合は下図のように、2つのテーブル間でしかデータの突合ができないため、3つ以上のデータ(クエリ)を突合する場合、都度クエリのマージを行う必要があります。
「クエリのマージ」をあまり使わない場合は、特段デメリットにはなり得ないですが、私の場合、多種類のデータを使うためこのデメリットは使用していてかなりの痛手でした。
ステップが増えることでPower Queryの更新時間が増えてしまうことや時折、エラーが発生し、動かなくなることもありました。
多数のクエリをマージさせなければ、私のような状況にはならないかと思いますが、注意が必要かと思います。
Power Queryエディターを開いているとワークシートでの作業ができない。
これが私の中では一番大きなデメリットでした。
Power Queryエディターを開いている場合、ワークシート上での操作や別Excelファイルでの操作ができなくなってしまいます。
Power Queryエディターでの作業のみを行っているのであれば問題がないですが、時折別のExcelファイルを閲覧したり、簡単な操作をしたい場合、Power Queryエディターを閉じる必要があります。
こうした状況がたびたび起きる場合、エディターを開いたり閉じたりする操作が何度も発生するため、エディターでの作業お保存忘れにつながる場合があるため、注意が必要です。
Power Queryを使い慣れるまでに時間がかかる。
新しい事を始める場合、どんなことでも起きうることではありますが、Power Queryやエディターを
使い慣れるようになるまでにはどうしても時間がかかってしまいます。
私の場合、VBAについては約40時間ほどの学習でインプットとアウトプットを行いつつ取得することができました。
一方でPower Queryの場合であれば感覚的に20時間程度で使いこなせるまでのスキル取得はできたのかなと思います。
VBAを学習・使用するのとは異なり、Power Queryは感覚的に使用することができますが間違いなく、正しく使うためにはやはり「Power Queryの特徴や機能、使用方法を学習する」ことは必須となってきます。
どうすればいい? Power Queryを効率的に学ぶためには?
私も仕事でPower Queryを使用する機会がありますが、何も最初からうまく使いこなすことができたわけではありません。
Power Queryを使いにあたって、Power Queryの特徴や機能、使用方法について学習し、学んだことをアウトプットして自身のスキル定着を図り、日々の仕事に取り入れていきました。
その学習を行う上で、非常に役立ったのが、
Udemyというサイトでの学習コンテンツでした。
Udemyでは、e-ラーニング形式で動画を視聴しながら学習することができます。
また、コンテンツでは学習しながら実習形式で簡単なアウトプットを繰り返しながら学ぶこともできる。
かつ、「Q&A」という機能を使うことで講師にわからない点を質問することも可能です。
Udemyでは、サブスクリプション型ではなく、1コンテンツ買い切り型ですので月額費用が掛かるわけではありません。
では、そのコンテンツのお値段は…大体1万円~2万円前後が多いです。
「高い…」
と思われる方もいらっしゃるかもしれません。
ですが、Udemyでは頻繁にセールを実施しており、90%引きでコンテンツが販売されていることが多いです。
私も1万円前後のコンテンツを1,600円~2,000円くらいで購入しています。
本を1冊買うのとそんなに差があるわけではないです。
実際私がPower Queryを学ぶのに利用したUdemyの学習コンテンツを3つほど紹介します!
①Microsoft Excel – Power Pivot, Power Query, DAX 入門講座
≪こんな方にオススメ!≫
Power Queryでの加工からPower PivotやDAXを使った集計・分析までをざっくりと学んでみたい方向け。
② 【続】Microsoft – Excel Power Pivot 入門講座 ~Power Query Editor編~
≪こんな方にオススメ!≫
Power Queryエディターでのデータ加工/整形方法を集中的に学びたい方向け。
③ Excel& Power BI両方で使えるPower Query 完全ガイド 初級者から上級者まで対応
≪こんな方にオススメ!≫
Power Queryの概要は理解しており、さらに発展的に学びたい方向け。
ご覧になっている皆さまもPower Queryを学習する際にはぜひ活用してみてください!!
まとめ
いかがでしたでしょうか?
普段仕事で行っている定型作業を自動化するとなると、これまではマクロやExcel関数を使ったツール、あるいはRPAを導入するなど、自動化に向けて難しさを感じ、大きな障壁となっていたこともあるのではないでしょうか?
そんな方には特にPower Queryを使って自動化することができると、「こんなに簡単にできるのか」と成功体験をすることもできるのではないかと思います。
事実、私もそうでした。
今回の内容を参考に、少しでも、
・Power Queryを使ってみよう!
・普段の仕事に取り入れられないか考えてみよう!
といったきっかけになれば幸いです。
ご覧いただき、ありがとうございました!!
コメント