求助:如何用ARRAYFORMULA+TEXTJOIN提取含0530的对应姓名?
解决方案
你的问题在于原公式使用了精确匹配(D2:D8="0530"),但Column B的单元格是包含多个时间值的字符串,无法直接精确匹配。需要改用包含匹配的逻辑来判断,以下是可行的公式:
=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH("0530", B2:B4)), A2:A4, ""))
公式说明:
SEARCH("0530", B2:B4):在B列的每个单元格中查找"0530",找到则返回匹配的位置数字,未找到返回错误值。ISNUMBER(...):将SEARCH的结果转换为布尔值(找到为TRUE,未找到为FALSE)。IF(...):当条件为TRUE时返回对应A列的姓名,否则返回空字符串。TEXTJOIN(", ", TRUE, ...):用,作为分隔符,将所有符合条件的姓名合并到单个单元格,TRUE参数会自动忽略空值。
如果需要适配后续新增行的动态数据范围,可以把固定范围改为动态范围:
=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH("0530", B2:INDEX(B:B, COUNTA(B:B)))), A2:INDEX(A:A, COUNTA(A:A)), ""))
这个公式会准确返回你需要的结果:Kelly, Jenn
内容的提问来源于stack exchange,提问作者Erin M
相关产品推荐
相关产品推荐

