CSVの取り込み先を毎回変更する作業は非効率でミスも起きやすい。この問題は、Power Queryとセル参照を組み合わせることでシンプルに解決できる。
本記事では、CSVの参照パスをセルで管理し、動的に切り替える方法を初心者向けに解説する。
CSVの参照先はセルとPower Queryを組み合わせることで動的に切り替えられる。
CSVファイルをExcelで扱う際、次のような悩みが発生しやすい。
- ファイルの場所が変わるたびに再設定が必要
- 毎回インポートし直すのが面倒
- 手作業によるミスが発生する
このような課題は、Power Queryで「参照先を外部化」することで解消できる。
CSV参照を動的にするメリット・デメリット
動的参照は更新作業を簡素化しミスを減らす一方で、初期設定が必要になる。
メリットは運用のシンプル化と安定化
Power Queryで動的参照にすると、運用が大幅に楽になる。
- パス変更だけでデータ更新できる
- 再インポート不要で作業時間を削減
- 手作業ミスを防止できる
特に業務では、更新作業の効率化と再現性の向上が大きなメリットになる。
デメリットは初期設定のみ
動的参照は初期設定が必要になるが、一度設定すれば以降の作業は大幅に簡略化できる。
導入時に最低限の設定が必要になる。
- 初回の設定に少し手間がかかる
- Power Queryに慣れていないと戸惑う
ただし、一度作れば以降の作業はほぼ不要になる。
Power QueryでCSV参照先を動的に変更する手順
セルに入力したパスをPower Queryで読み込むことで、CSV参照先を動的に変更できる。
ポイントは「セル管理」と「クエリ連携」
CSVパスをセルで管理し、その値をPower Queryで取得するだけで実現できる。
実現の本質は次の2点だけである。
- CSVパスをセルに入力する
- Power Queryでその値を取得する
① CSVパス入力セルを作成する
CSVの参照先はセルにフルパスを入力することで管理する。
シートの任意のセル(例:B1)にCSVのフルパスを入力する。
C:\data\sample.csv
※CSVファイルのフルパスを取得するには下記のように操作すると簡単

② 名前定義を設定する
セルに名前を付けることでPower Queryから値を参照できるようになる。
A1セルを選択し、名前ボックスに以下を入力する。
Path
この設定により、Power Queryからセル値を取得できるようになる。
③ Power Queryを作成する
空のクエリを作成し、セルのパスを読み込む設定を行う。
次の手順でクエリを作成する。
- 「データ」タブをクリック
- 「データの取得」→「その他のデータソースから」→「空のクエリ」を順にクリック
- 「詳細エディター」クリック
- 以下のコードを貼り付けて、「完了」クリック
■ UTF-8 の場合
let
path = Excel.CurrentWorkbook(){[Name="Path"]}[Content]{0}[Column1],
Source = Csv.Document(File.Contents(path), [Delimiter=",", Encoding=65001]),
PromotedHeaders = Table.PromoteHeaders(Source, [IgnoreErrors=true])
in
PromotedHeaders■ Shift-JIS の場合
let
path = Excel.CurrentWorkbook(){[Name="Path"]}[Content]{0}[Column1],
Source = Csv.Document(File.Contents(path), [Delimiter=",", Encoding=932]),
PromotedHeaders = Table.PromoteHeaders(Source, [IgnoreErrors=true])
in
PromotedHeaders詳細手順
「データ」タブをクリックし、「データの取得」→「その他のデータソースから」→「空のクエリ」を順にクリック

「詳細エディター」クリックし、コードを貼り付けて、「完了」クリック

④ データを読み込む
クエリを実行してCSVデータをExcelに取り込む。
「閉じて読み込む」をクリックすれば完了。


使い方
パス変更と更新だけでCSVを切り替えられる。
- セルのパスを書き換える
- データを更新する
セルのパスを書き換えるには
CSVの切り替えはセルのパスを書き換えるだけでよい。
- A1(Path)セルのパスを書き換える

データを更新するには
更新は「すべて更新」を使うのが基本で、他の方法も選択できる。
更新方法は次の3つである(基本は「すべて更新」を使うのがおすすめ)。
- データタブの「すべて更新」を押す
- 出力したテーブルを右クリックして「更新」を選択する
- ショートカット:Ctrl + Alt + F5 を使用する
- 「クエリと接続」で対象クエリを右クリックして「最新情報に更新」クリック
これだけで別のCSVに切り替わる。
詳細手順
データタブの「すべて更新」を押す

出力したテーブルを右クリックして「更新」を選択する

ショートカット:Ctrl + Alt + F5 を使用する

「クエリと接続」で対象クエリを右クリックして「最新情報に更新」クリック

注意点
文字コードや区切り設定を誤るとエラーや文字化けが発生する。
環境によっては以下の設定を調整する必要がある。
- UTF-8の場合:Encoding=65001
- Shift-JISの場合:Encoding=932
- タブ区切り:Delimiter=”#(tab)”
ここを誤ると文字化けや読み込みエラーの原因になる。
補足
Power Queryは設定次第で自動読み込みや保存時のデータ扱いも制御できる。
ファイルを開いたときに自動でデータを更新する方法
Excel起動時に自動で最新データを読み込むことができる。
- 「データ」タブをクリック
- 「クエリと接続」をクリック
- 対象のクエリを右クリックして「プロパティ」をクリック
- 「ファイルを開くときにデータを更新する」にチェックを入れる
この設定により、毎回手動更新する必要がなくなる。


保存時に読み込んだデータを削除する方法
ファイルサイズ削減やデータ保持を避けたい場合に有効である。
- 「データ」タブを開く
- 「クエリと接続」をクリック
- 対象のクエリを右クリックして「プロパティ」をクリック
- 「ブックを保存する前に外部データ範囲からデータを削除する」にチェックを入れる
この設定により、保存時にデータ本体は保持されず、次回更新時に再取得される。


まとめ
CSVの参照先を動的に変更するには、Power Queryとセル参照の組み合わせが最もシンプルで効果的である。
一度設定すれば、「パス変更+更新」だけで運用できるため、作業効率と正確性が大きく向上する。
さらに応用すれば、フォルダ内の最新ファイルを自動取得する仕組みにも発展できる。
コメント