TEXTSPLIT函数非等于条件求和失效问题求助
TEXTSPLIT非等于条件求和失效的原因
核心问题:重复累加
你用=SUM(--(TEXTSPLIT(F2,",")=B2:B12)*C2:C12)能正确求和,是因为等于条件下,每个符合的B列单元格只会被TEXTSPLIT返回的某一个元素匹配成功——比如F2拆分出"A,B",B列里的"A"只会和第一个元素匹配出TRUE,其他元素匹配都是FALSE,转成数值后只有1个1,乘以C列值后只会被加一次。
但改成<>条件时,逻辑完全反转:每个不在TEXTSPLIT列表里的B列单元格,会被TEXTSPLIT的每一个元素都判断为"不等于",生成多个TRUE(次数等于拆分出的元素个数)。转成数值后就是多个1,乘以C列值后会被重复累加多次,最终结果自然偏大、不准确。
举个简单例子:
- F2内容是
"A,B",TEXTSPLIT返回{"A","B"} - B2单元格是
"C",C2值为10 - 用
<>条件时,TEXTSPLIT(F2,",")<>B2会生成{TRUE,TRUE},转成{1,1} - 乘以C2的10后得到
{10,10},SUM后结果是20,但实际应该只加10一次(因为"C"不在列表里,只需要计算一次)
为什么FILTER能解决?
FILTER是直接筛选出所有不在TEXTSPLIT列表里的B列行,每一行只被判断一次,不会重复计算,所以求和结果准确。
内容的提问来源于stack exchange,提问作者Srikanth
相关产品推荐
相关产品推荐

