2011-07-26 60 views
1

我有兩個工作簿在Excel中,我將列從一個複製到另一個。 我想複製一列的數量,比如A,如果另一列,比如B,等於「測試工具」或「硬工具」。我寫了這段代碼,不能讓它起作用,它只是給了我的零和錯誤。最後一個參數並不重要,所以忽略它。在Excel中對SUMIFS使用OR邏輯函數

"=SUMIFS('Tooling forecast template'!R6C17:R500C17,'Tooling forecast template'!R6C7:R500C7,""OR(=Test Tool, =Hard Tool)"" ,'Tooling forecast template'!R6C6:R500C6,""<>Actual tool/equipment change"")" 
+0

如果簡化爲其基本要素,問題更容易消化。一個跳過工作表引用的等價示例,使用更簡單的單元格引用,並避免未使用的參數。 –

回答

2
=IF(OR(CellToCheck="Test Tool", CellToCheck="Hard Tool"), CellToCopy, 0) 
+0

好的,那麼如何將該代碼插入我的?我有一個SUMIFS函數。 – Jonas

+0

把這個函數放在另一列(如果你喜歡的話隱藏) - 然後將SUMIF表達式指向新列 – BonyT

+0

當然,那不是我正在尋找的東西,但我認爲它儘可能接近解決方案,我給你正確的答案。 – Jonas

2

只需添加兩個SUMIFS在一起,它同樣的事情!

=SUMIFS('Tooling forecast template'!R6C17:R500C17,'Tooling forecast template'!R6C7:R500C7,"=Test Tool" ,'Tooling forecast template'!R6C6:R500C6,"<>Actual tool/equipment change") + SUMIFS('Tooling forecast template'!R6C17:R500C17,'Tooling forecast template'!R6C7:R500C7,"=Hard Tool" ,'Tooling forecast template'!R6C6:R500C6,"<>Actual tool/equipment change") 
+1

謝謝,但這就是我想要避免:) – Jonas

+0

我想避免這種情況的原因是因爲我將添加一個或多個功能到SUMIFS,我不喜歡4 SUMIFS :)我有這個功能107次! 4 * 107 =差 – Jonas

0

這不會工作嗎?

注意: 假設上面A列有要加和的值。 假設Col B包含工具類型。

=SUM(SUMIFS(A:A,B:B,"hard tool"),SUMIFS(A:A,B:B,"test tool")) 
+0

如果條件來自不同的列並且兩者之間存在重疊,則這不起作用。此外,它一般不是非常緊湊,特別是如果你有20個類別的組合。 – kalu

1

使用A或B與NOT((不是A)和(NOT B))相同的事實。例如,如果使用SUMIFS B = 1或C = 1的求和項:

=SUM(A1:A10) - SUMIFS(A1:A10,B1:B10,"<>0",C1:C10,"<>0") 

可以實現與SUMPRODUCT相同的結果:

=SUM(A1:A10) - SUMPRODUCT(A1:A10,--(B1:B10<>0),--(C1:C10<>0)) 
4

下面是可以節省輸入的方法了大量SUMIF語句,但它不會停止的Excel不必計算多SUMIFS ...

=SUM(SUMIFS('Tooling forecast template'!R6C17:R500C17,'Tooling forecast template'!R6C7:R500C7, {"Test Tool", "Hard Tool"} ,'Tooling forecast template'!R6C6:R500C6,"<>Actual tool/equipment change")) 

基本上,你計算SUMIF與值數組作爲你的標準,然後再包使S UMIF中的一個SUM,以便將多個答案添加在一起。

由於長變量名稱,此示例很難閱讀。這裏有一個簡單的例子,要添加一些數字在相應字母是A或B ...

很長的路要走:

=SUMIFS(B1:B5, A1:A5, "A") + SUMIFS(B1:B5, A1:A5, "B") 

簡短的方式:

=SUM(SUMIFS(B1:B5, A1:A5, {"A","B"}))