パワークエリを使ってみる(データ付き)

PowerQuery

PowerQueryとは

 PowerQueryは、様々なデータをインタラクティブに入力、編集、出力できる機能です。
 Excel 2016以降に標準で付いていますので最近のExcelであればすぐに使えます。
 
 何と言っても元のデータを直接加工する事がないので、何度でも練習ができるので是非トライして欲しい機能です。
 
  データ加工ならVBAでプログラミングする事もできますが、PowerQueryなら開発時間を大きく短縮できます。
 また、大きなデータでも処理速度が速く軽快に作業できます。
 
 PowerQueryは、一つ一つの工程を記録する形でクエリを形成します。これはマクロの記録と似ています。
 内部ではM言語と呼ばれる言語で記述されていますが習得しなくても PowerQuery 使いこなすには十分です。プログラミングが苦手という方にもお勧めです。
 
 何となく難しそうと敬遠している方もいらっしゃると思いますが、データさえあれば手軽に練習できるので是非トライして見てください。今回取り上げるデータは以下からダウンロードできます。(ダミーデータです。)

 Zipファイルを解凍するとフォルダ内に3つのデータファイルが展開されます。

PowerQueryで扱えるデータ

 パワークエリで扱うデータは、以下のように項目名、データが整列している必要があります。
 Excelで「テーブル」と言われる形式です。

 このデータは、上記でダウンロードしたサンプルデータです。
PowerQueryで扱えるデータは、このように1行目に項目名があり、列ごとに値が並んでいる必要があります。途中でセルが結合されていたりすると扱う事ができないので注意しましょう。

PowerQueryを試してみる

 実際にやってみましょう。
 まず、新しいブックを開いてください。
 このブックは練習用です。このブックを破棄しても元データは変更されませんので、もし失敗しても新しいブックを開く所から始めればOKです。どんどんトライしましょう!

データの取り込み

 ブックを開いたらメニューから「データ」>「データの取得」>「ファイルから」>「Excelブックから」を選択します。(PowerQueryという表記は出てきませんがここからスタートしています。)


 「データの取り込み」ダイアログが出ますので、ダウンロードした “売上データサンプル2024.xlsx” を選択して「インポート」ボタンを押します。
 
 すると、以下のようなナビゲーター画面になりますので、data をクリックしてプレビューを表示させてみましょう。

 目的のファイルが正常に表示されている事を確認して「データの変換」ボタンをクリックします。
 (「読込」ボタンではなく「データの変換」ボタンを押します。)
 「データの変換」ボタンを押すと値を読み込む際のデータ型を日付型、文字列型、数値型などに自動で変換してくれます

PowerQuery エディター

 データが読み込まれると、PowerQuery エディター が表示されます。この画面で出力したいデータに加工していく事ができます。 
 たくさんのメニューがあるので困惑しますが、とりあえず基本部分のみ押さえていきましょう。

 まずデータの項目名に注目してください。以下のようにアイコンが3種類あります。カレンダーマークは日付型、ABCは文字列型、123は数値型を示しています。

 次に右側の「クエリの設定」です。
 プロパティの名前には、元データのシート名(ここではdata)が入っています。これがそのままクエリ名になっていますが、名前の部分を変更する事ができます。今回はこのままで進めます。

 その下に「適用したステップ」とありますが、これがPowerQueryの一つ一つの工程を記録している場所です。
これまでの操作で4つの工程が行われた事になります。最後の「変更された型」は、データの変換ボタンを押した時に自動で変数型が変更された事を示しています。
 左にある×を押すと、その工程が削除されます。一旦削除するとアンドゥ機能は効きませんので注意しましょう。
ここでは、そのまま作業を進めます。

不要な列を削除

 では、早速データを加工してみましょう。まずは列ごとデータを削除する方法です。とても簡単で、列の項目名部分をクリックして列を選択して、右クリックで「削除」を選択するか、Deleteキーで削除できます。

右側の適用したステップを確認すると、「削除された列」という項目が追加されました。

削除した列を戻す

「削除された列」という項目の × 印をクリックすると先程削除した列が復帰します。
アンドゥ機能は効かないと説明しましたが、それは「削除された列」というステップを元に戻すことができないという意味です。

 これで前の状態に戻りました。

列の順番を変える

 列の順番を入替えるには項目名部分を選択した後にドラッグする事で出来ます。
この工程も適用したステップに記録されます。

 社員IDと氏名の列を入替えてみてください。

必要なデータのみ抽出

 例えば、商品の項目でから必要なデータのみを抽出したい場合、フィルター機能を使って特定のデータのみを対象とすることができます。

