■複数の特定文字列に優先順位をつけて該当するセルを抽出する方法教えて下さい!
。。。頭が追い付かず無駄に時間だけが過ぎてしまいます><
【資料】
①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はなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
添付画像②
皆様、ご連絡本当にありがとうございます!
ご連絡いただいた内容からでこういう事なら出来そうなのでしょうか?
前提条件も入れて補足してみました。
1,⑤→変更修正不可「:」が邪魔ですよね・・・・
→CSV入力コード形式になるのでこの形で該当するセルを抽出が理想><
2,優先順位を以下の様に考えて作る?
→①②③の複合条件で抽出
→②③の複合条件で抽出(これで大体該当すると思われるのですが)
→①条件で抽出(複数拾われるからエラーになるので不必要ですね)
の順番で⑤のリストから抽出する。
この内容でリストから抽出したいのですが・・・・・出来ますでしょうか?