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

目次

#REF!の意味

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

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

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

参照が無効になるケース

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

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

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

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

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

修正方法は?

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

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

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

不正な参照を含む関数

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

VLOOKUP関数の場合

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

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

INDEX関数の場合

=INDEX($A$2:$D$5,3,5)

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

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)

修正方法は?

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

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

=INDIRECT(A1)

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

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

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

修正方法は?

1.参照を65,536行×256列内に収めます。参照外にあるセルをコピーまたは切り取りで65,536行×256列内に収めて下さい。別シートを使うと楽かもしれません。

2.IFERROR関数で非表示にする

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

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

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

よかったらブックマークとシェアをお願いします。それでは、最後までご高覧いただきありがとうございました。

よかったらシェアしてください
URLをコピーする
URLをコピーしました!
目次へ
トップへ
目次
閉じる