替代SUMPRODUCT第2部分


0

对于同一行中的两个持续时间(只是不同的列)和同一行中的两个完整数字,我正在尝试计算与前一个问题中具有不同行上的值的等效公式。

在此输入图像描述

我试着用

=SUMPRODUCT(duration1,duration2,number1,number2)/sum(number1,number2) 

但我没有得到正确的答案,因为他们在不同的行(但相同的列)。

我也无法弄清楚如何添加日期作为我在上一个问题中所做的标准。

您可以从此处下载示例工作簿。


SUM(E4*D4,I4*J4)/SUM(D4,I4)
斯科特克拉纳

Answers:


1

您似乎遇到了问题,因为您误解了该SUMPRODUCT()功能的确切运作方式。

它的作用是将所有参数的各个元素相乘,然后对结果数组求和。

以下面的例子为例:

=SUMPRODUCT(A1:A3, B1:B3, C1:C3, D1:D3)

评估此公式的两个步骤是:

=SUMPRODUCT({A1*B1*C1*D1; A2*B2*C2*D2; A3*B3*C3*D3})
=A1*B1*C1*D1 + A2*B2*C2*D2 + A3*B3*C3*D3


对于您的特定情况,您实际需要做的是获得两个 sumproducts 的总和:

=SUM(SUMPRODUCT(duration1,number1),SUMPRODUCT(duration2,number2))/SUM(number1,number2)

对于您提供的示例工作簿,公式F5将为:

=SUM(SUMPRODUCT('CHAT US Raw Data'!I6,'CHAT US Raw Data'!P6),SUMPRODUCT('CHAT US Raw Data'!T6,'CHAT US Raw Data'!U6))/SUM('CHAT US Raw Data'!I6,'CHAT US Raw Data'!T6)

请注意,这相当于在SUMPRODUCT()函数内部显式执行乘法,只使用函数对结果数组求和(如第1部分问题的答案中所做的那样):

=SUM(SUMPRODUCT(duration1*number1),SUMPRODUCT(duration2*number2))/SUM(number1,number2)

以实际公式F5为:

=SUM(SUMPRODUCT('CHAT US Raw Data'!I6*'CHAT US Raw Data'!P6),SUMPRODUCT('CHAT US Raw Data'!T6*'CHAT US Raw Data'!U6))/SUM('CHAT US Raw Data'!I6,'CHAT US Raw Data'!T6)

此公式仍需要根据您之前的问题进行调整,以检查匹配日期(以及第一个匹配的学生姓名,如果仍然适用)。

对于股息,我们可以添加额外的日期检查期限。

SUM()但是,在添加日期检查之前,需要修改除数函数。我们需要两个sumif函数的总和(假设您希望扩展多行的公式):

=SUM(SUMPRODUCT((date1=date)*duration1*number1),SUMPRODUCT((date2=date)*duration2*number2))
/SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

以实际公式F5为:

=SUM(SUMPRODUCT(('CHAT US Raw Data'!H6=E5)*'CHAT US Raw Data'!I6*'CHAT US Raw Data'!P6),SUMPRODUCT(('CHAT US Raw Data'!S6=E5)*'CHAT US Raw Data'!T6*'CHAT US Raw Data'!U6))/SUM(SUMIF('CHAT US Raw Data'!H6,E5,'CHAT US Raw Data'!I6),SUMIF('CHAT US Raw Data'!S6,E5,'CHAT US Raw Data'!T6))

SUMPRODUCT()(使用结果隐式布尔强制)内手动执行乘法的替代方法是使用双负一元运算符将日期检查明确强制为1和0。例如,(date1=date)将成为--(date1=date)

=SUM(SUMPRODUCT(--(date1=date),duration1,number1),SUMPRODUCT(--(date2=date),duration2,number2))
/SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

用实际公式:

=SUM(SUMPRODUCT(--('CHAT US Raw Data'!H6=E5),'CHAT US Raw Data'!I6,'CHAT US Raw Data'!P6),SUMPRODUCT(--('CHAT US Raw Data'!S6=E5),'CHAT US Raw Data'!T6,'CHAT US Raw Data'!U6))/SUM(SUMIF('CHAT US Raw Data'!H6,E5,'CHAT US Raw Data'!I6),SUMIF('CHAT US Raw Data'!S6,E5,'CHAT US Raw Data'!T6))

作为最后一点,sumif除数有相同的sumproduct版本。

例如,

SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

相当于

SUM(SUMPRODUCT((date1=date)*number1),SUMPRODUCT((date2=date)*number2))

以及

SUM(SUMPRODUCT(--(date1=date),number1),SUMPRODUCT(--(date2=date),number2))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.