• ベストアンサー

VLOOKUPとIFの質問です

エクセルデータベースからの抽出について質問です。 主キー(受注番号、管理番号など)を検索してあれば、実行、なければ空欄を表示ずるようにしたいのですが、出来るのでしょうか? たとえば、 IF条件…A1に入力された値(主キー)を、DBより検索し、あれば 真の場合…A1に入力された値の存在した列から数えての、指定した列の値を表示する 偽の場合…空欄を表示する この場合の、IF条件で、vlookupを使うと思うのですが、値があるかないかを区別する方法がわかりません。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

方法はいくつかあります。 ■ISERRORとVLOOKUPで判定、TRUEなら存在しない、FALSEなら存在するのでVLOOKUPを実行 =IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$D$100,3,FALSE)),"",VLOOKUP(A1,Sheet2!$A$1:$D$100,3,FALSE)) ■ISERRORとMATCHで判定、TRUEなら存在しない、FALSEなら存在するのでVLOOKUPを実行 =IF(ISERROR(MATCH(A1,Sheet2!$A$1:$A$100,0)),"",VLOOKUP(A1,Sheet2!$A$1:$D$100,3,FALSE)) ■COUNTIFで判定、0なら存在しない、1以上で存在するのでVLOOKUPを実行 =IF(COUNTIF(Sheet2!$A$1:$A$100,A1),VLOOKUP(A1,Sheet2!$A$1:$D$100,3,FALSE),"")

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

ご質問者のエクセルグレードがエクセル2007以上なら次の様な関数があります。 =IFERROR(VLOOKUP(~式~),"") エクセル2003以下ならば、既回答済みですが、私はCOUNTIF関数の利用をお勧めします。 =IF(COUNTIF(検索範囲,A1),VLOOKUP(~式~),"")

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>値があるかないかを区別する方法 あるかないかをまず調べればよいので,たとえばCOUNTIFで調べてみます。 作成例: =IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:C,3,FALSE),"")

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

例データ Sheet1 A列   Bれつは結果 B1の式 =IF(NOT(ISERROR(VLOOKUP(A1,Sheet2!$F$1:$G$14,2,FALSE))),"有り","なし") 下方向に式を複写。 A列データ行数以上にB列に式を入れていくなら =IF(A1="","",IF(NOT(ISERROR(VLOOKUP(A1,Sheet2!$F$1:$G$14,2,FALSE))),"有り","なし")) c 有り d 有り e なし 検索表 Sheet2に F1:G4 a 1 b 2 c 3 d 4 別ブックに検索表があるときは、 http://www.excel-jiten.net/formula/ref_other_books.html の最後の「直接数式を入力する」を見て勉強のこと。

関連するQ&A