• ベストアンサー

VLOOKUPでエラーの場合はある列の数値に、としたい。

色々探したのですが似たような例が見つからないのでこちらで質問させて頂きます。 VLOOKUPを使って、#N/A と、エラーが出るセルには、そのままではなくて、別のある列の数値を入れなさい、としたいのです。 このままの式だと、VLOOKUP(A1,$C$1:$D$5,2,false) なのですが、この場合の#N/Aに、もとの1の表の う にある 125 を持っていきたいのですが、 どのように式をかえればよいでしょうか? よろしくお願いします。 1の表           2の表          修正 A    B         C    D    →    E あ   123        あ    156        156 い   124        う    180        #N/A う   125        え    150        180 え   126        か    160        150 お   127        お    160        160

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

2の表と修正という表の関係がわかりませんが、現在の式で#N/Aが出る場合、別の表を検索させるということですか? だったら、以下のようになります。別の表の範囲 とあるところに$C$1:$D$5に変わる別の範囲を入れてください。 =IF(ISNA(VLOOKUP(A1,$C$1:$D$5,2,FALSE)),VLOOKUP(A1,別の表の範囲,2,FALSE),VLOOKUP(A1,$C$1:$D$5,2,FALSE))

rocuchan
質問者

お礼

ありがとうございました!まさにその通りです。 FALSE でない場合は・・という式が作れなくて悩んでいました。 ISNA を使えばよいのですね。よくわかりました。

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

2つ位であればIF文で分ける方法があります。 =IF(ISERROR(今の式),VLOOKUPでA~B列の範囲,今の式) といった具合です。 もう少しシンプルにすると, COUNTIF関数で、C列に検索値があるかどうかでも判断できます。 =IF(COUNTIF(A1,$C$1:$C$5)=0,B1,VLOOKUP(A1,$C$1:$D$5,2,FALSE)) といった感じでも出来るはずです。

rocuchan
質問者

お礼

ISERROR と、ISNA の、使い方の違いがまだよくわかりませんが、また次の課題にします。 COUNTIF は、また違った考え方なんですね。 検索範囲に全くなければもとの数値にする、ということですね! 色々なやりかたがあるのですね。 ありがとうございました!

  • handomari
  • ベストアンサー率47% (83/174)
回答No.2

#N/Aのときに表示するのは、124ですよね? それなら、一般的には、こうでしょうか。 =IF(ISNA(VLOOKUP(A2,$C$1:$D$5,2,FALSE)),B2,VLOOKUP(A2,$C$1:$D$5,2,FALSE)) もし、Excel2007なら、こんなかんじで。 =IFERROR(VLOOKUP(A1,$C$1:$D$5,2,FALSE),B1) ※IFERRORは、たしかExcel2007から追加された関数だったと思います。

rocuchan
質問者

お礼

ありがとうございました。 ISNA はそういう風に使うのですね、NO1さんと同じような持っていきかたですね。IFERROR なんてあるのですね。それだと、 私が単純に考えていたのが、IF(VLOOKUP(A1,$C$1:$D$5,2,FALSE),B1) でした。色々足りないですが・・・。 ありがとうございました。

関連するQ&A