[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列抽出 複数の候補がある場合』(ぽぽぽん)
A列に商品名が入力されており、そこからメーカー名だけを抽出したいです。
商品名には規則性がなく、メーカー名が入っている位置もバラバラです。
抽出したいメーカー名なのですが、候補が50社ほどあり、ネストして関数に落とし込むのは難しいそうなので、配列関数などでなんとかできないかと思っております。
可能であればご教授お願いいたします。
以下イメージです。
A列
A社 パンケーキ 100g 送料無料
チョコレートケーキ 2人前 B社 割引
…
…
上のA列の商品名から、それぞれA社、B社の文字列だけだしたい。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
>メーカー名が入っている位置もバラバラです。 メーカー名に必ず「社」が入っているとか、メーカー名の一覧表が有るのなら 出来るかも知れませんが そうでない場合、パンケーキが商品名か?メーカー名か?はExcelは判定出来ません その辺はどうするの? (どん) 2021/11/22(月) 06:02
〇〇社とは全部には入ってないです。
メーカー名一覧表ならあります。それに該当すれば商品名からメーカー名を取り出せないかなと思っているのですがどうでしょうか。
(ぽぽぽん) 2021/11/22(月) 10:39
例えばE1セルからE500セルまでに社名一覧があるとして。 B1セルに =IFERROR(INDEX(E:E,AGGREGATE(15,6,ROW($1:$500)/(MATCH("*"&E$1:E$500&"*",A1,0)*(E$1:E$500<>"")),1)),"") と入力して社へフィルコピーではどうだろうか? (ねむねむ) 2021/11/22(月) 10:50
=TRIM(MID(REPT(" ",50)&SUBSTITUTE(A1," ",REPT(" ",50)),FIND("社",REPT(" ",50)&SUBSTITUTE(A1," ",REPT(" ",50)))-49,50))
元の文字列が長くても40文字そこそことした式です。
上の回答は
>メーカー名一覧表ならあります。
を読む前に書き込んだ内容です。
メーカー名一覧表があるなら
=IFERROR(INDEX(社名,AGGREGATE(15,6,MATCH("*"&社名&"*",A1,0)*ROW($A$1:$A$30),1)),"")
式中の「社名」はメーカー名一覧表の範囲に付けた範囲名です。
式中の「ROW($A$1:$A$30)」はメーカー名一覧表が30行あると
仮定した場合です。
ねむねむさんのご回答とかぶったような内容ですが、書き込んだので
送信します。
(メジロ) 2021/11/22(月) 11:04
すまない。 50社を500社と見間違えていた。 式中の$500をすべて$50としてくれ。 (ねむねむ) 2021/11/22(月) 11:09
E1:E50に社名を入力 元の文字列がA1セルからだとして
B1 =IFERROR(LOOKUP(1,0/FIND($E$1:$E$50,A1),$E$1:$E$50),"") 下コピー
$E$1:$E$50 の範囲には空白セルを含めないように! 実際は49社しかないんだったら $E$1:$E$49、51社あるんだったら $E$1:$E$51 のように きっちりとデータ数に合わせること。
■ただし・・・ どんな社名があるのか知りませんけど 例えば「ソニー製菓」と「アンソニー製菓」というメーカーがある場合 ※ソニー製菓はアンソニー製菓という社名の一部 E列の並び順によっては、アンソニー製菓なのにソニー製菓と表示される可能性があります。
以上 (笑) 2021/11/22(月) 11:17
皆様ご返信ありがとうございます!
ご教授くださった内容で抽出することができました。
ありがとうございます!
本題とは逸れてしまうのですが皆様はどうやってExcelの勉強をされたのでしょうか?
市販のものだとMOS Excel程度のレベルの内容の本しかみたことがなく、
今回のように組み合わせるのは本からだとなかなか知識が得られず勉強に困っています。
(勘のいい方でしたら本の内容で組み合わせできると思うのですが、なかなかそこまで
思いつけるレベルではありません…)
どうやって勉強されたのか教えていただけたら幸いです。
(ぽぽぽん) 2021/11/22(月) 15:33
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.