Googleスプレッドシートを活用して、元データは見せずに必要な範囲だけ外部参照して資料を作成する方法をまとめました。
使うのは IMPORTRANGE() 関数です。複数ファイルに分割して管理したいときや、特定ユーザーにだけ一部の情報を共有したいときに便利なテクニックです。
目次
GoogleスプレッドシートでIMPORTRANGE関数で必要な範囲だけ外部参照する方法
よく使う関数なので、覚えておきましょう。
ステップ1:元データシートを用意
まずは集計・記録などの「元データ」用スプレッドシートを1つ作ります。
たとえば以下のようなURLになります:
https://docs.google.com/spreadsheets/d/1A2B3C4D5E6F7G8H9I0J/edit#gid=0このとき、/d/〜/edit の間にある部分が「ユニークキー(スプレッドシートID)」です。
ステップ2:分析・資料用の別シートを作成
次に、新しいスプレッドシートを作り、IMPORTRANGE() 関数を使って元シートの必要な範囲だけ読み込みます。
基本構文
=IMPORTRANGE("ユニークキー", "'シート名'!A1:D20")ワンポイント
はじめて IMPORTRANGE() を使うときは、**初回のみ「アクセスを許可」**する必要があります。
許可が出るまでは #REF! と表示されるので、クリックして認証しましょう。

ステップ3:見せたい範囲だけ名前付き範囲で指定する
元シートで、以下のように「名前付き範囲」を使っておくと便利です。
例:
元データ側で「名前付き範囲」を 成績一覧 と設定しておけば…
=IMPORTRANGE("ユニークキー", "成績一覧")と、簡潔に書けてメンテナンス性もアップします。範囲が変わっても名前だけで済みます。
ステップ4:資料専用シートでVLOOKUPやQUERYと連携
たとえば資料側で以下のように、必要な行を取り出して表示できます:
=VLOOKUP(A2, IMPORTRANGE(ユニークキー, "成績一覧"), 3, false)A2:検索キー"成績一覧":名前付き範囲3:取得したい列番号(点数など)false:完全一致で検索
データ反映のタイムラグについて
IMPORTRANGE() の更新はリアルタイムではなく、数秒〜20秒ほど遅延があります。
目視で「遅れてる?」と感じたら、数秒後に再確認すると反映されていることが多いです。
まとめ
| やりたいこと | 使うもの |
|---|---|
| 特定範囲だけ外部参照 | IMPORTRANGE() 関数 |
| 範囲の再利用・簡略化 | 名前付き範囲 |
| 行の抽出・検索 | VLOOKUP() や QUERY() |
| 他人に一部だけ見せたい | データの分割設計 |
データの機密性を守りつつ、業務効率を上げたい人にはとてもおすすめの方法です。
運用のルールや関数の組み合わせに応じて、さらに応用も可能です。お気軽にご相談ください!

