(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 不再在引号中,当您向下拖动公式时它们将自动递增。
仅供参考,解释这里发生了什么:括号内的表达式创建了一个 TRUE
和 FALSE
的数组。最后的 +0
将这个 TRUE
和 FALSE
的数组转换为 1
和 0
的数组。然后 SUMPRODUCT
将每个数组中的每个第 n 个元素相乘,然后将所有这些单独的乘积相加,实际上只将满足特定条件(或在本例中为多个条件)的元素相加。
这是函数或方法:
=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 不再在引号中,当您向下拖动公式时它们将自动递增。
仅供参考,解释这里发生了什么:括号内的表达式创建了一个 TRUE
和 FALSE
的数组。最后的 +0
将这个 TRUE
和 FALSE
的数组转换为 1
和 0
的数组。然后 SUMPRODUCT
将每个数组中的每个第 n 个元素相乘,然后将所有这些单独的乘积相加,实际上只将满足特定条件(或在本例中为多个条件)的元素相加。