2011-04-13 46 views
2

我試圖總結所有的細胞在C2:C2000如果在列A對應的小區是在(10; 20],但我與條件有問題OpenOffice.org Calc中SUMIF語句

我已經試過類似=SUMIF(A2:A2000, AND(">10","<=20"), C2:C2000),但返回0,這是不正確。

感謝。

[編輯]

它可以使用=SUMIF(A2:A2000, ">10", C2:C2000) - SUMIF(A2:A2000, ">20", C2:C2000)但是這不正是我要找的。

+0

我試圖完成你希望在MS Excel中完成的任務,並且遇到同樣的問題。看來Excel和OpenOffice不能評估像「」> 10「&」<= 20「這樣的複合邏輯語句。如何編寫一個像BETWEEN()這樣的用戶函數,它接受三個參數並返回TRUE或FALSE:要比較的數字,下限和上限? – Jubbles 2011-04-13 14:39:30

+0

@Jubbles謝謝,我會看看是否有辦法編寫複雜的條件,如果我找到解決方案,我會在這裏發佈。 – 2011-04-13 15:24:36

回答

2

解決複雜條件限制的簡單方法是使用另一列作爲「局部變量」 - 使列D成爲條件的結果(AND(等)),如果想要減少屏幕雜亂,請隱藏它,並使用D2:D2000作爲SUMIF的if部分。

編輯以添加備用選項:

http://support.microsoft.com/kb/275165

使用SUM(IF(..))代替SUMIF,和使用的產品和求和而不是AND和OR。

就我個人而言,我認爲使用中間列更容易遵循和維護。

+0

可能,是的,但我想知道是否有一種簡單的方法在SUMIF,COUNTIF等中使用複雜的邏輯語句 – 2011-04-13 16:59:55

2

在OpenOffice中一個相對優雅的解決方案是使用Sumproduct - 它將兩個數組相乘。 Feed Sumree在範圍內進行連續的真值測試(我認爲這會返回一組布爾值)。事情是這樣的:

SUMPRODUCT(C2:C2000;A2:A2000>"10";A2:A2000>="20") 

我得到這個從這裏:

http://user.services.openoffice.org/en/forum/viewtopic.php?f=9&t=28585

經測試,在OpenOffice的 - 我不知道是否有在Excel中的等價。對不起,我沒有要測試的副本。