さくっとエクセレートさくっとエクセレート

リンク切れしにくい別ファイルの参照方法【エクセルで転記の自動化】

Thumbnail for リンク切れしにくい別ファイルの参照方法【エクセルで転記の自動化】

はじめに

  • 「別のエクセルファイルのデータを再利用して、コピペ・転記する手間を減らしたい」
  • 「前に外部参照の設定をしたエクセルファイルがあるけど、リンク切れが多発して使いづらい…」
  • 「リンク切れの心配があるため、毎回、最新データを探して手作業でコピペしている」

このような悩みを感じたことはありますか?

エクセルで外部の別ファイル(ブック)を参照する際、 少しでもファイルを移動したり、 参照元シートの構造を変えたりすると、 すぐにリンクが切れてしまうのは非常によくある問題です。

しかし、 Power Query を使うことで、この問題はほとんど解決できます。 Power Queryは 構造化参照(テーブル参照) を使いつつも、 外部のエクセルファイル(ブック)を開かずに データを取得できるためです。 これにより、 リンクが非常に切れにくい堅牢な外部参照 を実現できます。

吉峰
吉峰

学生時代は、プログラムを使って研究・作業の効率化や自動化をしていた経験があります。 会社員になってからも 「いかに楽にできるか」を考え、エクセルでできること をいろいろと試してきました。 これまでに学んだことを、多くの方に役立ててもらえたらとうれしいです。

この記事では、 外部参照(別ファイルの参照)する主要な3つの方法の比較 と、 最もオススメの Power Queryを使った具体的な方法について解説します。

  • リンク切れしにくい堅牢な外部参照 ができるようになる。

  • 手作業による転記作業を減らす考え方 (転記の自動化やデータベースの運用方法)
    基本がわかるようになる。

Power Queryで構造化参照(テーブル参照)を使うだけ で、 日常の運用で使用しやすい、 リンクが切れにくい外部参照 が実現できます。

【ページ内リンク】

エクセルにおける外部参照とは

外部参照とは、 別のエクセルブック(ファイル)内に格納されているデータを取り出し、現在のブックに取り込むこと を指します。

データ活用において重要ですが、 リンク切れの発生」が常に大きな問題となります。

 

ソースブックとコピー先ブックの定義

【ソースブック】【ソースブック】【コピー先ブック】【コピー先ブック】外部参照外部参照データを格納データを格納数式 / Power Query / VBAを記入数式 / Power Query / VBAを記入データデータデータデータデータ

外部参照を考えるときには、 データを保持するブックデータを利用するブック が登場します。 この記事では、 それぞれ「ソースブック」「コピー先ブック」と 呼ぶことにします。

記事内での呼称別称役割
ソースブック参照 ・リンク データを格納し、提供する側のブック。例:データベース
コピー先ブック参照 ・リンク データを受け取り、利用する側のブック。数式やPower Queryの設定が記入される。

Microsoft公式の説明がややこしい

Microsoftの公式のドキュメント(日本語)では、
「リンク 」「リンク 」が混乱しやすい記述になっています
(おそらく和訳上の問題)。 以下、引用文です。

ソースブックとコピー先ブックの違いを理解する:
リンクを含むブックは リンク先ブック(destination workbook) と呼ばれ、 リンク先 のブックソースブック(source workbook) と呼ばれます。

この記事では「ソースブック」「コピー先ブック」で統一します。

吉峰
吉峰

外部参照を活用すると、 1つのブックをデータ格納庫(データベース)とし、 複数の別ブックからデータを取得し、利用できるようになります。 転記の手間が減り最新データの更新・反映がしやすくなり データを一元管理しやすく、 データ活用が進みます

 

課題は「リンク切れ」

外部参照を使用する上で最も考慮すべきことはリンク切れです。 リンク切れを発生させないために、 何で紐づいているのか(参照・リンクの仕組み) 」を理解し、 どこを変えるとリンクが切れるのか 」を知ることが重要です。

外部参照先を指定する方法には、 ブックの指定とセル(ブック内の位置)の指定で、 それぞれ2通りずつ存在します。

  • ブックの指定方法:「絶対パス」「相対パス」の2通り
  • セルの指定方法:「セル参照」「構造化参照(テーブル参照)」の2通り

ブックの指定方法:「絶対パス」と「相対パス」

