PowerQuery ファイルパス&シート名をセル値で可変設定する

Power Query(パワークエリ)でデータソースとして読み込むファイルやシートをセル入力値により可変設定する方法を紹介します。こちらでは元データがエクセルファイルの場合の手順を解説しています。

目次

セル入力値で読み込むファイルを指定する方法

セル入力値で読み込むシートを指定する手順は以下の3ステップです。

  1. ファイルパス入力用のテーブル(セル)を作成する
  2. テーブル入力値をクエリ設定用に変換する
  3. ファイルを読み込むクエリを作成する
  4. クエリのソースステップの数式を変更してセル入力値を適用する
STEP
データ準備

下図のデータを使用して設定手順を解説します。データソースとして「データA」「データB」「データC」の3個のエクセルファイルを準備しています。

STEP
ファイルパスを入力するテーブル(セル)を作成する

まずはファイルパスを入力するためのテーブルを一つ作成します。

  1. エクセルファイル上に列名とファイルパスを入力して範囲選択する。
  2. 挿入タブから「テーブル」を選択する。
  3. 「先頭行をテーブルの見出しとして使用する」にチェックを入れてOKをクリックする。

テーブル作成後は任意でテーブル名を必要に応じて設定してください。そのままでも問題ないです。

STEP
テーブル値をクエリで使用可能にする

まずはテーブルからクエリを作成します。

  1. 作成したテーブルを選択する。
  2. データタブの「データの取得と変換」から「テーブルまたは範囲から」を選択する。

Power Query エディターでテーブルを右クリックして「ドリルダウン」を選択する。

設定が完了したら、ホームタブの「閉じて読み込む」をクリックして設定を保存します。

STEP
ファイルを読み込んでクエリを作成する

次にファイルを読み込みます。
データタブの「データの取得」 > 「ファイルから」 >「ブックから」をクリックして 読み込むファイルを選択する。準備したファイルの内、読み込むファイルはどれでもOKです。

ここでは、データAのファイルを読み込んでいます。

STEP
セル入力値をクエリへ適用する

セル入力値をファイル読み込みのクエリに適用させます。

  1. 適用したステップにある「ソース」を選択する。
  2. 数式バーのファイルパス部を作成したファイルパス名に書き換えます。ここでは「ファイルパス」に置き換えていますが 左側に表示されている名前に置き換えてください。

下記のエラーが発生する場合は後述するエラー対処を試してみてください。

STEP
設定完了&動作確認

以上で設定は完了です。ファイルパスを変更すると、読み込むファイルがが変わり値も変わっているのが確認できます。

注意点

データソースのテーブル構成が変わるとエラーが発生する可能性がありますので注意してください。「列名」が変わりエラーが出ている場合は、ステップ内にある「昇格されたヘッダー数」を削除すればエラーが回避できる可能性がありますので試してみてください。

Sponsored link

セル入力値で読み込むシートを指定する方法

セル入力値で読み込むシートを指定する手順は以下の3ステップです。

  1. シート名入力用のテーブル(セル)を作成する
  2. テーブル入力値をクエリ設定用に変換する
  3. ファイルを読み込むクエリを作成する
  4. クエリのナビゲーションの数式を変更してセル入力値を適用する
STEP
データ準備

今回は「A」「B」「C」の複数シートがあるエクセルファイル「DATA.xlsx」を元データとします。このファイルを用いて読み込みシートをセル入力値により切り替えられるように設定していきます。

STEP
シート名を入力するセル(テーブル)を作成する

まずは入力用のセルを用意するためにテーブルを一つ作成します。下図では列名をSheetとしていますが任意で設定してください。

  1. クエリを作成するエクセルファイル上に 列名 と指定するシート名 を入力して範囲選択する。
  2. 挿入タブから「テーブル」を選択する。
  3. 「先頭行をテーブルの見出しとして使用する」にチェックを入れてOKをクリックする。

テーブル作成後は任意でテーブル名を必要に応じて設定してください。そのままでも問題ないです。

STEP
セル入力値をクエリで使用可能にする

まずはクエリを作成します。

  1. 作成したテーブルを選択する。
  2. データタブの「データの取得と変換」から「テーブルまたは範囲から」を選択する。

Power Query エディターでテーブルを右クリックして「ドリルダウン」を選択する。これで他のクエリからこのセルに入力された値を参照できるようになります。

設定が完了したら、ホームタブの「閉じて読み込む」をクリックして設定を保存します。

STEP
ファイルの読み込み設定

次に実際にファイルを読み込みます。
データタブの「データの取得」 > 「ファイルから」 >「ブックから」をクリックして 読み込みファイル名を選択する。

ナビゲーターではどれでも良いので一つシートを選択して「データの変換」をクリックする。

これでデータの読み込みは完了です。

STEP
セル入力値をクエリへ適用する

セル入力値をファイル読み込みのクエリに適用させます。

  1. 適用したステップにある「ナビゲーション」を選択する。
  2. 入力欄のItemの設定値を「入力セル用クエリの名前」に置き換えます。下図では「読み込みシート名」に置き換えていますが 左側に表示されているクエリ名を確認して任意の名前で置き換えてください。
STEP
設定完了&動作確認

以上で設定は完了です。入力用セルの値をA→B→Cと変更するとクエリで読み込むシートが変わり、値も変わっているのが確認できます。

注意点

データソースのテーブル構成が変わるとエラーが発生する可能性がありますので注意してください。「列名」が変わりエラーが出ている場合は、ステップ内にある「昇格されたヘッダー数」を削除すればエラーが回避できる可能性がありますので試してみてください。

セル入力値で読み込みシートを変更できるようにすることでメンテナンス性の向上やイレギュラーな変更に対しても対応しやすくなりますので是非参考にしてみてください。

Sponsored link

エラーの対処方法

ファイルパスを動的設定すると下記のエラーが発生することがあります。

クエリは他のクエリまたはステップを参照しているため、データ ソースに直接アクセスできません。

その場合は、プライバシーレベルの設定を下記の手順で変更するとエラーを回避できます

ただ、こちらの変更を行うとプライバシーレベルを無視するようになるのでデータの機密性は低下します。使用状況などを考慮して各自で判断して利用してください。

クエリのオプションを開く

「ファイル」→「オプションと設定」→「クエリのオプション」を選択する。

プライバシーレベルを変更する

「現在のブック」→「プライバシーレベル」→「プライバシーレベルを無視すると、パフォーマンスが向上する場合があります」にチェックをしてOKをクリックする。

Sponsored link

まとめ

今回は、データソースをセル入力値を用いて可変に設定する方法を紹介しました。手順は以下の通りです。

  1. ファイルパスまたはシート名を入力するテーブル(セル)を作成する
  2. テーブル入力値をクエリ設定用に変換する
  3. ファイルを読み込むクエリを作成する
  4. クエリのソースステップまたはナビゲーションステップの数式を変更してセル入力値を適用する
Power Queryのおすすめ書籍

パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。

初心者向けおすすめ学習本

初中級者向けおすすめ学習本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

仕事、お金、旅行のことなどメモしてます。
仕事ではTableauを勉強中!
初心者にもわかりやすいように学んだことを発信していきます。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次