Excelやスプレッドシートで #REF! や #N/A が出る意味と直し方がわからない
#REF! は、数式が見ていたセルや行・列・シートが無くなったしるしです。消した直後なら Ctrl+Z で戻し、後からなら参照先を書き直します。
#N/A は、VLOOKUP などが探した値を見つけられなかったしるしです。よくあるのは検索値の余分なスペースや、数値と文字列の型違いです。
- エラーの出ているセルを選んで、数式バーの中身を見る
- #REF!参照が壊れている。消した直後なら元に戻す、後からなら参照先を打ち直す
- #N/A探した値が見つからない。検索値と表の中身を見比べる
- 直した数式を、同じ列の下までコピーし直す
- 上書き保存して閉じた後は、消した行や列を元に戻せません
- エラーが消え、合計が想定どおりなら完了
同じ「エラー」に見えても、#REF! は数式の材料が無くなった状態、#N/A は材料はあるのに探し物が見つからなかった状態です。
※表示名と対処は2026年9月時点のMicrosoft・Googleの公式ヘルプに基づきます。画面はパソコン版で、版によって使える関数やメニュー名が違います。

#REF! は参照そのものが消えている
C列を丸ごと消すと、数式の中のその位置だけが行き先を失う
公式ヘルプは「数式から参照されているセルが削除または上に貼り付けられたときに発生します」と説明しています(#REF! エラーを修正する方法)。
消した直後なら Ctrl+Z で取り消せますが、上書き保存して閉じた後は戻せません。その場合は数式バーの #REF! を正しいセル番地に打ち直します。
何も消していないのに出るときは、数式が範囲の外を指しています。公式ヘルプの例 =VLOOKUP(A8,A2:D5,5,FALSE) は、範囲が4列なのに5列目を返すよう書いているため #REF! になります。列番号が範囲の列数を超えていないか数えてください。
#N/A は探した値が見つからなかった
- 検索値のセルと、表の1列目の同じはずの値を並べて見比べる
- 前後の空白を疑い、TRIMで空白を取った値で引き直す
- 片方が数値・片方が文字列なら、VALUE か TEXT でどちらかにそろえる
VLOOKUP や XLOOKUP は、探した値が見つからないと #N/A を返します。目で見て同じでも、末尾の空白1つや全角半角の違いで一致しません。公式ヘルプは、空白には TRIM、型の違いにはデータ型をそろえることを挙げています(#N/A エラーを修正する方法)。
文字列の数字は、表示形式を「数値」にしただけでは文字列のままです。空いた列に =VALUE(A2) で数値に直すか、検索値側を =TEXT(D2,"0") で文字列にそろえます。
この食い違いは、CSVを取り込んだ時点で生まれることもあります → CSVの文字化け・先頭の0が消える・日付が45000になる。
エラーを「消す」ことと「直す」こと
IFERROR は #N/A や #REF! など7種類のエラーをまとめて別の値に差し替えます。ただし #REF! にかけると、壊れた数式が空欄に見えるだけで合計は狂ったままです。
見つからないのが想定内なら、#N/A だけを差し替える IFNA を使います。
=IFNA(VLOOKUP(D2,$A$2:$B$100,2,FALSE),"未登録")
範囲に付けた $ は、下にコピーしても見る範囲がずれない印です。これが無いと、コピーした行から先で新しく #N/A が出ます。
XLOOKUP の4つ目の引数「見つからない場合」も同じ役割です。ただし使えるのは Microsoft 365・Excel 2021・Excel 2024 とスプレッドシートで、Excel 2019 以前では #NAME? になります。その場合は上の IFNA を使います。
=XLOOKUP(D2,$A$2:$A$100,$B$2:$B$100,"未登録")
Googleスプレッドシートでも表示は #REF! と #N/A で同じで、消えた参照は打ち直し、見つからない値は検索値をそろえる直し方も変わりません。XLOOKUPの4つ目は「見つからない場合の値」です。
それでも消えない時のチェックリスト
#REF! と #N/A は、名前が似ているだけで別の故障です。数式バーを見てどちらかを言い当てるところが、直し方の分かれ目です。