【相対パス】 例:.\..\ソースブック.xlsx【相対パス】 例:.\..\ソースブック.xlsxC:C:UsersUsersユーザー名ユーザー名DesktopDesktopソースブック.xlsxソースブック.xlsxソースブック.xlsxソースブック.xlsxコピー先ブック.xlsxコピー先ブック.xlsxコピー先ブック.xlsxコピー先ブック.xlsx......【絶対パス】 例:C:\Users\ユーザー名\ Desktop\ソースブック.xlsx【絶対パス】 例:C:\Users\ユーザー名\ Desktop\ソースブック.xlsxこちらの場所は自由こちらの場所は自由フォルダごと移動可能フォルダごと移動可能

ソースブックの場所ソースブックの場所 を指定する方法には、 絶対パス」と「相対パス」の2種類があり、 ファイルの移動に対しての安定性 が異なります。

パス指定方法定義安定性おすすめの用途
絶対パスドライブのルートからの場所を指定する。
例:C:\Users\ユーザー名\Desktop\ソースブック.xlsx
✅ ソースブックの位置が変わらなければ安定。 コピー先ブックは自由に移動できる。データベースなど、ソースブックの位置を固定する用途に適す。
相対パスコピー先ブックから見た、ソースブックの相対的な場所を指定する。
例:.\ソースブック.xlsx(同じフォルダ)、.\..\ソースブック.xlsx(1つ上のフォルダ)
✅ ソースブックとコピー先ブックの相対的な位置関係が変わらなければ、 フォルダごと移動できる。1つのプロジェクトフォルダ内で完結させる場合に有効。
吉峰
吉峰

用途によって リンクが切れにくい方を選択 し、 使い分ける のが良いです。

セルの指定方法:「セル参照」と「構造化参照(テーブル参照)」

セル参照と構造化参照(テーブル参照)のイメージ図

ソースブック 内のデータの場所内のデータの場所 を指定する方法には、 セル参照」と「構造化参照(テーブル参照)」の2種類があり、 ソースブック内の データ構造の変更に対する安定性が異なります

参照方法説明リンク切れのリスクおすすめの用途
セル参照シート名セル位置を指定する。
例:シート名!A1
高い(ソースブック内に手を加えたとき、 リンク切れが発生しやすい一時的な使用や、データの構造が絶対に変わらないことが確約されている用途に限定。
構造化参照 (テーブル参照)テーブル名列見出しを指定する。
例:テーブル名[見出し名]
低い(「 テーブル名・見出し名の変更 」以外であれば、ソースブック内の変更OK)継続的なデータ取得が必要な場合に適す。

※ 外部参照ではない場合(参照先と参照元が同一ブックの場合)は、リンク切れのリスクは低い (参照元のセル位置が変わると、数式を自動修正してくれることが多いため)。

吉峰
吉峰

継続的に外部参照を維持する場合は、 リンクが切れにくい 構造化参照(テーブル参照)を使うべきです。

なぜ「構造化参照(テーブル参照)」が有利なのか

エクセルで外部参照を行う際、 参照方法として「セル参照」ではなく「 構造化参照(テーブル参照) 」がオススメなのは、 ソースブック(参照元)の構造変更に対する強さが格段に高い ためです。

❌ セル参照の弱点
セル参照の弱点

セル参照では、シート名!A1のように、シート名とセルの位置 を直接指定します。

この方法はシンプルですが、 ソースブックを編集したときに、 気付かずにリンク切れが発生する可能性が高い です。 ソースブックのデータ修正や更新自体が リンク切れのリスク になります。

  • 位置の変更に弱い:
    ソースブックのシートで、データが格納されているセルが移動すると、参照場所が意図しない位置にズレてしまいます。
    データ位置の上に行を挿入したり、左に列を挿入したりするだけでこの問題が生じます。
  • シート名の変更に弱い:
    シート名を後から変更するとリンクが切れます。
  • データ数の増加に弱い:
    複数のデータを範囲参照している場合、データを追加しても参照範囲は固定であるため、
    最新のデータを取り込むためには コピー先ブックの数式を手動で修正する 必要があります。
吉峰
吉峰

外部参照をするときに、 セル参照 を使用するのは、 一時的な使用や、データの構造が絶対に変わらないことが確約されている場合のみ にとどめておくのが良いです。

✅ 構造化参照(テーブル参照)の利点
構造化参照(テーブル参照)のデータ更新時の強さ

構造化参照(テーブル参照)では、「テーブル名[見出し名]」のように、テーブル名と列の見出し名を指定します 記述方法の詳細はこちら)。 この方法の最大の利点は、ソースブック内のテーブル構造が変更されても、 リンクが維持される点 です。

  • 構造変更に強い:
    テーブルの位置、テーブルの列の順序が変わってもリンクは切れません。
    テーブルの中・周り問わず、「行/列の追加・削除」が気軽に使えます。
  • シート名の変更が可能:
    テーブルが格納されている シート名 を変更しても、リンクは維持されます。
    テーブルを別シートに移動することも可能です。
  • データ数の増加に自動対応:
    複数のデータを範囲参照している場合でも、
    テーブルに行を追加すると、参照範囲が自動で拡大するため、 最新データが自動で反映されます。

