Sumifs函数大家都很熟悉了,用于计算满足一组不同条件的合计。例如,我们希望计算满足给定日期区间内某种产品的销售数量合计:
可以使用函数:
=SUMIFS(D3:D24,C3:C24,”苹果”,B3:B24,”>=”&H2,B3:B24,”<=”&H3)
但是,实际中我们可能会面对这种情况:
跟第一个例子相比,这里求和的不是“苹果”一个产品,而是一组产品的求和。
当然可以写多个SUMIFS相加,类似于:
=SUMIFS(数量,产品,”苹果”,…)+SUMIFS(数量,产品,”桃”,…)+…
但是这个函数就过于复杂了!
此时,我们可以使用下列的公式完成这个工作:
=SUMPRODUCT(SUMIFS(D3:D24,C3:C24,G6:G11,B3:B24,”>=”&H2,B3:B24,”<=”&H3))
我简单解释一下这个公式:
首先,不管外面的那个SUMPRODUCT,里面只是一个简单的SUMIFS:
SUMIFS(D3:D24,C3:C24,G6:G11,B3:B24,”>=”&H2,B3:B24,”<=”&H3)
除了里面的产品条件参数(第三个参数)外,这个公式与前面介绍的那个简单的SUMIFS函数一模一样,只不过将“苹果”换成了一个区域:G6:G11。这个替换导致同样的SUMIFS为这个区域的每个值计算了一个合计,得到了一个数组:
{苹果合计,桃合计,梨合计,樱桃合计,橘子合计,橙子合计}
于是,整个公式相当于:
SUMPRODUCT({苹果合计,桃合计,梨合计,樱桃合计,橘子合计,橙子合计})
SUMPRODUCT的作用就是把这个数组的各个结果加起来,正好就是我们想要的结果。