「商品」の中から「ひとりで○○」というものだけを対象にしたい場合は、項目名の右側の▼マークをクリックしてフィルターを起動させます。

 フィルターのウインドウから、「ひとり」で始まる項目にチェックを入れてOKを押します。

 これで標品の項目は、「ひとり」で始まる商品のみがピックアップされました。更に、適用したステップにも新たに項目が追加されています。

計算結果を新たな列に追加

 単価と部数から売上金額を計算し、新しい列に加えてみましょう。
単価と部数の項目名を選択します。複数の項目を選択する場合は、Ctrlキーを押しながら選択します。

 次に、メニューの「列の追加」>「標準」>「乗算」を選択します。

 すると「乗算」という項目が追加されます。項目名を「売上金額」に変更しましょう。

 項目名をダブルクリックして編集状態にすれば変更できます。

 適用したステップを見ると2つの項目が追加されたのが確認できます。

値の一部を抽出

 次は、社員IDから後半の数値部分のみを抜き出してみましょう。ある項目の値に規則性がある場合、必要な部分のみ抜き出して新しい列に追加する事ができます。

 例えば今回の社員IDでは、HRN-**** という形になっていますがこの **** という数値部分を抜き出してみます。抜き出し方はいくつか方法がありますが、ここでは、-(ハイフン)の右側を抜き出すという方法を使います。

 「社員ID」を選択してから、メニュータブの「列の追加」>「抽出」>「区切り記号の後のテキスト」を選択します。

 「区切り記号の後のテキスト」ウインドウの「区切り記号」に -(ハイフン)(半角)を入力します。

 すると新たに列が追加されます。

 追加された項目は文字列型になっていますので、これを数値型に変更します。
項目名左側のABCをクリックするとメニューが出るので、整数を選択します。

 以下のように 0027 が 27 に変わります。

 項目名を変更しておきましょう。項目名をダブルクリックして「ID番号」に変更します。

 最後に、ここまでの変更を適用したステップで確認すると以下のようになります。

データの出力

 データの整形が済んだらデータを出力します。最終的なデータはテーブルやピボットテーブルなどに出力できます。今回は既存のブックのシートに貼り付けてみます。

閉じて次に読み込む

 メニューの「ファイル」から「閉じて読み込む」>「閉じて次に読み込む」を選択します。

 「データのインポート」というダイアログがでます。今回は、テーブル既存のワークシートを選択してOKを押します。

 すると以下のようにテーブルが出力されます。再度PowerQuery エディター を表示させたい場合は、赤の囲み部分をダブルクリックすると表示されます。

データリンクについて

 ここで表示されているデータは、元データ(データソース)とリンクされていませんので、元データを変更しても値は変更されません。元データの変更を反映させたい場合は、更新を行う必要があります。

データの更新

 元データの値を手動で更新したい場合は、「クエリ」というタブから「更新」を選択します。
当然ですが、元データが参照できる状態でなければいけません。元データが移動した場合やExcelブックを移動した場合にはリンク先が無くなるのでエラーとなります。

 PowerQueryで元データとのリンクを継続したい場合は、元データとブックは移動するべきではないでしょう。

データ更新のプロパティ

 データ更新のタイミングを調整するにはクエリのプロパティで設定します。
まず「クエリ」>「読み込み先」を選択します。

 データのインポートが表示されるので、プロパティをクリックします。

 コントロールの更新でデータ更新のタイミングを調節できます。

練習なら保存しなくてOK

 無事にデータが作成できたと思いますが、作業してきたブックは保存しないで終了して構いません。練習という事であれば、ここまでの作成過程が大事なのであって成果物を残しておく必要はないでしょう。
 元のデータ(データソース)は何も変更されていませんので、また一から作っていけば操作の練習になります。

 何度かやってみて、手順を参考にしなくてもできるようになれば「できるようになった」と実感できるでしょう。

まとめ

 お疲れ様でした。ここまでで意図通りの流れを体験できたかと思います。
慣れない操作が続いたので不安に思われる方も多いかと思いますが、何度も練習していくうちに慣れてくると思います。上記の工程を5回くらい繰り返してみてください。

 ピボットテーブルなどもそうですが、パワークエリ習得の鍵は、とにかく手を動かして動作や挙動を体験してみることだと思います。

 サンプルデータを利用して色々な操作を試してみましょう。元のデータを壊すことがないという事も体感できると思います。PowerQueryからピボットテーブルへの連携ができるようになれば Excel の応用範囲は広がるでしょう!

コメント

タイトルとURLをコピーしました