You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中基于日期与产品两列查找并返回求和至新表?

解决Excel多条件求和问题:替代LOOKUP的最优方案

你的数据情况

原始数据表(Sheet1)

DateProductSales_in_UnitsSales USD
1/1/2016BM-D49284,649
1/1/2016BM-XN266685,740
1/2/2016BM-B109101,144
1/2/2016PIB-H207462,580,000
1/2/2016PIB-H201433,768,734
1/3/2016VQR-GG2269570,794
1/3/2016WS2-B18106432,400
1/4/2016VQR-GG2345145,692
1/4/2016BM-D4234747,541
1/5/2016VQR-GG24561,218
1/6/2016PIB-H2014260,000
……………………

目标汇总表(Sheet2)

DateProductTotal_Sales_in_UnitsTotal_Sales USD
1/1/2016BM-XN
1/3/2016VQR-GG2
1/4/2016VQR-GG2
1/6/2016PIB-H20
……………………

关于LOOKUP的局限与最优方案

首先明确:LOOKUP函数并不适合你的需求。LOOKUP主要用于在单列/单行中查找单个匹配值并返回对应结果,而你需要的是同时按「Date」和「Product」两个条件进行求和汇总,这种场景下SUMIFS才是专门的解决方案,而且针对10万行的大数据,它的计算效率也完全够用。

具体公式用法

假设你的原始数据在Sheet1,目标汇总表在Sheet2:

1. 计算Total_Sales_in_Units

在Sheet2的C2单元格(对应第一行汇总的销量)输入公式:

=SUMIFS(Sheet1!$C:$C, Sheet1!$A:$A, Sheet2!$A2, Sheet1!$B:$B, Sheet2!$B2)

按下回车后,直接下拉填充整列即可。

参数解释:

  • Sheet1!$C:$C:原始数据中需要求和的「Sales_in_Units」列(绝对引用列,下拉时不会偏移)
  • Sheet1!$A:$A:第一个条件列「Date」
  • Sheet2!$A2:当前行需要匹配的日期(相对引用行,下拉时自动匹配目标表的对应行)
  • Sheet1!$B:$B:第二个条件列「Product」
  • Sheet2!$B2:当前行需要匹配的产品名称

2. 计算Total_Sales USD

在Sheet2的D2单元格输入公式:

=SUMIFS(Sheet1!$D:$D, Sheet1!$A:$A, Sheet2!$A2, Sheet1!$B:$B, Sheet2!$B2)

同样下拉填充整列即可。

关键注意事项

  • 格式一致性:确保原始数据和目标表中的「Date」格式完全一致(比如都是日期格式,不要一个是文本型日期一个是数值型日期),「Product」的拼写、大小写也完全匹配,否则会出现匹配不到的情况。
  • 数值格式:原始数据的「Sales USD」如果带有逗号分隔符,要确认单元格是数值格式(不是文本格式),否则SUMIFS会无法正确求和。
  • 大数据优化:因为你的数据有10万行,建议把整列引用(比如$C:$C)改成精确的范围,比如$C$1:$C$100000,这样能减少公式计算时的扫描范围,提升速度。

示例结果验证

比如目标表第一行「1/1/2016 BM-XN」,用公式计算后:

  • Total_Sales_in_Units = 266(和原始数据一致,当天只有这一条记录)
  • Total_Sales USD = 685740(同样匹配原始数据)

再比如如果有同一日期同一产品的多条记录(比如原始表中1/2/2016的PIB-H20),SUMIFS会自动把对应的销量和销售额相加,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Ann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:23:14