如何在Google Sheets中去除区域连续重复值并实现单公式运算?
解决Google Sheets按行去除连续重复值的单公式方案
直接用这个单公式就能搞定,把它放到目标列(比如你要的结果列)对应位置:
=BYROW(N2:N, LAMBDA(cell, IF(cell="", "", TEXTJOIN(">", TRUE, LET(arr, SPLIT(cell, ">", TRUE, TRUE), FILTER(arr, arr<>INDEX(arr, SEQUENCE(ROWS(arr))-1), {TRUE; SEQUENCE(ROWS(arr)-1)}))))))
为啥你原来的公式失效?
你之前用的OFFSET函数只认真实的单元格范围,但在BYROW里拆分单元格内容得到的是内存数组(不是实际单元格区域),所以会触发"argument must be a range."错误。而拆分到T、U列的方案能成功,是因为T列是实实在在的单元格范围,OFFSET能正常识别。
新公式的逻辑拆解
BYROW(N2:N, LAMBDA(cell, ...)):逐个遍历每行的单元格内容SPLIT(cell, ">", TRUE, TRUE):把当前单元格的字符串按>拆分成数组FILTER(...):精准过滤连续重复项:- 第一个元素直接保留(没有前项可对比)
- 从第二个元素开始,只保留和前一个元素不同的内容
TEXTJOIN(">", TRUE, ...):把过滤后的数组重新用>拼接成字符串
测试示例:如果单元格内容是Dog>Cat>Cat>Fish>Fish>Dog,公式会输出Dog>Cat>Fish>Dog,完全匹配你的期望结果。
内容的提问来源于stack exchange,提问作者N.O.Davis
相关产品推荐
相关产品推荐

