[[20121013085351]] 『vlookupで複数のシートから検索』(mina*) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vlookupで複数のシートから検索』(mina*)
 10万件以上ある住所録から対象となるお客さまだけ、タックラベルを作成したいと思っています。
 1シートの行の上限が決まっているため、住所録が「2シート」になっているので、
 vlookupで「お客さま番号」をキーとして、検索するように関数を作成したのですが、
 該当するセルが空白の場合に「0」が表示されてしまいます。

 この後に、ワードの差し込み印刷でラベルを作成するため、
 オプションの「ゼロ値」のチェックをはずしても意味がないため、
 他に表示を、空白として表示する方法を探しています。

 マクロなどの知識がないため、できれば関数で解決したく思っています。
 お手数ですが、ご指南のほど、よろしくお願いいたします。

 =IF(ISERROR(VLOOKUP($A2,住所録1!$A:$I,2,0))=FALSE,VLOOKUP($A2,住所録1!$A:$I,2,0),
 IF(ISERROR(VLOOKUP($A2,住所録2!$A:$I,2,0))=FALSE,VLOOKUP($A2,住所録2!$A:$I,2,0),""))

 例)E3の建物名が「0」
   A       B       C     D         E   
 1 お客さま番号 お名前   郵便番号 住所       建物名_部屋番号
 2 123456789     山田 太郎  123-0045  大田区大森1-2-3  大森ビル102
 3 987654321     佐藤 次郎 123-0045  大田区大森3-4-5  0
 4

 Excel2003を使用。

 すごくわかりやすい説明ですね!!

 ・・・と、つぶやきはさておき・・・

 戻り値が文字列のものだけの様なので
 数式の最後に &"" を付けてみて下さい。

 もしも 郵便番号 等、数値で入力されている所があるなら
 もう少し考えないといけないですが。。。

 (HANA)

 できました!
 数式1つ増やすだけで変わるものなのですね。感動してしまいました!
 ありがとうございます<(_ _)>
 (mina*)

 ちなみに、ISERROR関数は引数がエラー値だった時にTRUE を返してくれるので
=IF(ISERROR(VLOOKUP($A2,住所録1!$A:$I,2,0)),IF(ISERROR(VLOOKUP($A2,住所録2!$A:$I,2,0)),"",VLOOKUP($A2,住所録2!$A:$I,2,0)),VLOOKUP($A2,住所録1!$A:$I,2,0))&""
 こんな感じで入れ替えると12文字分短くなります。

 また、エラーが出るのは検索値が無かった時だけだと思うので
 COUNTIF関数で事前調査を行っても良いかもしれません。
=IF(COUNTIF(住所録1!$A:$I,$A2),VLOOKUP($A2,住所録1!$A:$I,2,0),IF(COUNTIF(・・・・
 COUNTIF関数の戻り値が「0」だった時に
 IF関数の 偽の場合 の方に分岐します。

 (HANA)

 >COUNTIF関数で事前調査を行っても良いかもしれません。
 >=IF(COUNTIF(住所録1!$A:$I,$A2),VLOOKUP($A2,住所録1!$A:$I,2,0),IF(COUNTIF(・・・・

 COUNTIFの範囲はA列だけでえんとちゃまいすかね?

 =IF(COUNTIF(住所録1!$A:$A,$A2),VLOOKUP(……

 (訂正)
 ちゃまいすかね → ちゃいますかね

 (よみびとしらず)


 >COUNTIFの範囲はA列だけでえんとちゃまいすかね?
 わぁぁっ、すみません。
 A列だけで良いです。

 ありがとうございます。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.