大哥牛逼,学习了。 没用过COUNTIF的*匹配,没用过数组公式
1,COUNTIF(A1,"*,*") 0表示单元格内只有1条数据,1表示存在多条
2,只有1条数据的,走 IF(COUNTIF($A$1:$A$6,"*"&A1&"*")>1,A1,"")
3,存在多条数据的,走 TEXTJOIN(",",,IFERROR(INDEX(MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14),N(IF(1,SMALL(IFERROR(IF(COUNTIF($A$1:$A$6,"*"&MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/15)))*15-14,14)&"*")>1,ROW($1:$10)),FALSE),ROW($1:$10))))),""))
3.1,TEXTJOIN(用逗号分割,忽略空格,文本1,文本2,文本3....)
3.1,文本1:IFERROR(INDEX(MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14),N(IF(1,SMALL(IFERROR(IF(COUNTIF($A$1:$A$6,"*"&MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14)&"*")>1,ROW($1:$10)),FALSE),ROW($1:$10))))),"") 如果INDEX计算返回错误,就取空
3.1.1,INDEX(区域,行索引,列索引)
3.1.1.1,区域:MID(A7,ROW(INDIRECT("1:"&INT((LEN(A7)+1)/15)))*15-14,14) 数组公式,意义是将单元格内容拆分成数组,如图
3.1.1.2,COUNTIF() 统计数组中的元素在区域中出现的次数,次数大于1的为True,否则为False,然后再和ROW()函数进行与运算
|