- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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))
その他の回答 (2)
- hallo-2007
- ベストアンサー率41% (888/2115)
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)) といった感じでも出来るはずです。
お礼
ISERROR と、ISNA の、使い方の違いがまだよくわかりませんが、また次の課題にします。 COUNTIF は、また違った考え方なんですね。 検索範囲に全くなければもとの数値にする、ということですね! 色々なやりかたがあるのですね。 ありがとうございました!
- handomari
- ベストアンサー率47% (83/174)
#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から追加された関数だったと思います。
お礼
ありがとうございました。 ISNA はそういう風に使うのですね、NO1さんと同じような持っていきかたですね。IFERROR なんてあるのですね。それだと、 私が単純に考えていたのが、IF(VLOOKUP(A1,$C$1:$D$5,2,FALSE),B1) でした。色々足りないですが・・・。 ありがとうございました。
お礼
ありがとうございました!まさにその通りです。 FALSE でない場合は・・という式が作れなくて悩んでいました。 ISNA を使えばよいのですね。よくわかりました。