在excel里,逐个比对B列单元格内的文本,是否包含于A列的单元格
如图,A列是姓名+案件,C列是姓名,如果C列中的人有案底,请将其姓名显示在F列。请大神们帮忙啊~~~~...
如图,A列是姓名+案件,C列是姓名,如果C列中的人有案底,请将其姓名显示在F列。请大神们帮忙啊~~~~
展开
展开全部
F1数组公式,输入完成后不要直接回车,要按三键 CTRL+SHIFT+回车 下拉。
=INDEX(C:C,SMALL(IF(COUNTIF(A$1:A$3000,"*"&C$1:C$3000&"*")*(C$1:C$3000<>""),ROW($1:$3000),4^8),ROW(A1)))&""
注意:建议表格改为本例这样,姓名需要单独存放在一列,像提问那样会产生冤案,假设A列有名字张三峰,而C列只有张三,那么张三会被误认为是有案底的。
改为本例这样可避免这个问题:
F2数组公式
=INDEX(D:D,SMALL(IF(ISNA(MATCH(D$2:D$3000,A$2:A$3000,)),4^8,ROW($2:$3000)),ROW(A1)))&""
追问
超级感谢!用你的方法,跟我手动的比对结果完全一样!佩服佩服~
我需要再追问一下:A列案件共有9000件,C列需比对的名字有7000个,那么这个数组公式应改写为??(其实就是不明白公式最后的ROW($1:$3000),4^8)什么时候需要修改)
追答
4^8不用理会。
ROW($1:$3000)中的1:3000与C列对比的名字行数相同,如C1:C7000就是1至7000行,所以就改为ROW($1:$7000)。再例如是 C9:C8000,那么就是ROW($9:$8000)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询