Excel使用TEXTJOIN+UNIQUE+IF公式返回含0,如何过滤空值结果
问题修正方案
问题原因
你当前公式返回0的核心原因是:当匹配到Sheet1!$E:$E列等于A2的行时,如果对应Sheet1!$L:$L列是空单元格,Excel会默认将空单元格转换为0参与后续计算,所以0会出现在最终拼接结果里。
修正后的公式
方案1:适配原有逻辑调整判断条件
=TEXTJOIN(", ",TRUE,UNIQUE(IF((A2=Sheet1!$E:$E)*(Sheet1!$L:$L<>""),Sheet1!$L:$L,"")))
如果使用的是Excel 2019及更早版本,输入完公式后需要按Ctrl+Shift+Enter组合键确认数组运算,Excel 365/2021及之后版本直接回车即可。
方案2:用FILTER函数简化逻辑(推荐,仅支持Excel 365/2021及之后版本)
=TEXTJOIN(", ",TRUE,UNIQUE(FILTER(Sheet1!$L:$L,(A2=Sheet1!$E:$E)*(Sheet1!$L:$L<>""),"")))
逻辑说明
- 两个条件
A2=Sheet1!$E:$E、Sheet1!$L:$L<>""相乘,代表需要同时满足「E列值等于A2」和「对应L列值不为空」两个规则 - 过滤后的非空结果去重后再拼接,完全排除空值转换为0的情况,符合需求
内容的提问来源于stack exchange,提问作者updog24
相关产品推荐
相关产品推荐

