![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルについて質問です。
原本のリストから抽出したいのですが、文字列が完全一致していないので
抽出できません。前方一致で抽出する場合どうしたらよいか
教えて下さい。
A B C
ロキソニン10mg ロキソニン
カルデナリン1mg アムロジン2.5
アムロジン2.5mg
カロナール200mg
A列に原本のリストがあって、B列に抽出したい文字列があります。
A列とB列の文字列が完全には一致していないので抽出できません、
B列と同じ文字列がA列にある場合、A列の文字列をC列に返したいのですが
どのような関数を使ったらよいでしょうか?
教えて下さい。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
フィルタオプションは如何でしょうか?
2007での操作ですが、
まず、A列頭に見出しを入れる(薬品名とか)。B列頭にも同じ見出しをいれ、抽出したい薬品名を入力する。
A列の表内のセルを選択して、データ→フィルタの横の詳細設定をクリック→
抽出先:指定した範囲
リスト範囲:A列の表の範囲
検索条件範囲:B列の範囲
抽出範囲:C1をクリック
としてOK。
(フィルタオプションは検索条件に=を入れない場合、前方一致で検索するので)
No.6
- 回答日時:
別解です。
添付図参照
セル B2 に次の[条件付き書式]を設定
数式が =ISERROR(B2)
フォント色 白
セル B2 に次の配列数式を入力して、此れを右および下方にズズーッとドラッグ&ペースト
{=INDEX($A$1:$A$6,SMALL(IF(LEN($A$1:$A$6)-LEN(SUBSTITUTE($A$1:$A$6,B$1,"")),ROW(A$1:A$6),""),ROW(A1)))}
![「エクセル:文字列の前方一致の抽出方法」の回答画像6](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/c/298588_5497eaa51ec52/M.jpg)
No.4
- 回答日時:
こんにちは!
前方一致ではなく、検索文字が含まれていたら!になりますが・・・
一例です。
↓の画像の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
![「エクセル:文字列の前方一致の抽出方法」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/667667_5497eaa4d2d3e/M.jpg)
時間がなかったのでAから6文字抽出、Bから6文字抽出して
同じならAを変えすという式でやりました。
あとでみなさんの方法を試してみたいと思います。
どうもありがとうございました。
No.2
- 回答日時:
作業としては
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を変えすという式でやりました。
あとでみなさんの方法を試してみたいと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について教えて...
-
Excelカスタム関数(アドイン登...
-
Excelデータをコピペして、ペー...
-
Excel関数-文字列で自動作成さ...
-
スプレッドシート、Excelでの数...
-
Excelで50個のセルに同じ文字を...
-
Microsoft Officeの中古は信用...
-
スプレッドシートで使う数式を...
-
エクセルVBA、別ブックへ転記す...
-
エクセルで会社の従業員のデー...
-
エクセルで不等号記号(≠)が上に...
-
エクセルの表で1年間の曜日を...
-
A列とB列を参照してC列に連番を...
-
エクセルの空欄をつめて、次の...
-
エクセルでの特別な文字を上に...
-
エクセルでセルに標準で入力さ...
-
エクセル日付 文字列の関数がエ...
-
エクセル2013で月間勤務表から...
-
エクセルの日付を編集する
-
EXCELの質問です 119から足した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報