【スプレッドシート】INDIRECT関数のエラーと解決方法

Googleスプレッドシートで別のセルにあるシート名を参照したいときに便利なINDIRECT関数ですが、参照文字列の書き方や、特殊な条件によってエラーが発生します。この記事では、INDIRECT関数の正しい書き方と、エラーの解決策を解説しているので、ぜひ参考にしてみください。

スポンサーリンク

INDIRECTの「書き方」のポイント

【スプレッドシート】INDIRECT関数のエラーと解決方法

1. すべての参照は「文字列」で書く

INDIRECT関数が参照するのは文字列です。そのため、セル番地やシート名は二重引用符で囲んで文字列として完成させます。

  • 良い例=INDIRECT("シート2!C2")
  • 悪い例=INDIRECT(シート2!C2)

2. セルと文字列を「&」で繋ぐ

シート名やセル番地を別のセルから参照する場合、&を使って文字列を結合します。このとき、シート名とセル参照の間には、必ず!を入れます

良い例=INDIRECT(A2&"!B2")

悪い例=INDIRECT(A2"&B2")

INDIRECT関数の引数:(参照文字列, [参照形式])


さらに詳しい解説は、「INDIRECT関数の使い方」の記事をご覧ください。

スポンサーリンク

REF!(パラメータ 1 の値が無効なセル / 範囲)の場合

【スプレッドシート】INDIRECT関数のエラーと解決方法

原因1:

参照しているシートやセルが存在しない場合に発生します。

解決策:

  • 参照先のシートやセルが削除されていないか、名前が変更されていないかを確認します。
  • 参照先のシート名やセル番地に、全角・半角やスペルミスがないか確認します。
  • シート名を参照している場合、シート名の後ろに!を付け忘れていないか確認します。
【スプレッドシート】INDIRECT関数のエラーと解決方法

原因2:

INDIRECT関数に渡された文字列が、有効なセル参照として認識されない場合に発生します。

これは、「数式」や「日付」として認識される可能性がある1-32025-4といったものを使用しているときに起こります。

【スプレッドシート】INDIRECT関数のエラーと解決方法

解決策: 以下のいずれかの方法で、シート名を正しく認識させます。

  • セルの書式を変更する
    • 参照元のセルの書式を、「表示形式」→「数字」→「書式なしテキスト」に変更します。
  • シート名を変更する
    • 1-3のようなシート名を、1月-3月のように文字列を含む形式に変更します。
  • 数式内で結合する
    • =INDIRECT("'"&A2&"'!B2")のように、シングルクォーテーションを結合して文字列として認識させます。
スポンサーリンク

NAME?(不明な関数名)の場合

【スプレッドシート】INDIRECT関数のエラーと解決方法

原因:

INDIRECTのスペルが間違っている(例:INDIREFT)場合に発生します。

解決策:

関数名を、正確にINDIRECTと入力し直す。

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