【Excel】#REF!の意味と修正方法する方法3パターン+α

アイキャッチ
目次

#REF!の意味

#REFエラーは、無効なセルを参照すると出るエラーです。「REF」は英語のREFerence(リファレンス:参照)の頭文字を取っています(多分)。カタカナで「リファレンスエラー」と覚えれば分かりやすいです。

「無効なセル参照」さえ理解できれば、おのずと修正方法も分かります。次項から、参照が無効になるケースを紹介します。

#REFエラーはほとんどの場合修正可能です。なるべく、回避する方法(エラーを非表示にする等)を選択しないで下さい。

参照が無効になるケース

参照しているセルが削除されている

数式を作成した後に、参照しているセルを削除すると#REF!を返します

テーブルの画像。詳細は以下。

例えば、このような表でD列に

=B列*C列の式が入力されている場合、

REFエラーの画像。詳細は以下。

B列を削除するとC列(元D列)が#REF!を返します。

参照セルが存在しない場合の修正方法は?

Undo(元に戻す)が効くのであれば、元に戻して下さい。効かない場合は削除前と同じ状態に作り直すしかありません。

UndoのショートカットはCtrl+Zです。

テーブルの画像。Undoにより削除された列が元に戻っている。

B列が見た目上不要なのであれば、列を非表示にしましょう。B列を選択して右クリック→非表示を選択します。

テーブルの画像。B列が非表示になっている。

不正な参照を含む関数

関数内で指定した参照範囲から外れたセルを参照すると#REF!を返します

VLOOKUP関数の場合

VLOOKUP関数のサンプル画像。詳細は以下。
  • =VLOOKUP($G$1,$A$2:$D$5,5)

引数列番号5になっています。参照範囲は4列(A列~D列)しかないので範囲外となり、#REF!を返します。

INDEX関数の場合

INDEX関数のサンプル画像。詳細は以下。
  • =INDEX($A$2:$D$5,3,5)

引数[列番号]が5になっています。参照範囲は4列(A列~D列)しかないので範囲外となり、#REF!を返します。

OFFSET関数の場合

OFFSET関数のサンプル画像。詳細は以下。
  • =OFFSET(B1,-1,,)

引数の指定が-1になっているので、シート外を参照する事になり、#REF!を返します。

参照範囲がワークシート外の場合の修正方法は?

1.指定した参照範囲内を指定して下さい。

  • =VLOOKUP($G$1,$A$2:$D$5,2)
  • =INDEX($A$2:$D$5,3,2)

2.シート内を参照して下さい。

  • =OFFSET(B1,1,,)

INDIRECT関数または動的配列数式が閉じているファイルを参照する

  • =INDIRECT(“‘[test.xls]”&A1) …別のファイルを参照している場合、そのファイルが閉じていると#REF!を返します。
INDIRECT関数または動的配列数式で#REF!が出た場合の修正方法は?

1.参照先ファイルを開いてF9で更新して下さい。

2.参照先を自身のファイルに変更して下さい。

  • =INDIRECT(A1)

エクセルのバージョンが古い場合

EXCEL2007より古いバージョン(972003)は行列数が65,536行×256列しかありません。古いバージョンでファイルを開いて、そのファイルが65,536行×256列より外を参照していた場合は#REF!を返します。

互換性チェックで対象セルを検索する事は可能ですが、修正は手作業になります。

古いバージョンのエクセルで#REF!が出た場合の修正方法は?
  1. 参照を65,536行×256列内に収めます。参照外にあるセルをコピーまたは切り取りで65,536行×256列内に収めて下さい。別シートを使うと楽かもしれません。
  2. IFERROR関数 で非表示にする

修正は不要だけど見た目だけどうにかしたい場合は、IFERROR関数で非表示にします。

おすすめは古いバージョンを使わないことです。2007以降のバージョンを使う事を最優先に検討しましょう。

その他のエラーも解説しています。気になる項目があれば、是非読んでみて下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次