『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)