(MS Excel) sumifs 函数中如果用引号引起来,如何自动增加条件的行?

(MS Excel) How to automatically increment the row of a criteria in the sumifs function if it is enclosed in quotation marks?

这是函数或方法:

=SUMIFS(sum_range,criteria_range1,criteria1,...)

这是我要拖拽的公式:

=SUMIFS(DTR!AE:AE48576,DTR!B:B48576,">='Payroll - Extra'!A2",DTR!B:B48576,"<='Payroll - Extra'!B2",DTR!A:A48576,'Payroll - Extra'!C)

拖下来后,我的目标是这样(看黑体字):

=SUMIFS(DTR!AE:AE48576,DTR!B:B48576,">='Payroll - Extra'!**A3**",DTR!B:B48576,"<='Payroll - Extra'!**B3**",DTR!A:A48576,'Payroll - Extra'!C)

手头的问题是,如果条件使用诸如 >=、<=、>、<、<> 或 = 之类的运算符,则要求将 is 括在引号中。问题是,如果你向下拖动公式,引号内的任何内容都不会自动递增。这是一个问题,因为我需要它自动递增。

您可以使用运算符连接单元格引用,而不是将所有单元格引用都用引号引起来。所以你的公式可能看起来像:

=SUMIFS(DTR!AE:AE48576,DTR!B:B48576,">=" & 'Payroll - Extra'!A2,DTR!B:B48576,"<=" & 'Payroll - Extra'!B2,DTR!A:A48576,'Payroll - Extra'!C)

这就是为什么我总是避免使用 SUMIFS

SUMPRODUCT 可以用来做你想做的事。

而不是这样做:

= SUMIFS(<sum range>,<criteria range 1>,"<criteria 1>",
                     <criteria range 2>,<criteria 2>,...)

这样做:

= SUMPRODUCT(<sum range>,(<criteria range 1><criteria 1>)+0,
                         (<criteria range 2>=<criteria 2>)+0,...)

所以在你的情况下,应该是:

= SUMPRODUCT(DTR!AE:AE48576,
             (DTR!B:B48576>='Payroll - Extra'!A2)+0,
             (DTR!B:B48576<='Payroll - Extra'!B2)+0,
             (DTR!A:A48576='Payroll - Extra'!C)+0)

由于 A2 和 B2 不再在引号中,当您向下拖动公式时它们将自动递增。

仅供参考,解释这里发生了什么:括号内的表达式创建了一个 TRUEFALSE 的数组。最后的 +0 将这个 TRUEFALSE 的数组转换为 10 的数组。然后 SUMPRODUCT 将每个数组中的每个第 n 个元素相乘,然后将所有这些单独的乘积相加,实际上只将满足特定条件(或在本例中为多个条件)的元素相加。