Excel公式咨询:求A列数值末位不为0的行对应的B列数值之和
解决Excel中按数值末位条件求和的问题
嘿,我来帮你搞定这个需求!要计算A列(price)数值末位不为0的行对应的B列(qty)之和,这里有几个实用的Excel公式方案,你可以根据自己的Excel版本选择:
方案1:SUMPRODUCT函数(兼容所有Excel版本)
这个公式适配所有版本的Excel,不需要特殊按键操作:
=SUMPRODUCT(--(RIGHT(TRIM(TEXT(A:A,"0.########")),1)<>"0"), B:B)
公式拆解:
TEXT(A:A,"0.########"):把A列数值转换成无末尾零的文本格式,避免因单元格显示格式误差导致的判断错误TRIM():去除转换后文本的多余空格,确保提取的最后一位准确RIGHT(...,1):提取转换后文本的最后一位字符--(...):将布尔判断结果(TRUE/FALSE)转换为1或0,方便后续相乘求和- 最后与B列对应单元格相乘,SUMPRODUCT会自动完成求和运算
如果你的A列存在非数值单元格(比如文本、空值),可以添加一层过滤条件:
=SUMPRODUCT(--(ISNUMBER(A:A)), --(RIGHT(TRIM(TEXT(A:A,"0.########")),1)<>"0"), B:B)
方案2:FILTER+SUM组合(适合Excel 365/2021及以上版本)
如果你使用的是支持动态数组的Excel版本,这个公式逻辑更直观:
=SUM(FILTER(B:B, RIGHT(TRIM(TEXT(A:A,"0.########")),1)<>"0"))
公式拆解:
FILTER(B:B, ...):直接筛选出B列中满足"A列数值末位不为0"条件的所有值SUM():对筛选后的结果求和,步骤清晰易懂
验证示例
用你给出的测试案例验证:A列是44.0313和44.0399,对应的B列是250和100,使用上面任意一个公式,都会得到350的正确结果。
内容的提问来源于stack exchange,提问作者Tom Lau




