Google Sheet中SUMIFS结合TEXTJOIN作为条件失效问题求助
问题分析与解决方案
问题原因
你使用的公式中,"""&textjoin("|",1,E1:E2)&""" 会生成带双引号的字符串(实际值为 "a|b"),而非预期的 a|b。当这个带双引号的字符串作为正则表达式传入 REGEXMATCH 时,它会尝试匹配A列中包含 "a 或 b" 的内容,但你的A列单元格都是无引号的单个字母(如a、b),因此REGEXMATCH返回全FALSE,最终SUMIFS没有符合条件的行,返回0。
而直接写"a|b"时,公式里的双引号只是Google Sheets的字符串界定符,实际传递给REGEXMATCH的是无引号的a|b,因此能正确匹配A列的a和b。
修正后的公式
去掉多余的双引号包裹,直接使用TEXTJOIN的结果作为正则表达式:
=ARRAYFORMULA(sumifs(B1:B9,REGEXMATCH(A1:A9,textjoin("|",1,E1:E2)),TRUE,C1:C9,F1))
验证说明
textjoin("|",1,E1:E2)直接生成无额外双引号的a|b,作为正则表达式能正确匹配A列的a和b- 结合
SUMIFS的其他条件(C列等于F1的nail),会计算符合条件的B列值:1+2+20=23,和预期结果一致
内容的提问来源于stack exchange,提问作者Ed Chan
相关产品推荐
相关产品推荐

