[算表] Excel多條件求和

看板Office作者時間10年前 (2015/07/02 22:19), 編輯推噓1(1011)
留言12則, 3人參與, 最新討論串1/1
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 -- 會計人的Excel小教室: https://www.facebook.com/acctexcel -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 183.206.178.109 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1435846768.A.6DC.html

07/02 23:13, , 1F
原文第六點,千萬不要(明細帳!A:A=B3)*(明細帳!B:B="A")這
07/02 23:13, 1F

07/02 23:16, , 2F
樣寫,也不要這樣教學,條件一多,陣列公式一多,A:A,B:B
07/02 23:16, 2F

07/02 23:16, , 3F
這樣指定一整欄,效能極差
07/02 23:16, 3F

07/02 23:17, , 4F
如果是一整欄都有資料沒話說,但如果沒有又這樣指定,2003
07/02 23:17, 4F

07/02 23:20, , 5F
是a1:a65535=B3的邏輯判斷,假設只有1000列有值,那就是
07/02 23:20, 5F

07/02 23:21, , 6F
64000多筆都是沒有意義的運算或判斷
07/02 23:21, 6F

07/02 23:24, , 7F
2007以上1048576列就更多了
07/02 23:24, 7F

07/02 23:31, , 8F
另外回文寫到2003是a1:a65535=b3,而無寫a:a=b3是因為在
07/02 23:31, 8F

07/02 23:32, , 9F
2003寫a:a=b3的陣列公式會出現#num!的錯誤
07/02 23:32, 9F

07/03 21:36, , 10F
2010版開始印象中sumifs有支援a:a的優化 效能比第六點好
07/03 21:36, 10F

07/03 21:36, , 11F
很多
07/03 21:36, 11F

07/12 07:47, , 12F
謝謝指教,這部份會在以後注意
07/12 07:47, 12F
文章代碼(AID): #1LbKXmRS (Office)
文章代碼(AID): #1LbKXmRS (Office)