• ベストアンサー

IF関数を使って#REF!がでないようにする方法

Excel初心者の質問です。 INDIRECTの関数を使ってほかのセルのデータを参照するようにシートを作りました。 参照する先にデータがない場合、#REF!と表示されてしまいますが、見づらいのでIF関数を用いて、もし#REF!だったら表示しない、という設定にしたいです。 A1に設定をすると、 IF(INDIRECT(A2)="","",A1) となるのかと設定してみたのですが、うまくいきませんでした。 どうしたら私が思うような設定になるのかご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

=IF(ISERROR(INDIRECT(A2)),"",A1) だと希望の動作になりますか?

その他の回答 (3)

回答No.4

IF文を使うのもいいですが、エラー値を表示したくないってだけなら、該当セルのフォントを白色にして、ユーザー定義の書式で  [黒]G/標準 とする方法もあります。 これで、通常の値は黒で表示されますし、エラー値は白で表示されます。

  • takuokweb
  • ベストアンサー率25% (10/39)
回答No.3

#2さんの「=IF(INDIRECT(A2)="","",INDIRECT(A2))」では、原案同様エラー値「#REF!」になります。IF関数で、セル参照しエラー値を感知した時点で、「#REF!」を返してしまいますので、ご提案のような、別の値(「""」)を返すような設定はできません。従って、 #2さんがご回答された、「=IF(ISERROR(INDIRECT(A2)),"",A1)」のようにISERROR関数の返り値が、TRUE(真)かFALUSE(偽)かを判断させてから、「""」を返すようにしなければなりません。

  • Bickyon
  • ベストアンサー率41% (42/101)
回答No.2

=IF(INDIRECT(A2)="","",INDIRECT(A2)) 上記では?

関連するQ&A