2017-08-31 61 views
2

这是函数或方法:(MS Excel)如果在sumifs函数中用一个引号括起来,如何自动增加一个标准的行?

=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) 

手头的问题是,如果标准使用的操作符如:> =,< =,>,<,<>或=,要求是您将引号括起来。问题是,如果拖动公式,引号内的任何内容都不会自动递增。这是一个问题,因为我需要它自动增量。

+1

您可以将操作符放在引号内,并连接工作表/单元格引用。 –

+0

我可以看到一个例子如何做到这一点?函数在引号内也不起作用。是这样的:“> =”+ CONCATENATE(Cell Reference) –

+1

使用'operator:&'。就像'“> =”&'Payroll - Extra'!A2' –

回答

2

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

=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) 
+0

谢谢救了我几分钟到几个小时寻找解决方案 –

+0

不客气。如果您将我的答复标记为答案,我将不胜感激。 –

+0

@MarcSantos另一个建议:由于您在范围参数中使用了几乎整列,所以只要第一行中没有任何内容可能会混淆结果,您可以尝试使用完整列“AE:AE”。 –

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不再引号时,它们将在您拖动公式时自动递增。

仅供参考,以解释这里发生了什么:圆括号中的表达式创建了一个TRUEFALSE的数组。最后的+0将这个TRUEFALSE的数组转换为10的数组。然后SUMPRODUCT将每个阵列中的每个第n个元素放在一起,然后将所有这些单独的产品相加,有效地仅添加满足特定条件(或在这种情况下,几个条件)的元素。

+0

谢谢,我也会试试这个。我的电子表格变得很慢,因为除了输入时间之外,还有许多公式可以完全自动化工资单。试图找到更有效的方式 –

+0

我试过这个公式,它结束为#N/A –

+0

我刚打开一个空白的Excel工作簿,将其中的两张重命名为“DTR”和“Payroll - Extra”,并复制并粘贴了这个公式到一个单元格,它返回值为“0”,所以它适用于我。要么你输入的方式不正确,要么你的工作表中只有太多数据供公式处理(你有超过100万行)。 – ImaginaryHuman072889

相关问题