(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 单元格中输入公式:
使用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)
我已经尝试过 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 单元格中输入公式:
使用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)