(MS Excel) 如何在具有 3 个条件的数组中使用 sumifs 或 sumproduct?

(MS Excel) How do I use sumifs or sumproduct on an array like this that has 3 criteria?

我已经尝试过 sumifs 和 sumproducts 来尝试获得我需要的结果,如果满足以下 3 个条件,则对值求和:列 A = 规定的开始日期,列 B = 规定的结束日期,以及列 headers = 人名,是遇见。下面是电子表格:

这是一个示例公式:

=SUMIFS('Payroll - Extra'!C2:C1048576,'Payroll - Extra'!A2:A1048576,"='Payroll Tables and Settings'!S3",'Payroll - Extra'!B2:B1048576,"='Payroll Tables and Settings'!T3",'Payroll - Extra'!C1,'Payslip - Extra'!A3)

在下图中的 #VALUE 单元格中输入公式:

Sample file

使用SUMPRODUCT

=SUMPRODUCT(('Payroll - Extra'!$C:$V48576)*('Payroll - Extra'!$C:$V=A3)*('Payroll - Extra'!A2:A1048576='Payroll Tables and Settings'!S3)*('Payroll - Extra'!B2:B1048576='Payroll Tables and Settings'!T3))

您的公式中 VALUE 错误的原因是您的第三个 criteria_range 与 sum_range 的大小不同,这是 SUMIFS 的要求.

此外,正如我在评论中提到的,您只是对 C 列求和 (John)。

要使用 SUMIFS,您需要让 sum_range 成为正确的列。一种方法是使用 INDEX 函数。使用 MATCH 确定正确的列,然后为行参数输入 0,然后将返回该列的所有行。请参阅 INDEX 函数的帮助。

正如我们在上一个问题中提到的,您还应该从引号内删除单元格引用。我将它们设为绝对值,因此它们不会递增,但您可以更改它。

因此,重写屏幕截图中显示 Value 的公式的一种方法是:

=SUMIFS(INDEX('Payroll - Extra'!$C:$J48576,0, MATCH($A3,'Payroll - Extra'!$C:$J,0)),'Payroll - Extra'!A2:A1048576,'Payroll Tables and Settings'!$S,'Payroll - Extra'!B2:B1048576,'Payroll Tables and Settings'!$T)

以下内容应该类似,并且更简单、更短:

=SUMIFS(INDEX('Payroll - Extra'!$C:$J,0, MATCH($A3,'Payroll - Extra'!$C:$J,0)),'Payroll - Extra'!$A:$A,'Payroll Tables and Settings'!$S,'Payroll - Extra'!$B:$B,'Payroll Tables and Settings'!$T)