日常的なデータ編集(データの追加や並び替え、列の削除など)に対する耐性が高いため、 ソースブックを編集してもリンクが切れにくく、データ更新を安全に行うことができます。 ただし、 テーブル名や見出し名の変更 はリンク切れの原因となるため注意が必要です。

吉峰
吉峰

外部参照を用いて、 安定した 転記の自動化データベース運用を行う上で、 構造化参照(構造化参照)は必須の技術といえます。

外部参照の3つの方法 と 比較

エクセルで外部参照を行うには、主に3つの方法があります (比較表は後ほど)。

  • 方法1. 参照数式
  • 方法2. Power Query
  • 方法3. VBA
 

方法1. 参照数式:セルに数式を記入する方法

参照数式

最も一般的な方法です。 コピー先ブックのセルに、ソースブックのパスとセル位置、またはテーブル名と見出し名を直接記述します。

設定方法

コピー先ブック内のセルに数式を記入し、ソースブック内のデータ場所を指定します。

以下が数式の例です。 セル参照と構造化参照(テーブル参照)で、 記述する形式が異なります

  • セル参照:
    ='フォルダ名\[ファイル名.xlsx]シート名'!$A$1

  • 構造化参照(テーブル参照):
    ='フォルダ名\ファイル名.xlsx'!テーブル名[見出し名]

    ※ セル参照とは異なり、 ファイル名を角括弧で囲わなくてよい

吉峰
吉峰

数式入力中に、ソースブック中のセルをクリックすると自動的に記入されるので、 細かく覚える必要は、あまりありません (セル参照では絶対値参照がデフォルトなので、注意が必要)。

上記のように、 ソースブック内の位置を直接指定する「 直接参照 」以外にも、 INDIRECT関数を使った「 間接参照 」を用いる方法もあります 後述)。

相対パス表記と絶対パス表記は自動に変わる

ソースブックを相対パスで指定していても、
ソースブックを閉じると自動的に絶対パス(フルパス)に変わります
(細かいですが、絶対パスのみ、パスがシングルコーテーションで囲われます)。

表記上では絶対パスでも、
ソースブックとコピー先ブックが同じフォルダにある場合は、
相対パスとして機能します。
Excelが内部で 自動的に「絶対パスか、相対パスか」を切り替えている ため、
記入方法を変えても意味はありません。

フォルダ名の例

フォルダ名には、以下のようなものが入ります。

  • ローカルパス:
    C:\Users\ユーザー名\Desktop\…\
  • 共有フォルダ・ネットワークドライブ(NAS, ファイルサーバー):
    \\server-name\…\
  • クラウドストレージ:
    https://d.docs.live.net/…/

リンク切れの症状と修正方法

外部参照がうまくいっていないと以下のような症状になります。

  • セルに#REF!が表示される
    リンクが切れた
  • 「更新できません リンクされたブックから更新された値を取得できませんでした」と表示される
    リンクが切れた
  • 意図したものと違う値になっている
    参照するセルの位置がズレた

修正方法は、セルに記入した数式を正しく直す ことです。 順序だてて行うと、以下になります。

STEP1

「ブックのリンク」欄を表示する

データタブの ブックのリンクを選択します。

「ブックのリンク」欄を表示する
STEP2

ソースブックを開く

「ブックのリンク」欄で、対象のブックの ボタンをクリック > ブックを開く を選択します。

ソースブックを開く

