• 締切済み

エクセル(Excel)の部分一致検索[COUNTIFでは無理かな?]

A列の文字列(データベース)が、B列の個々に一致または部分一致するかをC列に表示させたいと思っています。 COUNTIF($A$1:$A$8,B1) だと、近藤さんと麻生さんは部分一致になりません。 COUNTIF($A$1:$A$8,"*"&B1&"*") だと、近藤さんと麻生さんは逆の不一致となってしまい、佐藤さんは部分一致になってしまいます。 COUNTIF("*"&$A$1&"*":"*"&$A$8&"*",B1) こんな感じが理想なのですが、文法的にはエラーになります。 何か得策は、ありますでしょうか? よろしくお願い致します。   AAAA  BBBB  CCCC  1鈴木一朗 近藤真彦 True 2田中角栄 野村克也 False  3野茂英雄 伊藤     True 4佐藤浩一 鈴木一朗 True 5伊藤     麻生太郎 True 6小林     佐藤     False 7近藤 8麻生

みんなの回答

回答No.1

=SUMPRODUCT(NOT(ISERROR(FIND($A$1:$A$8,B1)))*1) FIND関数 使う関数を変えてみる。

anshiko
質問者

補足

ご回答、ありがとうございました。 動作の方は完璧でした。 この辺、どうしても理解したいと思い、関数を分解してみたのですが、イマイチ分かりませんでした。 例えば、C1ですと、 =SUMPRODUCT(NOT(ISERROR(FIND($A$1:$A$8,B1)))*1) :1 =NOT(ISERROR(FIND($A$1:$A$8,B1))) :FALSE =ISERROR(FIND($A$1:$A$8,B1)) :TRUE =FIND($A$1:$A$8,B1) :#VALUE! となりますが、C2も =SUMPRODUCT(NOT(ISERROR(FIND($A$1:$A$8,B1)))*1) :0 =NOT(ISERROR(FIND($A$1:$A$8,B1))) :FALSE =ISERROR(FIND($A$1:$A$8,B1)) :TRUE =FIND($A$1:$A$8,B1) :#VALUE! と、 NOTの値は同じなのに、SUMPRODUCTの値が違うのは何故でしょうか? FIND関数もいろいろ検索したのですが、どれも文字("文字")ばかりで、範囲指定による方法は見つかりませんでした。 今一度、アドバイスいただけると嬉しいです。

関連するQ&A