You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于日期区间与多文本条件的Excel求和计算问询

基于日期区间与多文本条件的Excel求和计算问询

嗨,我来帮你搞定这个多条件求和的需求!根据你的描述,我们需要同时满足日期区间特定名称两个维度的条件来对金额列求和,下面给你两种常用的解决方案:


方法一:使用SUMIFS+数组(推荐,更直观)

SUMIFS是Excel专门用于多条件求和的函数,结合数组可以一次性匹配多个名称条件,公式如下:

=SUM(SUMIFS(U3:U8, S3:S8, ">="&DATE(2018,4,1), S3:S8, "<="&DATE(2019,3,31), T3:T8, {"Aman","Dell","Ivan"}))

公式拆解:

  • U3:U8:我们要求和的目标金额列
  • S3:S8, ">="&DATE(2018,4,1):第一个条件——日期列必须大于等于2018年4月1日(用DATE函数构建日期能避免格式识别错误,比直接写文本日期更可靠)
  • S3:S8, "<="&DATE(2019,3,31):第二个条件——日期列必须小于等于2019年3月31日
  • T3:T8, {"Aman","Dell","Ivan"}:第三个条件——描述列必须是数组里的三个名称之一
  • 外层的SUM:因为SUMIFS会针对每个名称返回单独的求和结果,用SUM把这三个结果汇总成最终总和

方法二:使用SUMPRODUCT函数

SUMPRODUCT通过逻辑判断的乘积来实现多条件筛选,适合习惯用数组逻辑的用户,公式如下:

=SUMPRODUCT((U3:U8)*(S3:S8>=DATE(2018,4,1))*(S3:S8<=DATE(2019,3,31))*(ISNUMBER(MATCH(T3:T8,{"Aman","Dell","Ivan"},0))))

公式拆解:

  • (U3:U8):目标金额列
  • (S3:S8>=DATE(2018,4,1))(S3:S8<=DATE(2019,3,31)):日期区间的逻辑判断,符合条件返回TRUE(转成数值1),不符合返回FALSE(转成数值0)
  • (ISNUMBER(MATCH(T3:T8,{"Aman","Dell","Ivan"},0))):判断描述列内容是否在指定名称列表里,匹配成功返回TRUE,否则FALSE
  • SUMPRODUCT会把所有逻辑判断的结果和金额相乘,最后求和——只有当所有条件都满足时,乘积才是金额本身,否则为0,最终得到符合所有条件的金额总和

小提示:

如果你的Excel版本是365/2021这类支持动态数组的版本,方法一的公式直接回车就能生效;如果是旧版本,输入公式后需要按Ctrl+Shift+Enter作为数组公式执行。

备注:内容来源于stack exchange,提问作者Renu

火山引擎 最新活动