我正在使用包含公式的excel报告设计得很久,因为最近几天我开始面对excel报告中的单元格中的公式问题。
使用的公式是:
=SUM(('Defects Past SLA'!D4:D72="1 - High")*('Defects Past SLA'!P4:P72="Zero"))
'here 'Defects Past SLA'
是工作表名称
'在该表中,D列的几个单元格的值为"1 - High"
,而P column
的单元格值很少,值为"Zero".
我唯一的问题是Sum function
如何在这里工作,请你帮我理解上面的公式。我尝试了很多,但无法弄清楚它的含义。谢谢你的帮助。
答案 0 :(得分:3)
此SUM
实际计算该工作表的D列包含1 - High
和的所有行,其中同一行的P列包含Zero
。
以下是一个较小的表格的示例:
A B
1 0
0 1
0 0
1 1
如果我这样做:
=SUM((A:A=1)*(B:B=1))
我会得到1
的结果 (A:A=1)
给出一个TRUE和FALSE数组。当应用于上面的数据时,我们得到:
A
1 => True
0 => False
0 => False
1 => True
在公式中代替,我们得到:
=SUM((True; False; False; True)*(B:B=1))
B栏也是如此:
B
0 => False
1 => True
0 => False
1 => True
在公式中代替,我们得到:
=SUM((True; False; False; True)*(False; True; False; True))
现在,True与excel中的1
相同,而False与0
相同。这意味着,我们可以将上述内容重写为:
=SUM((1; 0; 0; 1)*(0; 1; 0; 1))
这是数组的乘法。数组的第一项将乘以下一个数组的第一项,以便我们得到:
1 x 0 = 0
0 x 1 = 0
0 x 0 = 0
1 x 1 = 1
这意味着如果我们用上面的公式代替结果,我们得到:
=SUM((0; 0; 0; 1))
这些值的总和为1。
请注意,您给定情况的等效公式为:
=COUNTIFS('Defects Past SLA'!D4:D72,"1 - High",'Defects Past SLA'!P4:P72,"Zero")