[[20060507230328]] 『VLOOKUP関数で複数のデータを検出したい』(masabou5) ページの最後に飛ぶ

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

 

『VLOOKUP関数で複数のデータを検出したい』(masabou5)

    A	    B          C        D
 1  1月1日       元旦        5月5日    子供誕生日
 2  3月21日      春分の日    12月23日  結婚記念日
 3  5月5日       子供の日			
 4  11月3日      文化の日			
 5  12月23日     天皇誕生日		

 上記のような表があり、VLOOKUP関数で検索して、
 あるセルに 5月5日には、「子供の日・子供誕生日」、
 12月23日には、「天皇誕生日・結婚記念日」というように表示させたいのですが、
 どのような式を作ればいいでしようか?
 =VLOOKUP(C4,A1:B5,2,0)&"・"&VLOOKUP(C4,D1:E5,2,0)
 と言うような式を作ってみましたが、#NAが出てダメでした。
 お教え下さい。よろしくお願いします。


 =VLOOKUP(C4,A1:B5,2,0)&"・"&VLOOKUP(C4,D1:E5,2,0)
でだめでしたか?
  A      B	     C	 D	 E
1 1月1日	   元旦		5月5日	子供誕生日
2 3月21日  春分の日		12月23日	結婚記念日
3 5月5日	  子供の日			
4 11月3日  文化の日	5月5日		
5 12月23日 天皇誕生日			

 こちらでは、、「子供の日・子供誕生日」と表示されてますよ。
関数は苦手だから理由が分からない。
           (SHIOJII)

 日付は、シリアル値で表示で月日になってますか?
どれかが、文字列になっているのでは?カンですが・・・
         (SHIOJII)

 アラー、ごめんなさい。
 二つの範囲に、検索値があれば、OKなのですが、
 片方しかない場合、例えば5月5日の子供の誕生日がない場合に#NAとなります。
 この場合、5月5日は、「子供の日」だけを表示したいのです。
 よろしくお願いします。(masabou5)

 関数は苦手ですが、エラーかどうかで判断すればどうでしょう。
=IF(ISERROR(VLOOKUP(C4,A1:B5,2,0)),"",VLOOKUP(C4,A1:B5,2,0))&"・"&IF(ISERROR(VLOOKUP(C4,D1:E5,2,0)),"",VLOOKUP(C4,D1:E5,2,0))
「・」は、どうしたらいいのかな?
           (SHIOJII)

 SHIOJIIさん、ありがとうございました。
 とりあえず出来ましたが、おっしゃるように「・」はどうすればいいでしょうね?(masabou5)

 CとD列を使うことが何となく変に思えるのですが。
 AとB列だけではだめなのでしょうか?
 (横ヤリ)

 AとB列だけでもいいのですが、結局VLOOKUPは最初の検索値が出てくると、
 そこでストップしてしまうので、苦肉の策で二つに分けたのですが・・・(masabou5)

 下から失礼します。。。
 (横ヤリ)さんがおっしゃっているのは、こんな感じのことだと思います。
 
   A      B	           C
1 1月1日	   元旦			
2 3月21日  春分の日		
3 5月5日	  子供の日・子供誕生日			
4 11月3日  文化の日	     5月5日		
5 12月23日 天皇誕生日・結婚記念日
 			
 と、はじめから B列 に、入れ込むことは出来ないのでしょうか?
 
 (キリキ)(〃⌒o⌒)b

 キリキさん、ありがとうございました。
 おっしゃる通りですね。どうも頭が固くて、もう少し柔軟に考えなければいけませんね。
 こうすれば変なことに悩まなくても済みそうです。(masabou5)

    A     B       C      D     E
 1  1月1日   元旦           5月5日   子供誕生日
 2  3月21日   春分の日         11月10日  妻誕生日
 3  5月5日   子供の日         12月23日  結婚記念日
 4  11月3日   文化の日   5月5日   子供の日・子供誕生日	
 5  12月23日  天皇誕生日  11月10日  妻誕生日	
 6               12月23日  天皇誕生日・結婚記念日
 7               11月3日   文化の日

 D4=IF(COUNTIF($A$1:$A$5,C4),VLOOKUP(C4,$A$1:$B$5,2,0),"")&IF(COUNTIF($D$1:$D$3,C4)
 ,IF(COUNTIF($A$1:$A$5,C4),"・","")&VLOOKUP(C4,$D$1:$E$3,2,0),"")

 ◆表示させる箇所(C4)が、きゅうくつな箇所ですね。
(Maron)

 Maronさん、
 なるほど、Countifを使うのですね、思いつきませんでした。
 どうも頭が堅くなっていて、柔軟な発想に欠けているようです。
 でも、これでほぼ初期の目的が達せられるようです。
 ありがとうございました。(masabou5)

 ◆蛇足ですが、MaronはCOUNTIF関数を使った回答をしましたが、既に回答されている、
 ISERR,ISNA関数でも、よいと思います。
 (Maron)

 Maronさん、ありがとうございました。
 ISNAでもいいですね、ただ、検索値が2個以上あった場合は、Countifなのでしょうね。
 いずれにしても、VLOOKUPで検索値が複数あった場合の処理が出来るようになりました。(masabou5)


    A    B    C     D     E
1  1月1日 元旦         5月5日  子供誕生日
2  3月21日 春分の日      5月10日  結婚記念日
3  5月5日 子供の日			
4  11月3日 文化の日 5月10日 結婚記念日	
5 12月23日 天皇誕生			

 D4にこのようにする方法もよいかもしれません。

 =SUBSTITUTE(
 IF(ISNA(MATCH(C4,A1:A5,)),"","・"&VLOOKUP(C4,A1:B5,2,))&
 IF(ISNA(MATCH(C4,D1:D2,)),"","・"&VLOOKUP(C4,D1:E2,2,)),
 "・",,1)

 >ISERR,ISNA関数でも、よいと思います。
                ****
 対象列範囲に値が存在するかどうかを調べるのは、=COUNTIF()
 も
 利用できますが、調べるものが、列内に存在するするケースが多い場合には、
 =VLOOKUP()や=MATCH()と較べると、全件参照となりますので、どうでしょう? (LOOKUP)

 LOOKUPさん、ありがとうございました。
 なるほどとうなされます、いろいろな使い方があるものですね。
 とても参考になりました。(masabou5)

コメント返信:

[ 一覧(最新更新順) ]


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