如何按条件对矩阵求和?Excel多矩阵匹配求和问题
解决矩阵匹配求和的问题
核心问题分析
返回值为0的根源就是矩阵2计算出的月数是非整数,和「月份」列的整数值无法精确匹配,导致条件判断始终不成立。
具体解决方案
方法1:新增辅助列取整后用SUMIFS求和
- 在矩阵2的空白区域(比如新增一列)计算取整后的月数,根据业务需求选择取整规则:
- 四舍五入:
=ROUND((结束日期单元格-开始日期单元格)/30,0) - 向下取整:
=INT((结束日期单元格-开始日期单元格)/30) - 向上取整:
=CEILING((结束日期单元格-开始日期单元格)/30,1)
- 四舍五入:
- 用SUMIFS函数求和,示例公式:
比如要匹配月份91,就把目标月份单元格指向对应91的单元格,即可得到矩阵1中符合条件的3和5的总和。=SUMIFS(矩阵1的数值区域, 取整后的月数区域, 目标月份单元格)
方法2:直接用SUMPRODUCT内嵌取整判断(无需辅助列)
如果不想新增辅助列,直接在SUMPRODUCT里完成取整和匹配判断,示例公式:
=SUMPRODUCT(矩阵1数值区域, --(ROUND((矩阵2结束日期区域-矩阵2开始日期区域)/30,0)=目标月份单元格))
- 逻辑说明:
ROUND(...)把计算出的月数取整后和目标月份对比,得到TRUE/FALSE;--将布尔值转换为1/0,最后和矩阵1的数值相乘后求和,自动筛选出符合条件的数值累加。
关键注意事项
- 确保矩阵1的开始、结束日期是Excel可识别的日期格式,而非文本格式,否则日期差计算会出错。
- 取整规则要和业务逻辑一致,比如是否允许90.1算90还是91,选对应的取整函数。
内容的提问来源于stack exchange,提问作者excelconfusion
相关产品推荐
相关产品推荐