構造化参照や間接参照(INDIRECT関数)を使用している場合、
ソースブックを開いていないと#REF!になるため、
ソースブックを開くことにより問題が解決する可能性があります
(一時的ですが)。

STEP3

記入しているソースブックのパス(フォルダ名+ファイル名)を修正する

手順2 でブックが開けなかった場合、 ソースブックを選択し直します。

「ブックのリンク」欄で、対象のブックの ボタンをクリック > ソースの変更 を選択 > ソースブックを選択します。

記入しているソースブックのパス(フォルダ名+ファイル名)を修正する
STEP4

ソースブック内の場所指定が正しいか確認・修正する

手順3でダメだったら、 ソースブック内での参照場所が間違っているか疑います。

  1. ソースブックを開く(Step 2を参考)

  2. コピー先ブック中の数式のシート名・セル位置 または テーブル名・見出し名が、 ソースブック内に存在し、正しいかを確認する。

    「ブックのリンク」欄で、ソースブックを選択すると、
    コピー先ブック内で使用しているセル位置にカーソルが移動します。
    次を検索ボタンを押すと、さらに別のセルに移動します。

メリット・デメリット

✅ メリット

  • 設定が簡単
  • ソースブックの更新内容を即時反映できる
  • 相対パスがすぐ使える(絶対パス/相対パスはExcelによって自動切り替えされる)

❌ デメリット

  • 「構造化参照」では、ソースブックを開かず外部参照できない
    「セル参照」では部分的に可能(直接参照のみ可、間接参照は不可)
吉峰
吉峰

このデメリットは 致命的です。 詳しく解説します。

構造化参照では、ソースブックを開かずに外部参照できない

参照数式では、 「構造化参照」を使用して「ソースブックを開かずに外部参照」はできません。 つまり、「 リンクが切れにくい 」かつ「 ソースブックを開かなくてよい 」外部参照は、参照数式では実現できません。

▼ ソースブックを開かず外部参照できるか

参照方法参照方法の説明セル参照構造化参照(テーブル参照)
直接参照関数を使用しない参照例:=[ファイル名.xlsx]シート名!$A$1OK❌ NG
間接参照INDIRECT関数を使用した参照例:=INDIRECT("[ファイル名.xlsx]シート名!$A$1")NG
(関数内での参照)INDIRECT以外の関数内で外部参照を使った場合🟡 一部OK ※

※ セル参照であれば、一部の関数の中で「 ソースブックを開かずに外部参照 」ができる SUM IF COUNTA VLOOKUP MATCH INDEX SUMPRODUCTなど)

 

方法2. Power Query(推奨)

Power Queryは、エクセルに標準搭載されているデータ接続・加工ツールです。 外部のデータソース(エクセル、CSV、データベースなど)からデータを取得し、 整形してからシートにインポートできます。

吉峰
吉峰

ソースブックを開かずに更新でき、 構造化参照(テーブル参照)も使えるため強固なリンクができます。

設定方法

データタブのデータの取得 > ファイルから > Excelブックから でソースブックを指定し、 テーブル単位でデータを取り込みます

Power Queryの設定方法

設定方法の詳細や、管理・メンテナンス方法は後ほど説明します。

メリット・デメリット

✅ メリット

  • 構造化参照(テーブル参照) で取得するため、ソースブック内のデータ変更・修正に強く、 リンクが切れにくい
  • ソースブックを開かずに データの更新ができる。
  • テーブル単位で取得できる ため、大量のデータを一度に参照できる。

❌ デメリット

  • 設定画面やPower Queryエディターは、初めて使う場合に戸惑う可能性あり多少の慣れが必要
  • ソースブック内のデータ更新を反映するには、
    すべて更新ボタンのクリック(または自動更新設定)が必要となり、
    即時反映はされない
  • 相対パスの設定に、一手間かかる
 

方法3. VBA

VBA(マクロ)を使用すれば、 細かく制御をして外部参照が可能で、応用範囲も広いです。 「構造化参照(テーブル参照)」を使用し、 「ソースブックを開かずに外部参照」が可能です。

吉峰
吉峰

ただし、上級者向けの方法です。

設定方法(サンプルコード)

VBAで外部参照する方法にもいくつかあります。 以下は、 ソースブックを 読み取り専用・バックグラウンドで開き (実質、ブックを開いていないのと同じ)、 構造化参照(テーブル参照)でテーブル内の指定の列のデータを転記するサンプルコード です。

