パワークエリの「Excelブックから」のサムネイル
AさんAさん

パワークエリで別ブックの特定の表データを対象に整形したいですが、何のコマンドでデータを取得すれば良いですか?

森田森田

その場合、「Excelブックから」コマンドでデータ取得できますよ!
では、詳細を解説していきますね。

Excelステップ講座

解説動画:【パワークエリ#4】別ブックを対象としたデータインポート手順 – 他のExcelブック内の単一または複数データ(シート/テーブル)を自動取得する

この記事の内容は下記の動画でも解説しています。

コメント欄の各プロセスの時間部分をクリックすると該当の解説へジャンプできますよ!

はじめに

この記事はパワークエリの概要を把握していることが前提です。

参考記事

パワークエリの概要については、以下の記事をご参照ください。

「Excelブックから」の使いどころ

「Excelブックから」コマンドは、クエリの新規作成ステップのうち、STEP1の「データソースを取得/収集(Extract)」に該当する機能です。

「Excelブックから」コマンドのスコープ

継続的に更新/蓄積される表データが、クエリを記録するExcelブックと別ブックのテーブルまたはシートの場合、「Excelブックから」コマンドを使いましょう。

「Excelブックから」コマンドの使いどころ

「Excelブックから」コマンドを活用することで、別ブック内のテーブル/シートをクエリのデータソースに指定できます。

なお、別ブック内に複数のテーブル/シートがある場合、取得する表データは単一/複数を自由に設定することが可能です。

本記事では、「Excelブックから」コマンドで単一の表データを取得するノウハウについて解説します。

参考記事

「Excelブックから」コマンドでの複数の表データの取得するノウハウについては、以下の記事をご参照ください。

使用イメージ

「商品マスタ.xlsx」を対象に「Excelブックから」コマンドを使用したイメージが以下です。

「Excelブックから」コマンドの使用イメージ

Power Queryエディター上で別ブック内の特定の表データ(「商品マスタ.xlsx」の「商品マスタ」テーブル)を取得できました。
「Excelブックから」コマンドで単一の表データを取得した場合、デフォルトのクエリ名はテーブル名またはシート名になる(「商品マスタ」テーブルの場合は「商品マスタ」等)。

後は、クエリ新規作成ステップのSTEP2とSTEP3を行いましょう。

これにより、データソースにした別ブックのテーブル/シートに更新があっても、クエリに記録したステップを自動化できます。

参考記事

クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。


単一データの取得手順

別ブックの単一の表データ(テーブルまたはシート)をクエリのデータソースにしたい場合は、以下の手順となります。

「Excelブックから」コマンドでの単一データ取得手順

  1. リボン「データ」タブをクリック
  2. 「データの取得」をクリック
  3. 「ファイルから」をクリック
  4. 「Excelブックから」をクリック
  5. データソースにしたいExcelブックを選択
    ※今回は「商品マスタ.xlsx」
  6. 「インポート」をクリック
  7. 取得したいテーブル/シートを選択
    ※今回は「商品マスタ1」テーブル
  8. 取得データが正しく認識されているか確認
  9. 「データの変換」をクリック

手順⑥は、手順⑤のファイル名をダブルクリックでもOK。
手順⑦は、指定ブック内にテーブルがある場合、同じ表でテーブル名とシート名の両方で表示されるが、基本的にはテーブル名の方を選択することがおすすめ(詳細は後述)。

【参考】ナビゲーター画面のテーブル名/シート名の見分け方

ナビゲーター画面上でのテーブル名とシート名の見分け方は、アイコンの形で判断しましょう。

ナビゲーター画面のテーブル名/シート名の見分け方

  • テーブル:アイコンの上部に色が付いているもの
  • シート:アイコンの下部にタブがあるもの

フォルダーのアイコンはブック全体を示す。

なお、ナビゲーター画面を含むPower Queryエディター上で同一データのテーブル/シートが両方表示されている場合、テーブル名の方を選択すると良いです。

理由は、シート名の方だとレコードの下側の空白行まで一緒にデータ取得してしまい、Power Queryエディター上で余計な空白行を削除するといった余計な一手間が発生する場合があるからです。

もちろん、指定ブック内にテーブルが存在しない場合は、シートだけが表示されるため、その場合はシート名を選択しましょう。

ちなみに、今回の「商品マスタ」のように、テーブル名とシート名が同じ場合、名前の重複を避けるために、ナビゲーター画面上ではテーブル名の方に数値が付加される仕様です。
例:「商品マスタ1」。

【注意】「Excelブックから」コマンドの使用時、データソースのブックは開かないこと

「Excelブックから」コマンドの注意点として、前述のデータ取得手順を実行する際、手順⑤に指定するExcelブックは開いておかないでください。

該当のExcelブックを開いた状態でデータ取得手順を実行した場合、以下のエラーメッセージが表示され、Power Queryエディターへ画面遷移できません。

Power Queryエディターの「接続できません」エラーメッセージ

接続できません
接続しようとしているときにエラーが発生しました。
詳細:”別のプロセスで使用されているため、プロセスはファイル’フォルダーパス\ブック名’にアクセスできません。”

このエラーメッセージが表示された場合の対処法は以下の通りです。

  • 自分が該当ブックを開いている場合:
    上記エラーメッセージの「キャンセル」ボタン押下→該当ブックを閉じる→再度データ取得手順をやり直し
  • 第三者が該当ブックを開いている場合(共有フォルダー配下等):
    第三者に該当ブックを閉じてもらう→上記エラーメッセージの「再試行」ボタン押下

自分が該当ブックを開いている場合、エラーメッセージ表示中の状態で該当ブックを閉じることができない場合あり。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ取得_ブックから.zip

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、次の手順を実施してください(今までの解説のまとめです)。

  1. リボン「データ」タブをクリック
  2. 「データの取得」をクリック
  3. 「ファイルから」をクリック
  4. 「Excelブックから」をクリック
  5. データソースにしたいExcelブックを選択
    ※今回は「商品マスタ.xlsx」
  6. 「インポート」をクリック
  7. 取得したいテーブル/シートを選択
    ※今回は「商品マスタ1」テーブル
  8. 取得データが正しく認識されているか確認
  9. 「データの変換」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

「Excelブックから」は、別ブック内のテーブル/シートをクエリのデータソースに指定できます。

別ファイルをクエリのデータソースにする場合の基本コマンドの1つのため、ぜひ覚えておきましょう!

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

「Excelブックから」コマンドに慣れたら、他の種類のデータソース取得に役立つコマンドを覚えましょう。
おすすめのコマンドは、「テーブルまたは範囲から」「テキストまたはCSVから」「フォルダーから」です。
データを更新/蓄積する表データの場所に応じて、各コマンドを使い分けできると、自動化の範囲を広げることができますよ!