- ベストアンサー
VLOOKUPとIFの組み合わせで困ってます
- シートが2枚あり、1枚目は工事記録一覧、2枚目は納品書です。
- 納品書のA1に工事記録の管理番号を入力し、管理番号に該当する住所や建物名、工事種類などを表示させたいと思っています。
- IF関数とVLOOKUP関数を組み合わせて式を作成しましたが、別のシートではうまく動作しません。正しい式を教えていただけますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >セルA2以降に、管理番号に該当する住所や建物名、 >工事種類などを表示させたい・・・ というコトは2行目に数式を入れないといけませんよね? 方法としては (1)手っ取り早く =IF(A2="","",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,FALSE)&"") としてみる。 この場合、表示されるデータは文字列となります。 (2)コツコツと =IF(OR(A2="",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)=""),"",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)) とする。 ※ 余計なお世話かもしれませんが、A列に間違ったデータを入力した場合は エラーになりますので、 =IF(COUNTIF(Sheet1!A:A,A2),VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)&"","") のようにする方法もあります。m(_ _)m
その他の回答 (2)
- hallo-2007
- ベストアンサー率41% (888/2115)
別シートに関数が入れてあるのですよね =IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) は =IF(sheet1!A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) ではないでしょうかね。
お礼
回答、ありがとうございました! こちらの式で試したところ、希望の回答が返ってきましたが、 A1がブランクの場合は、なぜか「0」と回答が返ってきてしまいました。 エクセル、奥が深が深いですね…
- soixante
- ベストアンサー率32% (401/1245)
Sheet2のA2セルに =IFERROR(VLOOKUP(A1,sheet1!$A$1:$J$20,3,0),"") ではどうでしょうか。 IFERRORの書式は、 IFERROR(値、エラーの場合) つまり、 A2セルに、VLOOKUP(A1,sheet1!$A$1:$J$20,3,0) の値を。 でもエラーの時には空欄で。 という意味です。A1が空欄の場合は、空欄で返ってきます。 あなたの式の場合は、A1が空欄の時の処理は空欄と書いてありますが、 もしA1セルに誤った管理番号が入力された場合に#N/Aとなってしまうと思います。
お礼
ご丁寧な回答、ありがとうございました! IFERRORはまだ試したことがなかったので、参考になりました。 IFERRORでは希望通りの回答が返ってこなかったので、 やはり、IFとVLOOKUPを組み合わせてやってみようと思います。 ありがとうございました。
お礼
tom04さん、こんにちは。 教えていただいた、下の式を試したところ、希望の回答が返ってきました! =IF(A2="","",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,FALSE)&"") 式の最後にある(&””)は知らなかったのですが、 答えがブランク表示できるようになり、勉強になりました。 ありがとうございました! ご指摘通り、A列に間違ったデータを入力するとエラーにりますが、 A列は管理番号なので、管理番号の入力ミスを防ぐためにも エラー表示が出ても良いかな、と思ってます。 他の書類作成にも利用してみようと思います。 ありがとうございました!