你好,你好,表兄弟们。早上好。我是星光。我们又见面了。
今天想和大家分享一个函数——SUMPRODUCT,名字很长,但是使用很广泛。开门见山,我们通过几个例子来看看SUMPRODUCT能做什么样的工作。
假设上图是某公司工资发放的部分记录,A栏显示工资发放时间,B栏显示员工所属部门,C栏显示员工姓名,D栏显示相关员工收到的工资金额。
那么,问题来了:
1.西门庆同志领了多少次工资?
这是一个单条件计数问题。通常我们使用COUNTIF函数。如果我们使用SUMPRODUCT函数,一般写如下:=SUMPRODUCT((C2:C13=“西门青”)*1)。
首先判断C2:C13的值是否等于“西门清”,等于则返回TRUE,不等于则返回FALSE,从而建立具有逻辑值的存储阵列。
SUMPRODUCT有一个特性,它会将非数值数组元素视为0,逻辑值自然属于非数值数组元素。我们用*1将逻辑值转换为数值,真转换为1,假转换为0,最后进行统计和求和。
第二,西门庆同志一共领了多少工资?这是一个单条件求和的问题。通常我们使用SUMIF函数。如果用SUMPRODUCT函数,可以写成:=SUMPRODUCT((C2:C13=“西门青”)*D2:D13)。
首先判断C2:C13的值是否等于“西门清”,得到一个逻辑值FALSE或TRUE,然后与D2:D13的值对应相乘,最后统计求和得到结果。
看完以上两个问题,一些表兄弟心里嘀咕着。似乎SUMIF和COUNTIF能做到SUMPRODUCT能做到的,而且他们能做得更好。那么SUMPRODUCT还做什么呢?伙计们,我不能这么说。SUMPRODUCT可以说是上厅下厅的厨房。令西门庆着迷,暗恋吴二郎。工作环境不挑剔,对参数类型没有特殊要求。COUNTIF和SUMIF是不同的。它们需要单独的参数,这些参数必须是单元区域。例如,COUNTIF和SUMIF对以下两个问题感到困惑。
财务部三月份和三月份发了多少次工资?3月份财务部发了好几份工资,这是一个多条件计数问题。第一个条件是工资必须在三月份发放。第二,发工资的部门一定是财务部。如果用多条件计数函数COUNTIFS来判断发工资的时间是否属于3月份,那就简单复杂了。有了SUMPRODUCT函数,我们可以简单工整地写如下:=sum product((month(a 2: a 13)=3)*(b 2: b 13=“财务部”)。
4.统计3月份财务部发放的工资。表兄弟知道这是一个常见的多条件求和问题。如果用SUMIFS函数来判断发工资的时间是否属于3月份,和COUNTIFS类似,会把简单的问题复杂化。
SUMPRODUCT突然来了:=SUMPRODUCT((月(a2:a13)=3) * (b2:b13=“财务部”),D2:D13。
上述公式可以说是SUMPRODUCT多条件求和的典型用法,可以概括为:
=SUMPRODUCT((条件1) *(条件2)……,求和区域)。
财务部和市场部5月和3月发了多少工资?通过以上问题,表兄弟们已经知道3月份财务部发放的工资是怎么计算的了,那么3月份财务部和市场部发放的工资总额又是怎么计算的呢?我们可以这样写:
=sumproduct((月(a2:a13)=3) * (b2:b13={“财务部”、“市场部”})*D2:D13)。
好吧,聊了这么多,是时候结束了。我是男神,我是星光。我只是用这份文件给我逝去的青春和某个人的光芒.