2012-10-12 49 views
0

我在Excel 2010中使用表格,我需要能夠在顯示滿足兩個條件的每個值的範圍總和的列中顯示值。我也需要它在求和之前舍入每個值。我已經看到人們在求和之前使用一個數組公式對每個值進行四捨五入,但是我沒有看到如何用sumifs語句來做到這一點。Excel在總結SUMIF公式之前舍入各個值

我的公式是這樣的:

=sumifs(pData[premium],pdata[Pol],[@[Pol]],pdata[LineNum],[@[LineNum]]) 

現在..我不想舍一切的總和,我想之前總結的一切四捨五入。基本上,對於符合sumif標準的每個值,它應在求和之前舍入或舍入。

=Round(sumifs(pData[premium],pdata[Pol],[@[Pol]],pdata[LineNum],[@[LineNum]]),0)將總和相加,並且通常被幾個數字所取代。

回答

3

而不是SUMIF,這會適合您的情況嗎?正如@nutsch指出的,這可以被設置如下,它不需要被輸入作爲數組公式:

=SUMPRODUCT(($A$1:$A$12="A")*($B$1:$B$12="B")*ROUND($C$1:$C$12,0)) 

此發現值,其中A欄=「A」和列B =「B」 ,然後返回在列C的圓形數目

+0

更簡單的語法:'= SUMPRODUCT(($ A $ 1:1 $ B $ 12 = 「B」)* ROUND($ C $:$ A $ 12 = 「A」)*($ B $ 1 :$ C $ 12,0))' – nutsch

+0

@nutsch是的,好點 - 現在調整。 – RocketDonkey

+0

上週我插入了這個,但這樣做後,結果仍然得到不同於我預期的數字。我知道問題出在我的數據上,但是想調整數據,然後再給這個公式看看它是否有效。工作完美:)謝謝@RocketDonkey –

0

更新: 我更喜歡在這種情況下使用數組公式:

=SUM(IF(pdata[Pol]=[@[Pol]],IF(pdata[LineNum]=[@[LineNum]],ROUND(pData[premium],1)))) 

然後Ctrl鍵 + + 輸入

+1

這不起作用Gimp,SUMIFS只接受範圍作爲總和範圍(或標準範圍)。使用ROUND等函數修改範圍,將其轉換爲數組,這樣就會出現錯誤。 –

+0

謝謝漿果,我在午餐前很快就發佈了這篇文章,一定不會一直在想!我用'sum(if())'修改了我的答案,成爲一個真正的數組公式 – danielpiestrak