Excel 公式查找匹配,查找值的部分字符串在查找区域中有,标记查找列?

如查找列为姓名列,王小二、诸葛晴天,西下吹风等;查照区域为姓氏列,任、王、诸葛、西门。要求,当查找值(王小二、诸葛晴天)的部分字符出现在查找区域中(王、诸葛),查找值(王... 如查找列为 姓名列,王小二、 诸葛晴天,西下吹风等;查照区域为姓氏列,任、王、诸葛、西门。要求,当查找值(王小二、诸葛晴天)的部分字符出现在查找区域中(王、诸葛),查找值(王小二、诸葛晴天)进行标记,可后面单元格为1;查找值(西下吹风)无部分字符串出现在查找区域(西下不是西门),不标记。如何实现 展开
 我来答
侍君一夕
2022-08-05 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:100%
帮助的人:9.7万
展开全部

设姓名列为a列,姓氏列为C列,姓氏列在末尾加一个*

在B2输入公式下拉填充即可,

=IFERROR(LOOKUP(9^9,MATCH($C$2:$C$11,A2,0)),0)

如果数据比较多,记得更改数据区域。不会的话可以直接使用这个公式(比较吃性能)

=IFERROR(LOOKUP(9^9,MATCH($C:$C,A2,0)),0)

编写不易,如有疑问请追问,如有帮助请采纳,谢谢

追问
1、解释一下这个公式的原理;

2、MATCH($C$2:$C$11,A2,0)应该是查找 A2在$C$2:$C$11内的位置,若A2(王小二)在数组里能识别(王*),返回的也应该是2,而不是数组吧;3、若若A2(王小二)在数组里能识别(王*),为啥不适合使用countif函数公式呢countif($C$2:$C$11,A2,0)
追答

先解释第二项再解释原理吧。

2、MATCH($C$2:$C$11,A2,0)是查找在$C$2:$C$11在A2的位置,返回一串数组

MATCH(A2,$C$2:$C$11,0)才是查找 A2在$C$2:$C$11内的位置,返回一个错误值

再通过LOOKUP(9^9,数组),忽略错误值查找比9^9小的最大值,也就是查找到1,返回1,查找不到返回#N/A

1、原理是上面基本解释清楚了,主要是根据通配符的用法,只能用王*来查找到王小二,而不能反过来,所以用这种方法先计算出一串数组,再用lookup取数组中的一个,最后加上纠错函数,countif返回的是单个结果而不是一串数组,所以这种思路不适合countif

注:不过你倒是提醒我用另外一个思路,countif好像也是支持通配符的,利用这个性质的话,那么公式可以改成

=SUM(COUNTIF(A2,$C$2:$C$11))

更加清晰简洁,可读性高

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式