• 締切済み

エクセル関数

A列に数値を入れれば、B列に別シートからの検索結果(文字)を表示させるようにしています。 B列のセルに↓の式が入っています。 B1:VLOOKUP(A1,Sheet2!$A$1:$B$5,2,1) B2:VLOOKUP(A4,Sheet2!$A$1:$B$5,2,1) BX:VLOOKUP(AX,Sheet2!$A$1:$B$5,2,1) B列の結果が全て同一なら「OK」、不一致なら「NG」をC1セルに表示させたいのですが、A列に数値を入れていないためB列は、常に「#N/A」が表示され「NG」となります。 何か対処方法があればご教授願います。

みんなの回答

  • spnlight
  • ベストアンサー率46% (15/32)
回答No.4

先ず1さんの様にエラーは空白の様にして置き、 =IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$B$5,2,1)),"",VLOOKUP(A1,Sheet2!$A$1:$B$5,2,1) 次にCOUNTAでは、本当の空白以外カウントされちゃうので、 ""を空白と見なしてくれる、COUNTBLANKを使ってCOUNTAから空白分の数値を引けばいいと思う =IF(COUNTA(B1:B4)-COUNTBLANK(B1:B4)=COUNTIF(B1:B4,B1),"OK","NG")

mayuriku
質問者

お礼

お礼が遅くなり申し訳ございません。 ありがとうございました。

  • dkljdkfsj
  • ベストアンサー率23% (13/56)
回答No.3

#2さんの言うとおり0(FALSE)にしたほうがいいと思います その上で Sheet2の範囲を1行増やし A6に「0」を入力しておきます B1の関数を =VLOOKUP(A1,Sheet2!$A$1:$B$6,2,0) 以下同様に変更 A列に入力されていない場合、 B列には空白が表示されます。

mayuriku
質問者

補足

回答ありがとうございます。 B列は、空欄になりました。 C1にB列の検索結果を表示するようにしています。 B列の結果が一致すれば「OK」、不一致なら「NG」としています。 B列に表示されているセルが全て一致していても、空欄(関数あり)があるため、「NG」となります。 ↓の関数を入れています。 =IF(COUNTA(B1:B4)=COUNTIF(B1:B4,B1),"OK","NG") 空欄(関数あり)の場合でも、表示されているセルだけを判断して検索結果を表示する方法はないでしょうか?

回答No.2

IF関数を使ったらどうでしょう "",""←空欄は空欄でかえす。 Sheet2になにが入力されているのかわからないのですが VLOOKUPの抽出結果が 1 (TRUE)より 0(FALSE)のほうがいいような…

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

普通は、 =IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$B$5,2,1)),"",VLOOKUP(A1,Sheet2!$A$1:$B$5,2,1) のようにするんだけど。

mayuriku
質問者

補足

ご回答ありがとうございます。 その場合、B列の検索結果は非表示になります。 しかし、B列に表示されてるいるセルが一致していても非表示のセルががあるため?「NG」となってしまいます。 C1には、↓の数式を入れています。 =IF(COUNTA(B1:B4)=COUNTIF(B1:B4,B1),"OK","NG") 何か良い方法はないでしょうか?