跨工作表多条件求和:按账户类型及日期自动汇总交易金额
自动汇总指定类型账户的历史交易金额(Excel公式方案)
需求说明
需要在Summary工作表的单个单元格中,自动汇总Setup工作表内所有Type_2类型账户在指定日期(含该日期)之前的交易金额,且当Setup工作表新增同类型账户时,无需手动修改公式即可自动更新结果。
适用Excel 365/2021(动态数组版本)
假设Summary工作表中存储指定日期的单元格为A1,使用以下公式:
=SUM(SUMIFS(Transaction!B:B, Transaction!A:A, FILTER(Setup!A:A, Setup!B:B="Type_2"), Transaction!C:C, "<="&A1))
公式逻辑:
FILTER(Setup!A:A, Setup!B:B="Type_2"):从Setup工作表中筛选出所有类型为Type_2的账户列表;SUMIFS(...):针对筛选出的每个账户,汇总Transaction工作表中日期小于等于指定日期的交易金额;SUM(...):将所有符合条件的账户交易金额求和,得到最终结果。
兼容旧版Excel(无动态数组)
如果使用的是不支持动态数组的旧版Excel,使用以下SUMPRODUCT公式(指定日期单元格仍为A1):
=SUMPRODUCT(Transaction!B:B, --(ISNUMBER(MATCH(Transaction!A:A, IF(Setup!B:B="Type_2", Setup!A:A), 0))), --(Transaction!C:C<=$A$1))
公式逻辑:
IF(Setup!B:B="Type_2", Setup!A:A):生成仅包含Type_2类型账户的临时列表;MATCH(...)+ISNUMBER(...):判断Transaction工作表中的账户是否属于Type_2类型,返回布尔值;--(...):将布尔值转换为1(符合条件)或0(不符合);SUMPRODUCT(...):将金额、账户类型匹配结果、日期条件三者相乘后求和,得到最终汇总值。
注意事项
- 建议使用具体的单元格区域(如
Setup!A2:A100、Transaction!A2:C1000)代替整列引用,减少计算冗余,提升公式运行效率; - 确保指定日期的单元格设置为正确的日期格式,避免公式无法识别日期条件。
内容的提问来源于stack exchange,提问作者Joshua Owen
相关产品推荐
相关产品推荐

