如何用Excel表格结构化引用实现TEXTJOIN去重无空白拼接?
解决方案
适用于Excel 365/2021及以上版本
直接将以下公式粘贴到A4单元格即可:
=TEXTJOIN(",",TRUE,UNIQUE(FILTER(Table1[@[Fruit 1]:[Fruit 40]],Table1[@[Fruit 1]:[Fruit 40]]<>"")))
公式说明:
Table1[@[Fruit 1]:[Fruit 40]]:结构化引用当前行第1到第40列的水果数据,完全符合要求不使用普通单元格地址FILTER(..., <>""""):过滤掉所有空白内容UNIQUE():自动去除重复的水果名称TEXTJOIN(",",TRUE,...):用逗号将处理后的非空去重值连接成字符串
适用于旧版Excel(无UNIQUE/TEXTJOIN函数)
使用以下数组公式,输入完成后按Ctrl+Shift+Enter确认(不能直接回车):
=SUBSTITUTE(TRIM(TEXTJOIN(" ",TRUE,IF(MATCH(Table1[@[Fruit 1]:[Fruit 40]],Table1[@[Fruit 1]:[Fruit 40]],0)=COLUMN(Table1[@[Fruit 1]:[Fruit 40]])-COLUMN(Table1[@[Fruit 1]])+1,Table1[@[Fruit 1]:[Fruit 40]],"")))," ",",")
公式说明:
- 通过
MATCH定位每个水果首次出现的位置,仅保留首次出现的条目,实现去重 TEXTJOIN先用空格连接有效内容,再通过SUBSTITUTE把空格替换为逗号,TRIM清理多余空格- 全程采用结构化引用,避免使用普通单元格地址
注意:如果你的表格名称不是Table1,需要把公式里的Table1替换为实际的表格名称;最后一列的结构化引用[Fruit 40]也要对应改成你表格里最后一列的名称。
内容的提问来源于stack exchange,提问作者Kobe2424
相关产品推荐
相关产品推荐

