(MS Excel)如何在sumifs函数中使用引号括起来自动递增条件的行?
这是function或方法:
=SUMIFS(sum_range,criteria_range1,criteria1,...)
这是我想要拖下来的公式:
=SUMIFS(DTR!AE$2:AE$1048576,DTR!B$2:B$1048576,">='Payroll - Extra'!A2",DTR!B$2:B$1048576,"<='Payroll - Extra'!B2",DTR!A$2:A$1048576,'Payroll - Extra'!C$1
)
拖下来之后,我的目标是看起来像这样(看粗体字母):
=SUMIFS(DTR!AE$2:AE$1048576,DTR!B$2:B$1048576,">='Payroll - Extra'!**A3**",DTR!B$2:B$1048576,"<='Payroll - Extra'!**B3**",DTR!A$2:A$1048576,'Payroll - Extra'!C$1)
现在的问题是,如果标准使用诸如> =,<=,>,<,<>或=等运算符,则要求是将引号括起来。 问题是,如果拖动公式,引号内的任何内容都不会自动递增。 这是一个问题,因为我需要它自动增量。
您可以连接单元格引用与运算符,而不是将所有引号括起来。 所以你的公式可能看起来像:
=SUMIFS(DTR!AE$2:AE$1048576,DTR!B$2:B$1048576,">=" & 'Payroll - Extra'!A2,DTR!B$2:B$1048576,"<=" & 'Payroll - Extra'!B2,DTR!A$2:A$1048576,'Payroll - Extra'!C$1)
这就是为什么我总是避免使用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$2:AE$1048576, (DTR!B$2:B$1048576>='Payroll - Extra'!A2)+0, (DTR!B$2:B$1048576<='Payroll - Extra'!B2)+0, (DTR!A$2:A$1048576='Payroll - Extra'!C$1)+0)
由于A2和B2不再位于引号内,所以在拖动公式时,它们将自动递增。
仅供参考,以解释这里发生了什么:圆括号内的expression式创build了一个TRUE
和FALSE
的数组。 最后+0
将这个TRUE
和FALSE
的数组转换为1
和0
的数组。 然后SUMPRODUCT
将每个数组中的每个第n个元素放在一起,然后将所有这些单独的产品相加,只有将符合某种条件(或在这种情况下,有几个条件)的元素相加。