こんにちは、阿久梨絵です!
EXCEL のINDIRECT関数は、セル参照を動的に変更できる便利な関数ですが、使い方を誤るとエラーが発生しやすいことでも知られています。本記事では、INDIRECT関数の基本的な使い方、活用例、そしてよくあるエラーの原因とその対策について解説します。
1. INDIRECT関数とは?
INDIRECT関数は、指定した文字列をセル参照として扱う関数です。通常、セル参照は固定されていますが、INDIRECT関数を使うことで、セルの内容に応じて参照先を動的に変更できます。
基本構文
=INDIRECT(参照文字列, [A1形式])
・参照文字列:セル番地を文字列として指定(例: “A1” や “B2″)
・A1形式(省略可):TRUE(デフォルト)ならA1形式、FALSEならR1C1形式で参照
2. どんな時に使用する?
INDIRECT関数は、以下のような場面で活用できます。
別シートのセルを動的に参照
例えば、シート名をセルに入力し、そのシートの特定セルを参照する場合
=INDIRECT(A1 & “!B2”)
ここで、A1セルに「Sheet2」と入力すると、Sheet2!B2 の値を取得できます。
リスト選択によるデータ切り替え
ユーザーがリストから選択した値に応じて、異なるセル範囲を参照することが可能です。
=SUM(INDIRECT(B1))
B1セルに “A1:A10” や “B1:B10” などの範囲を入力すると、SUM関数がその範囲を集計します。
名前付き範囲を動的に参照
INDIRECT関数を使うと、名前付き範囲をセルの値に応じて変更できます。
=SUM(INDIRECT(A1))
A1セルに “SalesData” などの名前付き範囲を入力すると、その範囲の合計を取得できます。
3. よくあるエラーの原因と対策
INDIRECT関数は強力ですが、設定ミスによるエラーが発生しやすいです。以下のようなエラーがよく見られます。
#REF! エラー
原因
・参照先のセルやシートが存在しない
・シート名を適切に引用符で囲んでいない
対策
・シート名にスペースが含まれる場合は、シングルクォーテーション `’ ‘` で囲む
=INDIRECT(“‘Sheet 1’!A1”)
#VALUE! エラー
原因
・INDIRECT関数の引数が適切な文字列になっていない
・参照形式(A1形式 or R1C1形式)が間違っている
対策
・参照文字列が正しく入力されているか確認
・TRUE(A1形式)または FALSE(R1C1形式)を適切に指定
別ブックの参照ができない
INDIRECT関数は閉じたブックのセルを参照できません。別のEXCELファイルを参照する場合は、ブックを開いた状態で使用する必要があります。
まとめ
INDIRECT関数は、セル参照を動的に変更できる強力な関数ですが、適切に使わないとエラーが発生しやすいです。特に、シート名の引用符や参照形式の設定ミスに注意しましょう。この記事を参考に、INDIRECT関数を活用して EXCEL の効率をさらに向上させてみてください!
阿久梨絵でした!