2017-08-31 156 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

相關問題