ExcelでCSV参照先を動的に変更する方法|Power Queryで自動化

CSVの取り込み先を毎回変更する作業は非効率でミスも起きやすい。この問題は、Power Queryとセル参照を組み合わせることでシンプルに解決できる。

本記事では、CSVの参照パスをセルで管理し、動的に切り替える方法を初心者向けに解説する。

CSVの参照先はセルとPower Queryを組み合わせることで動的に切り替えられる。
CSVファイルをExcelで扱う際、次のような悩みが発生しやすい。

  • ファイルの場所が変わるたびに再設定が必要
  • 毎回インポートし直すのが面倒
  • 手作業によるミスが発生する

このような課題は、Power Queryで「参照先を外部化」することで解消できる。

PR

CSV参照を動的にするメリット・デメリット

動的参照は更新作業を簡素化しミスを減らす一方で、初期設定が必要になる。

メリットは運用のシンプル化と安定化

Power Queryで動的参照にすると、運用が大幅に楽になる。

  • パス変更だけでデータ更新できる
  • 再インポート不要で作業時間を削減
  • 手作業ミスを防止できる

特に業務では、更新作業の効率化と再現性の向上が大きなメリットになる。

デメリットは初期設定のみ

動的参照は初期設定が必要になるが、一度設定すれば以降の作業は大幅に簡略化できる。

導入時に最低限の設定が必要になる。

  • 初回の設定に少し手間がかかる
  • Power Queryに慣れていないと戸惑う

ただし、一度作れば以降の作業はほぼ不要になる。

PR

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を作成する

空のクエリを作成し、セルのパスを読み込む設定を行う。

次の手順でクエリを作成する。

  1. 「データ」タブをクリック
  2. 「データの取得」→「その他のデータソースから」→「空のクエリ」を順にクリック
  3. 「詳細エディター」クリック
  4. 以下のコードを貼り付けて、「完了」クリック

■ 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に取り込む。

「閉じて読み込む」をクリックすれば完了。

PR

使い方

パス変更と更新だけで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起動時に自動で最新データを読み込むことができる。

  1. 「データ」タブをクリック
  2. 「クエリと接続」をクリック
  3. 対象のクエリを右クリックして「プロパティ」をクリック
  4. 「ファイルを開くときにデータを更新する」にチェックを入れる

この設定により、毎回手動更新する必要がなくなる。

保存時に読み込んだデータを削除する方法

ファイルサイズ削減やデータ保持を避けたい場合に有効である。

  1. 「データ」タブを開く
  2. 「クエリと接続」をクリック
  3. 対象のクエリを右クリックして「プロパティ」をクリック
  4. 「ブックを保存する前に外部データ範囲からデータを削除する」にチェックを入れる

この設定により、保存時にデータ本体は保持されず、次回更新時に再取得される。

まとめ

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

\ITメモが役に立ったら/

ITメモをサポートする!
Office
PR

コメント

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