- 締切済み
エクセル:文字列の前方一致の抽出方法
エクセルについて質問です。 原本のリストから抽出したいのですが、文字列が完全一致していないので 抽出できません。前方一致で抽出する場合どうしたらよいか 教えて下さい。 A B C ロキソニン10mg ロキソニン カルデナリン1mg アムロジン2.5 アムロジン2.5mg カロナール200mg A列に原本のリストがあって、B列に抽出したい文字列があります。 A列とB列の文字列が完全には一致していないので抽出できません、 B列と同じ文字列がA列にある場合、A列の文字列をC列に返したいのですが どのような関数を使ったらよいでしょうか? 教えて下さい。
- nari1231
- お礼率71% (5/7)
- オフィス系ソフト
- 回答数7
- ありがとう数5
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- chonami
- ベストアンサー率43% (448/1036)
フィルタオプションは如何でしょうか? 2007での操作ですが、 まず、A列頭に見出しを入れる(薬品名とか)。B列頭にも同じ見出しをいれ、抽出したい薬品名を入力する。 A列の表内のセルを選択して、データ→フィルタの横の詳細設定をクリック→ 抽出先:指定した範囲 リスト範囲:A列の表の範囲 検索条件範囲:B列の範囲 抽出範囲:C1をクリック としてOK。 (フィルタオプションは検索条件に=を入れない場合、前方一致で検索するので)
》 A列とB列の文字列が完全には一致していないので抽出できません それでは、A列とB列の文字列が完全に一致している場合は、貴方はどうやって抽出しますか? 出来るだけそれと似た手法を考えてみたいのでお尋ねしています。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 前方一致ではなく、検索文字が含まれていたら!になりますが・・・ 一例です。 ↓の画像のD列に検索文字列を表示しておきます。 今後検索文字列が増えても対応できるようにまず使用することはないであろう「*」アスタリクスを 入れて空白セルを範囲指定しないようにします。 画像のようにB列を作業用の列として、結果をF列に表示するようにしてみました。 作業列のB2セルに =IF(OR(ISNUMBER(FIND(D$2:D$6,A2))),ROW(),"") これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグで範囲指定 → 右クリック → コピー → B2セルを選択 → 数式バー内で一度クリック → 貼り付け → そのまま(編集可能のまま) Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このB2をオートフィルでずぃ~~~!っと下へコピーしておきます。 結果のF2セルは =IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1)))) (配列数式ではありません) としてオートフィルでコピー! これで画像のような感じになります。 ※ 今後検索データが増える場合はアスタリクスの部分に検索文字列を入力すれば 結果に反映されます。 参考になりますかね?m(_ _)m
お礼
時間がなかったのでAから6文字抽出、Bから6文字抽出して 同じならAを変えすという式でやりました。 あとでみなさんの方法を試してみたいと思います。 どうもありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
C1セルには次の式を入力して下方にドラッグコピーします。 =IF(SUM(COUNTIF(A1,B$1&"*"),COUNTIF(A1,B$2&"*")),A1,"")
お礼
時間がなかったのでAから6文字抽出、Bから6文字抽出して 同じならAを変えすという式でやりました。 あとでみなさんの方法を試してみたいと思います。 どうもありがとうございました。
- ohkinokomushi
- ベストアンサー率40% (6/15)
作業としては 1. セルC1に以下の数式を入力 =IF(B1="","",VLOOKUP(B1&"*",$A:$A,1,0)) ↑「B1&"*"」が前方一致を表します。 2. セルD1に以下の数式 =IF(B1="",0,COUNTIF($A:$A,B1&"*")) ↑VLOOKUPは見つけた1つ目を表示するので、複数一致のチェックは しておいた方がよさそうです。検索条件に合ったセルの個数が 表示されます。 3. C列、D列を下へコピー 4. D列を見て重複したものについて個別確認 絶対に複数一致がないのなら1だけでOKです。
お礼
時間がなかったのでAから6文字抽出、Bから6文字抽出して 同じならAを変えすという式でやりました。 あとでみなさんの方法を試してみたいと思います。 どうもありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =VLOOKUP("*"&B1&"*",A:A,1,FALSE)
お礼
時間がなかったのでAから6文字抽出、Bから6文字抽出して 同じならAを変えすという式でやりました。 あとでみなさんの方法を試してみたいと思います。 どうもありがとうございました。
関連するQ&A
- EXCELで一致する文字列を抽出する方法
EXCELに関する質問です。 ファイル1に売上デ-タがあります。 A B C D 1 商品名 品番 単価 個数 2 あ A1 100 3 3 い A2 110 10 4 う A3 120 5 5 は A4 130 3 6 ひ A5 140 7 7 ふ A6 150 11 8 へ A7 160 6 9 ほ A8 170 3 ファイル2に特定の商品名のリストがあります。 A B C 1 商品名 2 い 3 ろ 4 は 5 に 6 ほ 7 へ 8 と 9 ち 10 り 11 ぬ ファイル1のSHEET2に A B C D 1 商品名 品番 単価 個数 2 い A2 110 10 3 は A4 130 3 4 へ A7 160 6 5 ほ A8 170 3 の様に抽出する方法ですが、商品名が単純な文字列のときは フィルタ-の詳細設定で出来ますが、 商品名が [8/1発売] 20%OFF い A2 の様なキャッチコピ-付の文字列の場合、抽出することが出来ません。 (ファイル1・2共にキャッチコピ-付の商品名です。) この場合でも抽出できる方法をご教授いただけないでしょうか? 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルで前方一致のVlookupはできませんか
* すぐに回答を! エクセルで前方一致のVlookupのような関数はないでしょうか。 具体的には、A列とB列にデータがあり、A列のデータの文頭部分の文字列が B列のデータのどれかと一致した場合に、C列に一致したB列のデータを返したいです。 データの行数が非常に多い(3,4万行)であるため、できるだけ動作の軽い 関数であればなお助かります。 A B C zzzfewfe dadaf zzzf dadaf3233 a11111k dadaf aabbbb-fefe3 zzzf aabbbb a11111k33r3 aabbbb a11111k 宜しく御願い致します。
- 締切済み
- オフィス系ソフト
- Excelで文字列の中から部分一致したものを抽出
エクセルで特定の文字を含むセルを抽出する方法を探しています。 A列に元データ、C列に検索条件があります。 C列の条件に一部でも一致するデータを抽出したいです。(結果イメージを添付します) 可能であれば、関数で対応したいです。 どなたかお分かりになる方いらっしゃいましたら、 教えていただけないでしょうか? よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- エクセルで文字列の最大値を抽出する方法
文字列の最大値を抽出したいのですが 4つのセルにA、B、C、Dが入力されている場合の文字列の最大値Dを抽出する関数式を知りたい エクセルヘルプで見るとMAXAとなっていたのですが抽出する答えは”0”となってしまいます。
- 締切済み
- オフィス系ソフト
- エクセルで、異なる文字列を抽出するには。
エクセルで、A1からA10に文字列のデータがあるとします。 10個のセルのデータは「あああ」が4こ「いいい」が3こ「ううう」が2こ「えええ」が1こ順不同であった場合、B1に「あああ」B2に「いいい」B3に「ううう」B4に「えええ」と異なる文字列のみ1個ずつ抽出するにはどうすればいいでしょうか。
- ベストアンサー
- オフィス系ソフト
- スペースを含んだ文字列から文字列の抽出
エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルtA列とB列が完全一致を抽出する方法
勉強不足で申し訳ありませんが、急ぎで作成しなければならず、 どなたかご教示いただけますでしょうか。 お力を貸して下さい。 A列とB列が完全に一致するもの(この場合は東京病院 内科)だけにC列に マークをつけたいのです。 または完全に一致するものがわかるような抽出方法があればご教示下さい。 A B C 東京病院 呼吸器科 東京病院 内科 ● 神奈川病院 内科 東京病院 内科 ● 東京病院 外科 静岡病院 外科 ・ ・ ・ ・ ・ ・ どうぞ宜しくお願い致します。
- ベストアンサー
- Windows 7
- Excel 文字列の抽出
Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル リスト 一致文字列セル抽出
エクセルでランダムにあるリストの中から 末尾が一致する文字列のセルだけ抽出することは出来ますか 例えば、下記のよなリストの場合「~丼」だけ抽出することは出来ますか 焼肉定食 餃子 イクラ丼 すき焼き スパゲッティー ピザ うな丼 親子丼 ハンバーグ シューマイ 玉子丼 お願い致します。
- ベストアンサー
- Excel(エクセル)
- 文字列の抽出について
A列に 500行位の文字列があり、 その行の中から以下を抽出したいです。 ただ、抽出したい文字列は、0123456で始まり、abcdという文字列まで。 しかも改行されています。 ※抽出したい文字列 【A列 0123456 ~ B列 abcd】という文字列 【F列 0123456 ~ B列 abcd】という文字列 A列 0123456 B列 xxxx abcd C列 1111 D列 2222 E列 3333 F列 0123456 G列 xxxx abcd H列 4444 I列 5555 J列 6666 宜しくお願い致します。
- 締切済み
- その他([技術者向] コンピューター)
お礼
時間がなかったのでAから6文字抽出、Bから6文字抽出して 同じならAを変えすという式でやりました。 あとでみなさんの方法を試してみたいと思います。 どうもありがとうございました。 文字列が一致しているならvlookup(B,範囲指定、1、0)でやります。