各位老板,帮我看看我这个是哪里有问题呢。怎么修正这个公式
excel吧
全部回复
仅看楼主
level 7
pws
楼主
我觉得我思路没问题啊
但他就是报错
2026年01月15日 08点01分
1
level 13
ssg365
z定义为一个内存数据,而countif的第一参数只能为引用区域,但你使用的这个内存数组,显然是不可以的。
2026年01月15日 09点01分
2
level 8
lileixwj
=GROUPBY(TOCOL(REGEXP(A1,"([一-龟a-z]+)")),TOCOL(REGEXP(A1,"([一-龟a-z]+)")),COUNTA,0,0)
2026年01月15日 09点01分
3
level 13
ssg365
实际上,unique函数已经提供了你想要的功能。
=UNIQUE(TEXTSPLIT(A1,,","),,1)
2026年01月15日 09点01分
4
pws
不是的,我要的是:重复过的名字提取出来,正确结果是:李四,王五,乌萨奇(因为这三个名字都出现了两次以上) unique的话 就跟我的目的相反了
2026年01月15日 09点01分
ssg365
@pws
结果反了,那就这样吧=LET(a,TEXTSPLIT(A1,,","),UNIQUE(FILTER(a,MATCH(a,a,)<>SEQUENCE(ROWS(a)))))
2026年01月15日 09点01分
ssg365
@pws
或者支持正则的话,还可以使用=REGEXEXTRACT(A1,"(?<=\b)(\w+)(?=\b.*\b\1\b)")
2026年01月15日 09点01分
ssg365
@ssg365
=REGEXEXTRACT(A1,"(?<=\b)(\w+)(?=\b.*\b\1\b)",1),楼上少写了一个参数。
2026年01月15日 09点01分
level 9
娜乌_西卡
换个计数方法就行了=LET(z,TEXTSPLIT(A1,,","),TEXTJOIN(",",,MAP(UNIQUE(z),LAMBDA(x,IF(SUM(N(z=x))>1,x,"")))))
2026年01月15日 09点01分
5
pws
我其实是想知道我这哪一步错了,我觉得我这好像思路没问题啊,用map一个一个使用countif计数,如果大于1就留下,否则就空,再textjion起来,不就是完美了吗。搞不懂为什么不行
2026年01月15日 09点01分
娜乌_西卡
@pws
楼上已经有人解释原因了,sumif第一参数只能是单元格引用
2026年01月15日 09点01分
娜乌_西卡
@pws
错了,是countif,不过都是一个系列的,没大区别
2026年01月15日 09点01分
娜乌_西卡
@pws
试试这个,看看怎么改能不报错就知道了=COUNTIF({"张三","李四","张三"},"张三")
2026年01月15日 09点01分
level 11
不会VBA
错误原因是COUNTIF函数的一参只能接收地址值,可以考虑一下用IF函数,前面拆分这些都一样的,然后用reduce做累计,一层if判断重复,一层判断是否累计,迭代出来用filter剔除,所以只要会if就可以一招鲜吃遍天
2026年01月15日 13点01分
6
ssg365
=LET(a,TEXTSPLIT(M1,","),DROP(REDUCE(0,a,LAMBDA(x,y,IF(SUM(N(a=y))=1,x,IF(SUM(N(x=y)),x,VSTACK(x,y))))),1))
2026年01月16日 00点01分
level 12
yky洋洋
还是正则香
2026年01月15日 23点01分
7
刘希1112
希望那表达式你能看懂,实际情况的话话还是放弃使用正则来解题!
2026年02月11日 11点02分
level 13
🎶虚空蛋黄酱
=let(p,unique(textsplit(A1,,",")),filter(p,len(A1)-len(substitute(A1,p,)>len(p)))
2026年01月17日 01点01分
8
level 1
老衲道号_灭绝
=LET(z,TEXTSPLIT(A1,,","),UNIQUE(FILTER(z,z<>UNIQUE(z,,TRUE))))
2026年01月18日 01点01分
9
我撑着油纸伞
你的公式会返回错误值,因为数组z和数组UNIQUE(z,,TRUE)比较有问题,可以修改如下=LET(z,TEXTSPLIT(A1,,","),UNIQUE(FILTER(z,BYROW(z<>TOROW(UNIQUE(z,,TRUE)),AND))))。请指教
2026年02月11日 10点02分
level 10
刘希1112
=TEXTJOIN(",",,UNIQUE(VSTACK(UNIQUE(TEXTSPLIT(A1,,","),,1),UNIQUE(TEXTSPLIT(A1,,","))),,1))
2026年02月11日 11点02分
11
1