■複数の特定文字列に優先順位をつけて該当するセルを抽出する方法教えて下さい!
。。。頭が追い付かず無駄に時間だけが過ぎてしまいます><
【資料】
①sheet1(添付画像①) ②seet2(添付画像②)
【概要】
【添付画像①】の①②③の優先順位で【添付画像②】のリストから④に抽出したいのですが、INDEXやMATCHを使ってもうまくいきません><
【補足】
⑤のリストは①②③のおおよその複合リストです。行いたい事は【添付画像①】①②③の順位での複合条件で⑤から④に抽出したいのですが頭が追い付きません><
⑤リストは【添付画像①】の③②①の順番でおおよその順位がついている感じです。
関数でもマクロでも出来る方法を教えて下さい!具体的なシート名や補足事項が必要な場合など
お手数ですがご連絡頂ければ補足させていただきますのでお力お借りさせて下さい!
No.4ベストアンサー
- 回答日時:
№3です。
以下、配列数式{}を使っています。{=IF(OR(B1="",ISERROR(MATCH(("*"&B1&"*"),Sheet2!$A$1:$A$100,0))),"", INDEX(Sheet2!$A$1:$A$100,
IF(ISERROR(MATCH(("*"&D1&"*")&("*"&C1&"*")&("*"&B1&"*"),Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100,0)),
IF(ISERROR(MATCH( ("*"&C1&"*")&("*"&B1&"*"), Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100,0)),
IF(ISERROR(MATCH( ("*"&B1&"*"), Sheet2!$A$1:$A$100,0)),
"unmatch",
MATCH( ("*"&B1&"*"), Sheet2!$A$1:$A$100,0)),
MATCH( ("*"&C1&"*")&("*"&B1&"*"), Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100,0)),
MATCH(("*"&D1&"*")&("*"&C1&"*")&("*"&B1&"*"),Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100&Sheet2!$A$1:$A$100,0))))}
1行目、B列が空欄か部分一致すらしない場合は空欄にします。
3行目DCB列が部分一致したら下から2行目でそのシート2のA列を表示します。
5行目CB列が部分一致したら下から4行目そのシート2のA列を表示します。77行目B列が部分一致したら10行目そのシート2のA列を表示します。
BCD列に何が入るかわからない(デタラメ)という前提で部分一致の判断としました。こういうことは仕様で決まっていると思います。
№2さんのように、正しいデータしか入ってこないという前提で作ればもう少し簡単かもしれません。
部分一致は"*"&D1&"*"などで判定してますが、D1が空欄だと必ず一致します。この辺、人間的判断とは少しずれているかもしれません。
なお上コードは見やすさのためスペースで位置合わせしてますが、コードとしては意味ありません。詰めても大丈夫です。
お忙しい中、書き込みをしていただき本当にありがとうございます!
皆様から教え頂いた通り元データの変更と教えて頂いた配列数式とワイルドカードなど使い何とか検索に該当できる様になりました、本当にありがとうございます!データをもう少し正確に出来れば簡単なんですよね><
No.3
- 回答日時:
説明が抽象的でやりたいことがわかりません。
(1)「優先順位をつけて該当するセルを抽出する」という点についても、№1の方が言うように、最優先の①から探して、あったら終了なのか、②にいくのか、なかったら②にいくのか。
例えば「レディースファッション」というものが表示されるのは①=空欄、②=空欄、③=レディースファッションなのか、
①=該当なし、②=該当なし、③=レディースファッションなのか
「キャミソール」はトップスにもインナーにもありますが、①で複数ある場合は全て候補として②に進み、絞り込みを掛けるんでしょうか。
(2)添付②に「レディース」がないのが気になりますが、これはあくまでサンプルなので、本物にはあるということでしょうか。
(3)①②③の順で探索していくということは、①は小分類で②は中分類で③は大分類であることが保証されているのでしょうか。
(4)完全一致なのか部分一致でよいのか(カットソーTシャツとTシャツは「*」で部分一致の判定はできる、Tシャツとティーシャツの判断は難しいです。双方部分だと1文字でも一致すればいいので候補が多数になる)
添付②のシートは、探索対象であれば、「:」でつなげないで、添付①のシートのように、列ごとに大分類・中分類・小分類と分けた方がいいです。
そのうえで、
A①と小分類が一致したら・・・・、
B②と中分類が一致したら・・・・、
C③と大分類が一致したら・・・・、
各一致項目を「:」でつないで表示するのはあまり難しくないでしょう。
こうすることにより、INDEX、MATCHでもvlookupでも探索することができるでしょう。
もう少し具体的にお願いします。
お忙しい中、書き込みをしていただき本当にありがとうございます!
教え頂いた通り元データの変更から行い何とか検索に該当できる様になりました、本当にありがとうございます!
No.2
- 回答日時:
Sheet2の表を修正することを薦めます。
コロン(:)を区切り文字として「区切り位置」でセルを分けて使いましょう。
これ、実は基本中の基本です。
正しくデータを作ることが重要という事です。
ぐちゃぐちゃのデータを加工しながら何かしようとすると手順が多くなり、訳が分からなくなります。
・・・
つーか、1~3の情報を基に文字列を作れば良いだけのような気がします。
その作った文字列がSheet2にあるのかを確認すれば済むんじゃないかな。
一致するものが無ければエラーを表示させればいい。
「該当するカテゴリはありません!」
とかね。
……ダメ?
B1&"ファッション:"&C1&":"&D1
この文字列がSheet2にあるかを確認して、
存在すれば、
B1&"ファッション"
存在しなければ、
つぎに1のセルの値を除いた
B1&"ファッション:"&C1
存在すれば、
B1&"ファッション"
存在しなければ、
"該当するカテゴリはありません"
を返すようにするだけ。
チョイト面倒ですが、難しくはありませんよね。
お忙しい中、書き込みをしていただき本当にありがとうございます!
教え頂いた通り元データの変更から行い何とか検索に該当できる様になりました、本当にありがとうございます!
No.1
- 回答日時:
例示されている画像では、抽出すべき④がすべて「レディースファッション」になっているので、いまいち何を目指しているのか分かりにくいですね・・・。
(1-1) ⑤の中から①の「キャミソール」を含むデータを探す。
(1-2) (1-1)で複数のデータがあったら、そのうち、②の「トップス」を含むデータを探す。
(1-3) (1-2)で複数のデータがあったら、そのうち、③の「レディース」を含むデータを探す。
(2-1) ⑤の中から①の「キャミソール」を含むデータを探す。
(2-2) (2-1)で合致するデータが無かったら、⑤の中から②の「トップス」を含むデータを探す。
(2-3) (2-2)で合致するデータが無かったら、⑤の中から③の「レディース」を含むデータを探す。
各々、合致するデータが1件だけならそれを採用。
また、①は無くて②があったら、(2-1)(2-2)(1-3)となる。
そして、探し出したデータの、左から「:」までの文字列を取得する。
・・・ということでしょうか?
お忙しい中、書き込みをしていただき本当にありがとうございます!
教え頂いた通り元データの変更から行い何とか検索に該当できる様になりました、本当にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) Excelのリストにある文字を含むセルを、複数の色で色付けしたいです 2 2022/08/11 17:39
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Excel(エクセル) エクセルの関数について 5 2023/01/26 15:26
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- Excel(エクセル) 条件付き書式 別のシートで色付けされたセルデータの転記漏れを防ぐ書式を入れたい 4 2022/04/22 06:36
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
添付画像②
皆様、ご連絡本当にありがとうございます!
ご連絡いただいた内容からでこういう事なら出来そうなのでしょうか?
前提条件も入れて補足してみました。
1,⑤→変更修正不可「:」が邪魔ですよね・・・・
→CSV入力コード形式になるのでこの形で該当するセルを抽出が理想><
2,優先順位を以下の様に考えて作る?
→①②③の複合条件で抽出
→②③の複合条件で抽出(これで大体該当すると思われるのですが)
→①条件で抽出(複数拾われるからエラーになるので不必要ですね)
の順番で⑤のリストから抽出する。
この内容でリストから抽出したいのですが・・・・・出来ますでしょうか?