'--------------------------------------------------------------------------------------
' 外部のExcelブックから、指定されたテーブルの特定の列データを取得し、コピーするプロシージャ。
'--------------------------------------------------------------------------------------
Sub GetDataFromExternalTable()

    ' ## 1. 定数 (Const) の定義
    ' ソースブックの指定
    Const SOURCE_PATH As String = "C:\Users\ユーザー名\Desktop\ソースブック名.xlsx" ' ブックのパス
    Const SOURCE_TBL_NAME As String = "テーブル名" ' テーブル名
    Const SOURCE_COL_NAME As String = "テーブルの見出し" ' テーブルの見出し
    
    ' コピー先ブックの指定
    Const DEST_SHEET_NAME As String = "シート名" ' シート名
    Const DEST_RANGE_START As String = "A1" 'セル(先頭)位置
    
    ' ## 2. 変数宣言
    Dim wbSource As Workbook ' ソースブックオブジェクト
    Dim ws As Worksheet      ' ワークシートオブジェクト (ループ用)
    Dim tbl As ListObject    ' テーブルオブジェクト (ListObject)
    Dim wsDest As Worksheet  ' 転記先ワークシートオブジェクト
    Dim data As Variant      ' 取得したデータを格納する配列
    
    ' ## 3. 環境設定
    Application.ScreenUpdating = False ' 画面更新の停止
    Application.DisplayAlerts = False ' 警告メッセージの非表示
    
    ' ## 4. 外部ブックを開く(読み取り専用)
    On Error Resume Next
    Set wbSource = Workbooks.Open(Filename:=SOURCE_PATH, ReadOnly:=True, UpdateLinks:=0)
    On Error GoTo ErrorHandler ' エラーハンドラを設定し直す

    ' 開けなかった場合のエラーチェック
    If wbSource Is Nothing Then
        MsgBox "エラー: 外部ファイルが見つからないか、開けませんでした。" & vbCrLf & SOURCE_PATH, vbCritical
        GoTo CleanUp
    End If
    
    ' ## 5. データの取得 (テーブルをソースブック内の全シートから探索)
    For Each ws In wbSource.Worksheets
        ' エラー(テーブルがないシートで発生)を無視してテーブルを探す
        On Error Resume Next
        Set tbl = ws.ListObjects(SOURCE_TBL_NAME)
        On Error GoTo ErrorHandler
        
        If Not tbl Is Nothing Then
            ' テーブルが見つかったら、指定列のデータ部分を取得し配列に格納する
            On Error Resume Next
            data = tbl.ListColumns(SOURCE_COL_NAME).DataBodyRange.Value
            On Error GoTo ErrorHandler
            
            ' データが配列として取得できたらループを抜ける
            If IsArray(data) Then
                Exit For
            End If
        End If
    Next ws

    ' データが取得できなかった場合の最終チェック
    If Not IsArray(data) Then
        MsgBox "エラー: 指定されたテーブル名 (" & SOURCE_TBL_NAME & ") または列名 (" & SOURCE_COL_NAME & ") が見つかりませんでした。", vbCritical
        GoTo CleanUp
    End If

    ' ## 6. データの転記
    ' コピー先シートオブジェクトを取得
    On Error Resume Next
    Set wsDest = ThisWorkbook.Sheets(DEST_SHEET_NAME)
    On Error GoTo ErrorHandler
    
    ' コピー先シートの存在チェック
    If wsDest Is Nothing Then
        MsgBox "エラー: 転記先シート (" & DEST_SHEET_NAME & ") がこのブックに見つかりません。", vbCritical
        GoTo CleanUp
    End If
    
    ' 取得した配列のサイズ(行数 UBound(data, 1) と列数 1)に合わせてコピー先の範囲をResizeし、データを一括転記する
    wsDest.Range(DEST_RANGE_START).Resize(UBound(data, 1), 1).Value = data
    
    MsgBox "完了しました!"
    
CleanUp:
    ' # 7. クリーンアップと環境復元
    ' 外部ブックが開いていれば閉じる (保存しない)
    If Not wbSource Is Nothing Then
        wbSource.Close False
    End If
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Exit Sub ' 正常終了

