• ベストアンサー

EXCEL関数について

データ張付け用シートBが以下の場合   A   B 1 東京  56 2 名古屋 42 3 大阪  32 4 博多  12 転機用シートA   A   B 1 北海道 0 2 東北  0 1 東京  56 2 名古屋 42 3 大阪  32 4 博多  12 またはデータ張付け用シートBに全くデータが無い場合   A   B 1  2  3  4  5  6  転機シートA   A   B 1 北海道 ブランク 2 東北  ブランク 1 東京  ブランク 2 名古屋 ブランク 3 大阪  ブランク 4 博多  ブランク の様にする為の関数をご教示ください。

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

  • ベストアンサー
回答No.2

B1セルに以下のように書きます。 =IF(COUNTA(データ張付け用シートB!A:A)<>0,IF(ISERROR(VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE)),0,VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE)),"") こう書いたら、必要なだけ、下方向にセルをコピーして下さい。 「COUNTA(データ張付け用シートB!A:A)<>0」の部分で「データ張付け用シートBのA列に入力されているセルの個数」を調べます。 データ張付け用シートBのA列に何らかのデータが1つ以上あれば、この判定式はTRUEになり、1つも無ければFALSEになります。 IF関数は「判定式がTRUEなら、2番目の値を、FALSEなら3番目の値を返す」ので、これで「データ張付け用シートBのA列に何らかのデータがあれば、IF(ISERROR(VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE)),0,VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE))を、なければ""(ブランク)」になります。 次に「IF(ISERROR(VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE)),0,VLOOKUP(A1,データ張付け用シートB!A:B,2,FALSE))」の部分ですが、これは「VLOOKUPがエラーになるなら0を、VLOOKUPがエラーにならないならVLOOKUPで探した値」になります。 VLOOKUPで「検索の型」にFALSEを指定すると「一致する値が見付からなかったらエラーになる」ので、これで「見付かったかどうか」を判定しています。 これで、北海道や東北など、データ張付け用シートBに無い地名のデータは「0」になり、東京、名古屋、大阪、博多は「見付かった値」になります。

その他の回答 (1)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

シート名称が、"A"と"B"の場合、シートAのB1セルに以下の式を入れて、下にドラッグコピーしてみてください。 =IF(ISNA(VLOOKUP(A1,B!A:B,2,FALSE)),"",VLOOKUP(A1,B!A:B,2,FALSE))

hide0054
質問者

補足

aokii様 回答有難うございます。 Aシートにデータが何もない特はブランクになりましたが 以下の場合、北海道、東北はブランクになりますが0を表示させる方法 は有りますでしょうか。 A   B 1 東京  56 2 名古屋 42 3 大阪  32 4 博多  12 転機用シートA   A   B 1 北海道 0 2 東北  0 1 東京  56 2 名古屋 42 3 大阪  32 4 博多  12 宜しくお願い致します。

関連するQ&A