如何在旧版Excel中替代TEXTJOIN()函数实现条件文本合并效果?
旧版Excel实现TEXTJOIN同等效果的方案
你原公式的作用是:读取C5单元格指定的工作表中E88:E239区域值为"Yes"的行,将对应D列的内容用英文逗号拼接,自动过滤空值。以下是两种旧版Excel兼容的实现方式:
方案1:辅助列+PHONETIC函数(最简实现,兼容Excel 2007及以上)
无需复杂公式,适合所有旧版Excel环境:
- 第一步:在C5指向的工作表的空白列(比如F列)的F88单元格输入公式,下拉填充到F239:
=IF(E88="Yes",D88&",","")
若D列为数字/日期格式,需要先转文本,修改公式为:=IF(E88="Yes",TEXT(D88,"G/通用格式")&",","") - 第二步:在原TEXTJOIN公式所在单元格输入以下公式即可:
=LEFT(PHONETIC(INDIRECT("'"&C5&"'!F88:F239")),LEN(PHONETIC(INDIRECT("'"&C5&"'!F88:F239")))-1)
注意:PHONETIC函数单次拼接上限为255字符,若拼接内容过长请选方案2
方案2:数组公式(无辅助列,兼容Excel 2013及以上)
无需新增辅助列,输入公式后需要按Ctrl+Shift+Enter三键确认数组生效:=MID(CONCAT(IF(INDIRECT("'"&C5&"'!E88:E239")="Yes",","&INDIRECT("'"&C5&"'!D88:D239"),"")),2,9999)
如果需要处理没有匹配到"Yes"的异常场景,可以在外层套IFERROR函数,示例:=IFERROR(原公式,"")
内容的提问来源于stack exchange,提问作者maxmitz
相关产品推荐
相关产品推荐