ErrorHandler:
    ' 予期せぬエラー発生時の処理
    MsgBox "実行時エラーが発生しました: " & Err.Number & " - " & Err.Description, vbCritical
    Resume CleanUp ' クリーンアップに進む
End Sub
vba

メリット・デメリット

✅ メリット

  • 構造化参照(テーブル参照) が可能で、チェックやエラー処理なども細かく組み込めるため、 プログラム次第では 非常に堅牢な外部参照 を実現できる。
  • ブックを開かずに更新できる。
  • 応用範囲、自由度の幅が広い

❌ デメリット

  • 上級者向け で、VBAの知識が必須。
  • 仕組みの ブラックボックス化がしやすい
 

3つの方法の比較:Power Queryがオススメ

外部参照ができる3つの方法 (参照数式、Power Query、VBA) の比較表は次の通りです。

項目方法1. 参照数式方法2. Power Query方法3. VBA
設定の難易度簡単🟡 中程度 (慣れが必要)高度 (VBAの知識が必須)
リンクの堅牢性低い (データ構造の変更に弱い)高い (構造化参照/テーブル参照で安定)高い (構造化参照/テーブル参照で安定+エラー処理可能)
ブックを開かず更新限定的 (セル参照での直接参照のみ可能)できるできる (実質)
即時反映できる (リンク元変更で即時反映)できない (手動または自動更新設定が必要)できない (VBA実行や手動更新が必要)
大量データ取得不向き (取得がセル単位)得意 (テーブル単位で取得可能)可能 (テーブル単位で取得可能)
データ加工・整形できない非常に得意 (エディターで可能)可能 (プログラム次第)
用途数カ所程度の少量データ を一時的に即時取得したい場合に適す。安定したリンクで最新データを継続的に取得したい場合や、大量のデータを取得したい場合に適す。複雑な例外処理特殊なシステム連携 が必要な場合に有効。
吉峰
吉峰

「ソースブックを開かず」かつ「構造化参照(テーブル参照)を使った」外部参照が簡単にできるのはPower Query です。 VBAに比べて難易度も低く、 習得コストパフォーマンスが高いツール なので オススメ です。

Power Queryを使った外部参照の方法

外部参照によって、ソースブックのデータを安定して継続的に活用したい場合、 最もバランスが良くオススメなのはPower Queryです。

具体的な外部参照の設定方法と管理・メンテナンス方法を解説します。

 

設定方法

Power Queryで外部参照する手順は、 主に3ステップです (テーブルをそのまま配置するだけであれば、2ステップ)。 コピー先ブックから、ソースブック内のデータを取り込みます。 コピー先ブックを開き、設定の手順を進めていきます。

以下は、 構造化参照(テーブル参照)でデータを取得する手順 です。

取り出すデータはテーブル化しておく

ソースブック内のデータはテーブルに格納しておく必要があります。
テーブルの作成は、
挿入タブのテーブルボタン(ショートカットキー Ctrl + t)から行えます

» テーブルについての詳細はこちら

STEP1

データを取り込む

ソースブックから取り出すテーブルを選択します。

  1. データタブのデータの取得プルダウン > ファイルから > Excelブックからを選択し、 参照するソースブックを選ぶ。

    参照先のブックを選択
  2. ナビゲーターウィンドウで参照するテーブルを選択し、 以下の通りに進む(テーブルを加工するかどうかによって変わる)

    • テーブルをそのまま配置する場合: 読み込み先ボタン横のプルダウン > 読み込み先...を選択。 → テーブルの配置画面になる(「テーブルとして配置」へ)。
    • テーブルを加工して配置する場合: データの変換を選択。 → Power Queryエディターが起動(「2. データの加工・整形」へ)
    テーブルを選択
STEP2

データの加工・整形(必要に応じて)

データの変換を選んだ場合、Power Queryエディターが開きます。 ここでは、 並び替え、行のフィルタリング、列の削除 などのデータの加工が行えます。

加工・整形が終わったら、 ファイルタブの閉じて次に読み込む...を選択して、 Power Queryエディターを閉じます。

  • 行の並び替え:
    列の見出し内の「フィルタボタン」を選択 > 昇順で並び替え(または 降順で並び替え)を選択

  • 列の並び替え:
    列の見出しをドラッグ&ドロップ

  • 行の削除(フィルタリング):
    ホームタブの行の削除ボタンを選択 > フィルタリング条件を選択

    重複の削除を行う場合は、事前に列を選択しておく必要あり

    特定の列の値を基に削除する場合

    列の見出し の「フィルタボタン」を選択 > フィルタ条件を選択 (または、不要な値のチェックを外す)

  • 列の削除:
    列の見出しを選択 > ホームタブの列の削除を選択

