[算表] Excel多條件求和

作者: moodyblue   2015-07-02 22:19:21
Excel多條件求和
特別條件求和(SUMIF)這個函數,應該很多人用過,有時候會遇到需要多個條
件求和的情況,在此分享實務上做法:
圖文參考:
http://www.b88104069.com/archives/1503
一、首先,總公司拿到的報表,是所有子公司放在一塊的明細帳。
二、這種報表很適合跑樞紐,將欄位清單如圖設置。
三、整理好的樞紐分析表,很清楚地將子公司和會科彙總好了。
關於樞紐分析表的用法,可參考先前的分享文章:
http://www.b88104069.com/archives/1141
四、下函數的話,因為我們有兩個條件:子公司及會計科目,所以「SUMIF」
不夠用,需要使用「SUMIFS」,輸入公式:「=SUMIFS(明細帳!C:C,明細帳
!A:A,B3,明細帳!B:B,$C$1)」。
五、第一個參數欄位是想要加總的範圍,也就是明細帳裡的「發生金額」,
接下來的參數欄位是兩兩一組,我們需要會計科目等於「B3」,也就是「
5100」,子公司等於「C1」,也就是「A」,這裡的「$C$1」表示將C1的欄數
和列數都固定住了,將公式往下拉的時候,「C1」不會跟著遞增或遞減改變

六、除了SUMIFS函數之外,也可以使用向量的方式套用多條件,輸入公式:
「=SUM(IF((明細帳!A:A=B3)*(明細帳!B:B="A"),明細帳!C:C))」,輸入完之
後,因為我們想要二維向量的效果,要先將滑鼠移到公式欄,先按住「Ctrl
」和「Shift」不放,再按「Enter」鍵,結果可以看到公式兩邊冠上了大括
號,計算出來的值,如我們所期待。
七、既然是多條件求和,也可以有第三個條件,並且可以是數學判斷式,例
如100以下的金額太小,想要忽略不計,可以在公式後面再加上:「明細帳
!C:C,">100"」,OK。
八、向量多條件求和函數,在乘積的部份再加上一組:「*(明細帳
!C:C>100)」,OK。
延伸閱讀:
多層次Vlookup多層次vlookup料號分類
http://www.b88104069.com/archives/1750
資料剖析後vlookup查找
http://www.b88104069.com/archives/1092
vlookup文字數值查找
http://www.b88104069.com/archives/1003
作者: soyoso (我是耀宗)   2015-07-02 23:13:00
原文第六點,千萬不要(明細帳!A:A=B3)*(明細帳!B:B="A")這樣寫,也不要這樣教學,條件一多,陣列公式一多,A:A,B:B這樣指定一整欄,效能極差如果是一整欄都有資料沒話說,但如果沒有又這樣指定,2003是a1:a65535=B3的邏輯判斷,假設只有1000列有值,那就是64000多筆都是沒有意義的運算或判斷2007以上1048576列就更多了另外回文寫到2003是a1:a65535=b3,而無寫a:a=b3是因為在2003寫a:a=b3的陣列公式會出現#num!的錯誤
作者: EGsux (天龍人)   2015-07-03 21:36:00
2010版開始印象中sumifs有支援a:a的優化 效能比第六點好很多

Links booklink

Contact Us: admin [ a t ] ucptt.com