使用TEXTJOIN嵌套IFERROR/IF函数返回大量FALSE值的问题求助
解决TEXTJOIN合并结果带FALSE的问题
问题核心是原公式中IF不匹配时返回的FALSE是逻辑值,不属于TEXTJOIN第二个参数TRUE会忽略的空值/错误值范畴,所以会被保留下来。以下是两种可行的修正方案:
方案1:兼容全Excel版本(数组公式)
修改原公式,将IF分支不匹配的返回值从默认的FALSE改为空字符串"",让TEXTJOIN自动忽略空值:
=TEXTJOIN(CHAR(10),TRUE,IFERROR(IF(C22='Paste firm-level scorecard'!$A$4:$A$29,'Paste firm-level scorecard'!$H$4:$H$29,""),IF('ESG Scorecard 2024'!A22='Paste fund-specific RFI'!$A$4:$A$92,'Paste fund-specific RFI'!$J$4:$J$92,"")))
注意:Excel 2019及更早版本输入后需按
Ctrl+Shift+Enter确认数组公式,365/2021版本可直接回车。
方案2:Excel 365/2021专属(动态数组)
用FILTER函数先精准筛选匹配结果,逻辑更直观,无需组合键:
=TEXTJOIN(CHAR(10),TRUE,IFERROR(FILTER('Paste firm-level scorecard'!$H$4:$H$29,'Paste firm-level scorecard'!$A$4:$A$29=C22),FILTER('Paste fund-specific RFI'!$J$4:$J$92,'Paste fund-specific RFI'!$A$4:$A$92='ESG Scorecard 2024'!A22,"")))
解释:优先从第一个表筛选匹配值,无匹配时自动切换到第二个表筛选,若两个表都无匹配则返回空值,全程不会出现FALSE。
额外注意事项
- 开启单元格自动换行:右键单元格→设置单元格格式→对齐→勾选「自动换行」,确保
CHAR(10)的换行符生效。 - 下拉公式时,表中引用范围的绝对引用(
$A$4:$A$29)会保持固定,匹配单元格的相对引用(C22、A22)会自动对应每行数据。
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

