#REF! エラーは、数式が無効なセルを参照している場合に表示されます。 ほとんどの場合、このエラーは、数式から参照されているセルが削除または上に貼り付けられたときに発生します。
次の例は、列 E で数式 =SUM(B2,C2,D2) を使用しています。
列 B、C、または D を削除したら、エラー値 #REF! の原因となります。 この場合、列 C (2007 Sales) を削除すると、数式は =SUM(B2,#REF!,C2) となります。 このように明示的なセル範囲 (コンマ区切りで各セルを個別に参照する) を使用し、参照先の行と列を削除すると、Excel ではこれを解決できないため、エラー値 #REF! を返します。 これが、関数で明示的なセル範囲を使用することが推奨されない主な理由です。
解決方法
-
誤って行または列を削除した場合は、クイック アクセス ツール バーの [元に戻す] ボタンをすぐに選択するか、Ctrl キーを押しながら Z キーを押して復元できます。
-
個々のセルの代わりに =SUM(B2:D2) などの範囲参照を使用するように、数式を調整します。 これで合計範囲内の任意の列を削除できるようになるため、Excel では数式が自動的に調整されます。 また、行の合計を取得するには、=SUM(B2:B5) を使用することもできます。
次の例では、=VLOOKUP(A8,A2:D5,5,FALSE) は、列 5 からの戻り値を検索しますが、参照範囲は 4 列のみの A:D のため、エラー値 #REF! を返します。
解決方法
範囲を大きくするか、参照範囲に一致するように列参照値を減らします。 =VLOOKUP(A8,A2:E5,5,FALSE)、および =VLOOKUP(A8,A2:D5,4,FALSE) は、有効な参照範囲になります。
この例では、数式 =INDEX(B2:E5,5,5) は、INDEX の範囲は 4 行 x 4 列ですが、数式は 5 番目の行と 5 番目の列の内容を返すように要求しているため、エラー値 #REF! を返します。
解決方法
INDEX のルックアップ範囲内になるように、行または列の参照を調整します。 =INDEX(B2:E5,4,4) は有効な結果を返します。
次の例では、INDIRECT 関数は、エラー値 #REF! の原因になる閉じられたブックを参照しようとしています。
解決方法
参照先のブックを開きます。 動的配列関数を使用して閉じたブックを参照すると、同じエラーが発生します。
リンクされたブックのテーブル名と列名への構造化参照はサポートされていません。
リンクされたブックへの計算された参照はサポートされていません。
セルを移動または削除すると、無効なセル参照が発生したか、関数が参照エラーを返しています。
エラー値 #REF! を返しているオブジェクトのリンクと埋め込み (OLE) リンクを使用している場合、リンクが呼び出しているプログラムを開始します。
注: OLE は、プログラム間で情報を共有するために使用できるテクノロジです。
エラー値 #REF! エラーが発生した場合は、最初にチェックして、正しいトピックを参照していることを確認します。 まだ #REF を受け取っている場合は、 エラーが発生した場合は、「Microsoft 365 ドキュメントの外部コンテンツをブロックまたはブロック解除する」で説明されているように、外部コンテンツのセキュリティ センター設定をチェックします。
注: 動的データ交換 (DDE)は、Microsoft Windows ベースのプログラム間でデータを交換するための確立されたプロトコルです。
マクロの問題
マクロがワークシートに入力した関数が、その関数より上のセルを参照し、関数に含まれているセルが行 1 にある場合、行 1 より上にセルはないため、関数は #REF! を返します。 引数が有効ではないセルまたはセルの範囲を参照しているかどうか確認するために、関数を確認します。 これには、状況を考慮するために、Visual Basic Editor (VBE) のマクロを編集することが必要な場合があります。
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。