- 締切済み
エクセル(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麻生
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
=SUMPRODUCT(NOT(ISERROR(FIND($A$1:$A$8,B1)))*1) FIND関数 使う関数を変えてみる。
補足
ご回答、ありがとうございました。 動作の方は完璧でした。 この辺、どうしても理解したいと思い、関数を分解してみたのですが、イマイチ分かりませんでした。 例えば、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関数もいろいろ検索したのですが、どれも文字("文字")ばかりで、範囲指定による方法は見つかりませんでした。 今一度、アドバイスいただけると嬉しいです。