テーブルを選択
STEP3

テーブルとして配置

ソースブックからインポートしたテーブルを、 コピー先ブックに配置します。

データのインポートウィンドウで下記を選択 > OKボタン

  • テーブルを選択
  • 既存のワークシートを選択して、テーブルを配置するセル位置を選択
    • (新規シートに配置する場合は新規ワークシートを選択)
テーブルを設置
 

外部参照設定の管理とメンテナンス

Power Queryで外部参照の設定を行ったあとは、 必要に応じて、適宜以下を行います。

  1. データの更新(最新データの反映):
    ソースブック内でデータの変更があったときに、コピー先ブックに変更内容を反映します。
  2. 自動更新設定:
    「データの更新」は、デフォルトでは手動で実行する必要があります。
    これを「ファイルを開いたとき」や「一定の時間間隔」で自動に実行されるように設定できます。
  3. リンク先の変更・リンク切れ修正:
    ソースブックの場所を変更したいときや、リンク切れが生じていたときに、
    接続先を変更します。
  4. リンクの解除:
    外部参照が不要になったときは、リンクを解除できます。

1. データの更新(最新データの反映)

ソースブック内のデータの変更内容は、 自動ではコピー先ブックに反映されません。 手動で更新する必要があります。

手順は以下のいずれかです。

  • データタブのすべて更新を押す。
  • コピー先ブック内のテーブルを右クリック > 更新を選択。
データの更新(最新データの反映)

2. 自動更新設定

手動で行う必要のある「データの更新」を、 自動で実行されるように設定できます。

STEP1

設定画面(クエリプロパティ)の表示

  1. データタブのクエリと接続ボタンで、「クエリと接続」ウィンドウを開く。
  2. コピー先ブック内のテーブルを選択 > クエリと接続欄でハイライトされた項目(クエリ)を右クリック > プロパティを選択。
設定画面(クエリプロパティ)の表示
STEP2

自動更新の設定

クエリプロパティウィンドウの使用タブで以下を設定します。

  • 一定の時間間隔で更新したい場合:
    定期的に更新するにチェックを入れ、更新する時間間隔を設定する
  • ファイルを開いたときに自動更新したい場合:
    ファイルを開くときにデータを更新するにチェックを入れる

(コピー先ブック内に、ソースブックのデータを保存して残したくない場合は
ブックを保存する前に外部データ範囲からデータを削除するにもチェックを入れる ※)。

※「ファイル容量を小さくしたい」「セキュリティ面から、データをファイルに残したくない」ときに使用する。
ただし、 コピー先ブックを開いたときにソースブックと接続できなかった場合は、テーブルが空欄のままになる

自動更新の設定

3. リンク先の変更・リンク切れ修正

ソースブックを別のフォルダに移動した場合など、リンクが切れてしまった場合でも簡単に修正できます。

STEP1

変更するソースを選択する

  1. データタブのデータの取得 プルダウン > データソースの設定を選択。
  2. 変更したいデータソース(ファイルパス)を選択し、ソースの変更をクリック。
変更するソースを選択する
STEP2

パスを設定する

  1. 参照…を選択し、 新しいソースブックのパスを指定
  2. ExcelブックウィンドウでOKボタン > データソース設定ウィンドウで閉じるボタンを選択。
パスを設定する

「リンク切れしているクエリ」と「設定しているパス」の確認方法

「どのクエリ(外部参照の設定)がリンク切れしているのか」
「リンク切れが生じている設定のパスは何か」
を確認するには、以下を行います。

  1. データタブのクエリと接続ボタンをクリック。

    リンク切れしているクエリにエラーマークがついている。

    リンク切れしているクエリにエラーマーク
  2. クエリと接続欄でエラーのあるクエリを
    右クリック >編集を選択してPower Queryエディター起動。

  3. Power Queryエディターの適用したステップ欄のソースを選択

    → 数式バーでのコードFile.Contents(...)の中に、
    設定している外部ブックのファイルパスが記入されている。

    ※ リンク切れの修正は、 ここのパスを書き換える ことでも可能
    (書き換えたら、Power Queryエディターの閉じて読み込むボタンを押す)。

    リンク切れしているクエリにエラーマーク

