- ベストアンサー
2つの列を照合させてあいまい検索をしたいのですが
A列とB列にあるデータを照合させて、A列のデータにB列の一部が含まれる場合にC列に印をつけるようにしたいのですが、どうすればいいですか? A列には会社組織名称が入っていますが、入力されている内容が前(株)、後(株)の企業が混合しており、(株)と組織名称の間にスペースが入っていたり入っていなかったりと入力規則もバラバラです。そのうえ、組織名称が(株)○○本社や○○(株)××工場などとなっているものもあります。 B列には(株)等の商号なしの企業名が入っています。(例:○○) A列のデータがB列にあるものかどうかを調べたいのですが、どんな関数を使えばいいのでしょうか? Vlookupだと、このようなあいまい検索はできませんよね? いくつかのステップを踏んでもOKです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
次の方法は如何でしょうか。 C1セルに=IF(COUNTIF(A:A,"*"&B1&"*")>0,"○","")を設定し、下方向にコピーして下さい。
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
no3です。 初回のご回答補足で「反対」とのご指摘を勘違いしておりました、お詫びします。 私案では、A列に対応したC列に照合結果を表示する事はできません。 仮にA列の名称の○○部分を特定できるルールがあれば可能か知れませんが、バリエーションが多いと思いますのでVBAを利用する方法で再質問をして頂いた方が早期解決かと思います。
お礼
いえいえ、ご親切にありがとうございました。 私もいろいろと考えた結果、最初に教えていただいた関数を使って照合させて、C列に○がついたものを再度A列で検索していくことにしました。 おっしゃるとおり、関数で解決する問題ではないのかもしれません。 ありがとうございました!
- maron--5
- ベストアンサー率36% (321/877)
◆これで、いかがでしょうか? C1=IF(B1="","",IF(COUNTIF(A:A,"*"&B1&"*")>0,"○","")) ◆それ以外にも、こんな方法もありますよ C1=IF(B1="","",IF(COUNT(INDEX(FIND(B1,$A$1:$A$5),)),"○","")) >Vlookupだと、このようなあいまい検索はできませんよね? C1=IF(B1="","",IF(ISNA(VLOOKUP("*"&B1&"*",$A$1:$A$7,1,0)),"","○")) ★下にコピー
お礼
ありがとうございます。 御礼が遅くなってすみません。 やはり希望通りにはいかないようです。 でも、Vlookupであいまい検索ができることがわかっただけでありがたいです!
- mu2011
- ベストアンサー率38% (1910/4994)
no1です。 C1セルに=IF(COUNTIF(B:B,"*"&A1&"*")>0,"○","")を設定し、下方向にコピーして下さい。
お礼
たびたびすみません。 今度はまったく○がつかなくなりました。 Aが空白セルだとC列に○がついています。
- 001die
- ベストアンサー率38% (23/59)
あまり自信は無いですが、【IF】を使って文字列を参照させて C列に表示させるしか、無いかと思います。 私も同じ様な事があって、この方法で回避しました。 他にも、やり方はあるのかもしれませんが・・・ Excelは基本的に入力規則が決まっているのが前提らしいので、 最初に決めておくのがよいのでしょうね。
お礼
ありがとうございます。 おっしゃるとおり、最初から入力規則を決めておけばいいのですが、 今回はもともとあるデータが元になっているため、どうしようもありません。。。
お礼
どうもありがとうございます!こうやってあいまい検索の式を表せるのか!と感動しました!! で、やってみたのですが、どうやら反対みたいなのです。 A列のデータがB列にある場合、A列のデータ存在に対してC列に○をつけたいのです。(説明が下手ですみません。分かりますか?) ちなみに、A列には1~2393行までデータが入っていて、B列には1~1596までしかデータが入っていません。 アドバイス、お願いします!