Excel (一般機能) |
![]() ![]() |
(Windows 10全般 : Excel 2016)
複数条件 vlookup関数 ?
投稿日時: 20/12/09 22:34:44
投稿者: JIRO-KUN
|
---|---|
【Sheet1】 A列 B列 C列 D列 1行目 メーカー 品名 品番 2行目 バナナ 靴 BBK-41956489BL 8 (1) 3行目 みかん 時計 2412NY-DY-NEW-GP 99 (2) 4行目 レモン エアコン MSZ2156L 6 (3) 5行目 メロン テレビ SNY6688 1 (4) 6行目 いちご テレビ VR-333-HD 2 (5) 7行目 りんご テレビ REG-5597-FR 3 (6) 8行目 ぶどう 車 GT-1970-NEW 99 (7) 9行目 ぶどう 車 GT-2010-R (8) 10行目 メロン リモコン MBC-240-VT 7 (9) 11行目 いちご テレビ VR-555-HD-NEW-WE 99 (10) 12行目 すいか カメラ ABC-456 (11) 13行目 すいか 鞄 ABC-124 7 (12) 【Sheet2】 A列 B列 C列 D列 1行目 メーカー 品名 品番 2行目 NEW 99 (A) 3行目 メロン テレビ 1 (B) 4行目 いちご テレビ 2 (C) 5行目 テレビ 3 (D) 6行目 靴 4 (E) 7行目 時計 5 (F) 8行目 エアコン 6 (G) 9行目 GT-1970-R 7 (H) 10行目 MBC-240-VT 7 (I) 11行目 ABC-123 7 (J) 12行目 ABC-124 7 (K) 13行目 ABC-125 7 (L) 14行目 ABC-126 7 (M) 15行目 ABC-127 7 (N) 16行目 ABC-128 7 (O) 17行目 ABC-129 7 (P) 18行目 ABC-130 7 (Q) 19行目 BBK-41956489BL 8 (R) 「Sheet2」に条件があります。あらかじめ条件を入れておきます。 「Sheet1」のA〜C列に値をいれると「Sheet1」のD列に 「Sheet2」の条件のあった値を返したいです。 「Sheet1」のD列に入れる関数が知りたいです。 「Sheet2」の「C2」の値「NEW」のみ「NEWが含まれる場合」です。 条件が複雑でややこしいですが、こんな条件でもできますでしょうか。 「Sheet1」の説明です。 (1)「Sheet2」「B6」に"鞄"がありますが「C19」にこの品番があるので品番を優先し「D19」の"8"を返したいです。 (2)「Sheet2」「B7」に"時計"がありますが品番に"NEW"が含まれるので「D2」の"99"を返したいです。 (3)「Sheet2」「B8」の品名に条件が合うので"6" (4)品名がテレビでメーカーがメロンで、「Sheet2」「A3」「B3」の条件に合うので"1" (5)(4)と同じで品名がテレビですがメーカーがいちごと条件が合うので"2" (6)(4)(5)と同じテレビですがメロン、いちごではないので「Sheet2」「B5」の条件で"3" (7)メーカー、品名の条件はないですが品番に"NEW"が含まれるので「D2」の"99"を返したいです。 (8)どの条件にも当てはまらず、「Sheet2」C列の品番にもないので"空白"("")で。 (9)「Sheet2」「C10」に条件があるので「D10」の"7" (10)いちご、テレビと条件が合うが、"NEW"が含まれ、この条件を一番に優先売るので「D2」の"99" (11)(8)と同じで、どの条件にも当てはまらず、「Sheet2」C列の品番にもないので"空白"("")で。 (12)「B6」の"鞄"にも条件が当てはまるが(C12)にこの品番があるので「D12」の"7" 第一に優先したいのが いかなる場合でも、メーカーも品名も条件にあったとしても 品番に"NEW"が含まれてたら"99"を返したいです。 "NEW"は「C2」に入れず「Sheet1」D列に入れる関数に直接組み込んでいただいてもOKです。 次に優先するのがメーカー、品名が合っていたとしても品番が同じならその品番を優先したいです。 (A)品番に"NEW"が含まれていたら"99" (B)品番が何であってもメーカーが"メロン"かつ、品名が"テレビ"なら"1" (C)品番が何であってもメーカーが"いちご"かつ、品名が"テレビ"なら"2" (D)品番が"テレビ"でメーカーが(B)(C)以外なら"3" (E)品番とメーカーが何であっても品名が"鞄"なら"4"、しかし品番がC列にある場合は品番を優先する。 (F) (E)と同じ意味 (G) (E)と同じ意味 (H)〜(R)この品番と同じならこのD列を返す。 しかし、品番に"NEW"が含まれていたら"99"を返す。 条件がひとつでしたらなんとか自分でできそうなんですが複雑なので知恵をお借りしたく、 宜しくお願いします。 コードがうまくいかず ずれてますが分かりますでしょうか。 申し訳ございません。(いつもコードがうまくできません。) ///////////////// 【Sheet1】 A列 1行目〜13行目 メーカー バナナ みかん レモン メロン いちご りんご ぶどう ぶどう メロン いちご すいか すいか B列 1行目〜13行目 品名 靴 時計 エアコン テレビ テレビ テレビ 車 車 リモコン テレビ カメラ 鞄 C列 1行目〜13行目 品番 BBK-41956489BL 2412NY-DY-NEW-GP MSZ2156L SNY6688 VR-333-HD REG-5597-FR GT-1970-NEW GT-2010-R MBC-240-VT VR-555-HD-NEW-WE ABC-456 ABC-124 D列 1行目〜13行目 (空白) 8 99 6 1 2 3 99 (空白) 7 99 (空白) 7 E列 1行目〜13行目 (空白) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) 【Sheet2】 1行目〜19行目 A列 メーカー (空白) メロン いちご (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) B列 品名 (空白) テレビ テレビ テレビ 靴 時計 エアコン (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) C列 品番 NEW (空白) (空白) (空白) (空白) (空白) (空白) GT-1970-R MBC-240-VT ABC-123 ABC-124 ABC-125 ABC-126 ABC-127 ABC-128 ABC-129 ABC-130 BBK-41956489BL D列 (空白) 99 1 2 3 4 5 6 7 7 7 7 7 7 7 7 7 7 8 E列 (空白) (A) (B) (C) (D) (E) (F) (G) (H) (I) (J) (K) (L) (M) (N) (O) (P) (Q) (R) //////////// |
![]() |
投稿日時: 20/12/10 09:56:20
投稿者: んなっと
|
---|---|
わかりにくいからほとんど説明を読んでいません。
|
![]() |
投稿日時: 20/12/10 13:13:02
投稿者: JIRO-KUN
|
---|---|
Sheet1 メーカ 品名 品番 バナナ 靴 BBK-41956489BL 8 みかん 時計 2412NY-DY-NEW-GP 99 レモン エアコン MSZ2156L メロン テレビ SNY6688 いちご テレビ VR-333-HD りんご テレビ REG-5597-FR ぶどう 車 GT-1970-NEW 99 ぶどう 車 GT-2010-R メロン リモコン MBC-240-VT 7 いちご テレビ VR-555-HD-NEW-WE 99 すいか カメラ ABC-456 すいか 靴 ABC-124 7 NEW 99 メロン テレビ 1 いちご テレビ 2 テレビ 3 靴 4 時計 5 エアコン 6 GT-1970-R 7 MBC-240-VT 7 ABC-123 7 ABC-124 7 ABC-125 7 ABC-126 7 ABC-127 7 ABC-128 7 ABC-129 7 ABC-130 7 BBK-41956489BL 8 んなっと様 回答ありがとうございました。 わかりにくくて申し訳ございませんでした。 今まで表の張り付け方の手順が間違ってました。 Sheet1 の D4〜D7 が空白になってしまいます。 ///// Sheet1 D4 はSheet2 の8行目の品名"エアコン"に該当するので"6" Sheet1 D5 はSheet2 の3行目のメーカーがメロン、品名がテレビに該当するので"1" Sheet1 D6 はSheet2 の4行目のメーカーがいちご、品名がテレビに該当するので"2" Sheet1 D7 はSheet2 の4行目の5行目の品名がテレビに該当するので"3" ///// NEW と 品番についてはうまくできているのですが・・・。 条件が多すぎでしょうか。 |
![]() |
投稿日時: 20/12/10 18:51:44
投稿者: んなっと
|
---|---|
空白セルには、その列の最大文字数(全角換算)と同じ数の「全角スペース」を入れる。 |
![]() |
投稿日時: 20/12/10 19:00:07
投稿者: WinArrow
|
---|---|
Sheet1側からSheet2を検索しなければ条件がわからない
|
![]() |
投稿日時: 20/12/10 19:13:54
投稿者: んなっと
|
---|---|
引用: ↑これはブラウザで表示したときの見栄えについて書いたものです。 内容自体は一般機能で対応できますが、いかんせん状況がわかりにくい。 |
![]() |
投稿日時: 20/12/10 21:37:21
投稿者: JIRO-KUN
|
---|---|
関数を言葉にすると、
|
![]() |
投稿日時: 20/12/10 21:41:15
投稿者: んなっと
|
---|---|
はい、どうやらこちらの解釈であっていたみたいです。
|
![]() |
投稿日時: 20/12/10 22:46:17
投稿者: JIRO-KUN
|
---|---|
【Sheet1】 A列 B列 C列 D列 1行目 メーカー 品名 品番 2行目 バナナ 靴 BBK-41956489BL 8 3行目 みかん 時計 2412NY-DY-NEW-GP 99 4行目 レモン エアコン MSZ2156L 5行目 メロン テレビ SNY6688 6行目 いちご テレビ VR-333-HD 7行目 りんご テレビ REG-5597-FR 8行目 ぶどう 車 GT-1970-NEW 99 9行目 ぶどう 車 GT-2010-R 10行目 メロン リモコン MBC-240-VT 7 11行目 いちご テレビ VR-555-HD-NEW-WE 99 12行目 すいか カメラ ABC-456 13行目 すいか 鞄 ABC-124 7 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 【Sheet1】 A列 B列 C列 D列 E列 F列 G列 H列 1行目 メーカー 品名 品番 2行目 バナナ 靴 バナナ靴 BBK-41956489BL 8 8 3行目 みかん 時計 みかん時計 2412NY-DY-NEW-GP 99 99 4行目 レモン エアコン レモンエアコン MSZ2156L 6 6 5行目 メロン テレビ メロンテレビ SNY6688 1 1 6行目 いちご テレビ いちごテレビ VR-333-HD 2 2 7行目 りんご テレビ りんごテレビ REG-5597-FR 3 3 8行目 ぶどう 車 ぶどう車 GT-1970-NEW 99 99 9行目 ぶどう 車 ぶどう車 GT-2010-R 10行目 メロン リモコン メロンリモコン MBC-240-VT 7 7 11行目 いちご テレビ いちごテレビ VR-555-HD-NEW-WE 99 99 12行目 すいか カメラ すいかカメラ ABC-456 13行目 すいか 鞄 すいか鞄 ABC-124 7 7 【Sheet2】 A列 B列 C列 D列 E列 1行目 メーカー 品名 品番 2行目 NEW 99 3行目 メロン テレビ メロンテレビ 1 4行目 いちご テレビ いちごテレビ 2 5行目 テレビ テレビ 3 6行目 靴 靴 4 7行目 時計 時計 5 8行目 エアコン エアコン 6 9行目 GT-1970-R 7 10行目 MBC-240-VT 7 11行目 ABC-123 7 12行目 ABC-124 7 13行目 ABC-125 7 14行目 ABC-126 7 15行目 ABC-127 7 16行目 ABC-128 7 17行目 ABC-129 7 18行目 ABC-130 7 19行目 BBK-41956489BL 8 Sheet1とSheet2の両方のSheetのB列とC列の間に1列、列を挿入し(C列)、 どちらものSheetのC2に =A:A&B:B 下方向・↓ Sheet1の D列からE列に移動したE列の空白を埋めるために、 F列に新しく関数を追加、 その関数が分からないのですが、 「 =もしE2が空白ならSheet1のC2に合った文字がSheet2のC列にあればその行のE列の値を返す。合ったものが無ければ空白。」 (これはメーカと品名の一致の検索) 次に Sheet1のG列に 「 =E2とF2が空白ならB2の品名をSheet2の品名(C列のほう)に合っていればその値を返す。合ったものが無ければ空白。」 (これは品名の一致の検索) そしてH2に =E:E&F:F&G:G 下方向・↓ こんな方法はどうでしょうか? 作業列が多くて変でしょうか? あと、F2とG2に入れる関数を教えて欲しいです。 |
![]() |
投稿日時: 20/12/10 22:51:26
投稿者: んなっと
|
---|---|
もう回答しましたよ?試しましたか? |
![]() |
投稿日時: 20/12/10 23:09:50
投稿者: JIRO-KUN
|
---|---|
→空白セルには、その列の最大文字数(全角換算)と同じ数の「全角スペース」を入れる。
|
![]() |
投稿日時: 20/12/10 23:56:51
投稿者: んなっと
|
---|---|
空白セルには、その列の最大文字数(全角換算)と同じ数の「全角スペース」を入れる
|
![]() |
投稿日時: 20/12/11 00:16:46
投稿者: JIRO-KUN
|
---|---|
Sheet1のD2 に、
|
![]() |
投稿日時: 20/12/11 01:25:33
投稿者: JIRO-KUN
|
---|---|
|
![]() |
投稿日時: 20/12/11 09:46:36
投稿者: んなっと
|
---|---|
●Sheet2
|
![]() |
投稿日時: 20/12/11 12:26:19
投稿者: JIRO-KUN
|
---|---|
んなっと 様
|