4. リンクの解除

外部参照が不要になったときには、リンクを解除できます。 コピー先ブック内をそれ以上変更したくない場合や、 他人にファイルを渡す場合などに有効です。

  1. データタブのクエリと接続ボタンを押す。

  2. コピー先ブック内でテーブルを選択 > クエリと接続欄でハイライトされたクエリを右クリック >削除を選択。

    リンクの解除
  3. 確認画面で削除を選択。

外部参照するときの注意点

Power Queryで外部参照する場合には、次のような注意事項があります。 参照数式やVBAを使う場合にも、多くが共通します。

  1. ソースブックの「ファイルパス」と「データ構造」は固定する
  2. 更新ダイアログが出る可能性あり
  3. クラウドストレージ(OneDrive/SharePointなど)利用時は設定次第でリンク切れしやすい
 

1. ソースブックの「ファイルパス」と「データ構造」は固定する

Power Queryを使った場合であっても、 次の要素を変更するとリンク切れが発生します

  • ソースブックの ファイルパス (格納フォルダとファイル名)
  • ソースブック内の テーブル名見出し名 (構造化参照/テーブル参照を使用する場合)
  • ソースブック内の シート名セル位置 (セル参照を使用する場合)

データ構造の変更に対して強いのが構造化参照(テーブル参照)のメリットですが、 テーブル名と見出し名の変更には注意が必要 です。

 

2. 更新ダイアログが出る可能性あり

外部参照の設定をしていると、 ブックを開いたときに 「セキュリティ警告 外部データ接続が無効になっています」などの 更新ダイアログ が出る可能性があります。

その場合は、 「コンテンツの有効化」などを選択し、 許可の操作が必要です。

 

3. クラウドストレージ(OneDrive/SharePointなど)利用時は設定次第でリンク切れしやすい

Power Queryで クラウドストレージ(OneDriveやSharePointなど)上のブックを参照する方法は、 主に2つあります。

  1. ローカル同期フォルダ内を参照する方法:

    C:\Users\ユーザー名\OneDrive\ のような、 ローカルにコピー・同期されたフォルダ内のファイルパスで接続します
    (Power Queryでは、 データタブのデータの取得 > ファイルから > Excelブックから を選択して接続設定する)。

    吉峰
    吉峰

    複数デバイスや複数アカウントを使ってファイル同期している場合は、ファイルパスが変わるので注意が必要です。 たとえば、デバイスが変わるとC:の部分が、アカウントが変わるとユーザー名の部分が変わったりします。

    ソースブックとコピー先ブックの両方をクラウドストレージに格納し、 相対パス相対パス で外部参照をするとリンクが切れにくくなります。

    Power Queryで相対パスを設定するには、 一手間必要です
    (参照数式の場合は、同フォルダ内であれば自動的に相対パス扱いになる)。

  2. 専用コネクタでファイルを参照する方法:

    SharePointなど、対応するコネクタがあれば、クラウドのパス https://d.docs.live.net/...など) から直接参照もできます。

    こちらの場合は、 絶対パス絶対パス 設定でも安定します。

データ活用の基盤になる

外部参照を行う3つの方法 (参照数式、Power Query、VBA) を紹介しました。 その中でも、Power Queryは リンクが切れにくく 難易度もそれほど高くないので オススメ の方法です。

吉峰
吉峰

外部参照ができると、転記の自動化や、データベースの構築・運用へと応用できます。 データベースによってデータを一元管理することで、 データを最新に維持管理しやすくなります。 更新されたデータは、外部参照のリンクによってコピー先ブックにも簡単に反映でき、 コピペ・転記の手間も減ります。

外部参照は、データを活用する上での基盤となりますが、 以下ができるようになると、 さらにデータ活用の幅が広がります。

  • データへのルール付け:
    入力の効率化、表記ゆれ対策ができる。
  • テーブルの結合(横):
    データベースを辞書的に参照できる。テーブル間の関連付けや、VLOOKUPのような動作が可能に。
  • テーブルの結合(縦):
    複数のテーブル(複数のファイル)から一気に一覧リストを作成できる。

» 詳しくはこちら