• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VLOOKUPとIFの組み合わせで困ってます)

VLOOKUPとIFの組み合わせで困ってます

このQ&Aのポイント
  • シートが2枚あり、1枚目は工事記録一覧、2枚目は納品書です。
  • 納品書のA1に工事記録の管理番号を入力し、管理番号に該当する住所や建物名、工事種類などを表示させたいと思っています。
  • IF関数とVLOOKUP関数を組み合わせて式を作成しましたが、別のシートではうまく動作しません。正しい式を教えていただけますか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

sachikichi449
質問者

お礼

tom04さん、こんにちは。 教えていただいた、下の式を試したところ、希望の回答が返ってきました! =IF(A2="","",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,FALSE)&"") 式の最後にある(&””)は知らなかったのですが、 答えがブランク表示できるようになり、勉強になりました。 ありがとうございました! ご指摘通り、A列に間違ったデータを入力するとエラーにりますが、 A列は管理番号なので、管理番号の入力ミスを防ぐためにも エラー表示が出ても良いかな、と思ってます。 他の書類作成にも利用してみようと思います。 ありがとうございました!

その他の回答 (2)

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

別シートに関数が入れてあるのですよね =IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) は =IF(sheet1!A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) ではないでしょうかね。

sachikichi449
質問者

お礼

回答、ありがとうございました! こちらの式で試したところ、希望の回答が返ってきましたが、 A1がブランクの場合は、なぜか「0」と回答が返ってきてしまいました。 エクセル、奥が深が深いですね…

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.1

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となってしまうと思います。

sachikichi449
質問者

お礼

ご丁寧な回答、ありがとうございました! IFERRORはまだ試したことがなかったので、参考になりました。 IFERRORでは希望通りの回答が返ってこなかったので、 やはり、IFとVLOOKUPを組み合わせてやってみようと思います。 ありがとうございました。

関連するQ&A