看板 Office 關於我們 聯絡資訊
本文說明"條件加總",尤其當條件很多時該如何處理。 (只是很多個條件,但準則並不複雜) 問題整理如下: 有7個人員各屬於三個"課" 一課 大黑 小吳 二課 高 陳 鄭 三課 阿草 阿點 有數據資料庫如下 人名 a項 b項 大黑 5 5 小吳 0 2 高 5 13 陳 5 2 鄭 3 1 阿草 5 4 阿點 0 0 目標:求得各課之加總 結果: a項 b項 一課 5 7 二課 13 16 三課 5 4 回應原文: 所以舉例中,一課的23應該是5+0=5對吧 23可能是原檔案中還有加其他人? (但全部人總合剛好23 另一欄也是總合27,太容易誤會) 有您寫的公式後可知,的確是 DSUM SUMIF SUMPRODUCT SUM這幾個函數(選一個)可完成的事 因為各課人員似乎寫明列表比較好 條件比較多 所以適合DSUM 或SUM配合其他函數的陣列公式 http://2y.drivehq.com/p/Dsum.xls 檔案中有十個方法(9個工作表) 我最喜歡的是 DsumOffset (4) SumMatch (7) 這兩種方法 從Dsum (1)最基本款的公式開始漸漸演變, 至DsumOffset (4)時應該比較好了解~ Sumif (5) Sum (6) ←SUM 與 SUMPRODUCT 這是三個十分常用的條件加總, 一般情況很好用,但在此人數(條件)多時太麻煩 SumMatch (7) 是稍複雜的陣列公式,但功能性最強 SumMatch (8) 完全精簡寫法, 只是表達若不要額外的列表,可以這樣寫, (DSUM"必須"有額外列表,這是一般嫌它麻煩的地方) 但更新不易,在此不建議 SumMatch (9) (7)中無查詢欄位名稱功能(因此例中不需要 此例只需依序求解) 若需要則用此式 =============================================== 太多公式在BBS上不易觀看,以下主要是備份用,部分修飾稍微易讀 大部分只寫"一課" 之 a項 計算結果(5) *** 共同參照部分 $A$1:$C$8$A$1:$C$7(沒有第一列標題時) 人名 a項 b項 大黑 5 5 小吳 0 2 高 5 13 陳 5 2 鄭 3 1 阿草 5 4 阿點 0 0 $E$6:$E$8$E$6:$E$9 (工作表1~6使用) (E欄就對了) ↓ E F G 5 一課 二課 三課 6 人名 人名 人名 7 大黑 高 阿草 8 小吳 陳 阿點 9 / 鄭 / (空格輸入一個不在"人名"之中的字 如 / ) F$1 a項 *** Dsum (1) =DSUM($A$1:$C$8,2,$E$4:$E$6) DSUM的第二參數field可寫上要傳回第幾欄(2 3) Dsum (2) =DSUM($A$1:$C$8,F$1,$E$6:$E$8) 增加項目名(a項 b項)確保資料正確 Dsum (3) =DSUM($A$1:$C$8,F$1,$E$6:$E$9) 使用Offset的前置作業(條件列表空格加字 / ) DsumOffset (4) =DSUM($A$1:$C$8,F$1,OFFSET($E$6:$E$9,,ROW(1:1)-1)) 本式可用拖曳(複製)完成 Sumif (5) =SUMIF($A$1:$A$7,$E$7,B1:B7)+SUMIF($A$1:$A$7,$E$8,B1:B7) Sum (6) {=SUM((($A$1:$A$7=$E$7)+($A$1:$A$7=$E$8))*B$1:B$7)} =SUMPRODUCT(($A$1:$A$7=$F$7)+($A$1:$A$7=$F$8)+($A$1:$A$7=$F$9),B$1:B$7) 第二式是"二課" *** 以下陣列公式 SumMatch (7) =SUM(IF(ISNUMBER(MATCH($A$2:$A$8,$F5:$H5,)),B$2:B$8)) SumMatch (8) =SUM(IF(ISNUMBER(MATCH($A$1:$A$7,{"大黑","小吳"},)),B$1:B$7)) SumMatch (9) =SUM(IF(ISNUMBER(MATCH($A$2:$A$8,$F5:$H5,)), INDEX($B$2:$C$8,,MATCH(F$1,$B$1:$C$1,)))) SumMatch (7)(9)的條件列表與1~6工作表不同(為使查詢條件列表較方便) $F5:$H5 E F G H 一課 大黑 小吳 二課 高 陳 鄭 三課 阿草 阿點 SumMatch (8)不需條件列表 =============================================== 備份完畢。。。 ※ 引述《ichol (深色憂鬱的心)》之銘言: : ※ 引述《ichol (深色憂鬱的心)》之銘言: : : 軟體: : : EXCEL : : 版本:2000 : : 現在有一個表格 : : 假設 : : 一課 23 27 : : 二課 17 8 : : 三課 15 6 : : 大黑 5 5 : : 小吳 0 2 : : 高 5 13 : : 陳 5 2 : : 鄭 3 1 : : 阿草 5 4 : : 阿點 0 0 : : 一課有 大黑 小吳 : : 二課有 高 陳 鄭 : : 三課 有阿草 阿點 : : 想做一課人員的加總 且!當下列大黑 小吳 高 陳 數據作排序的時候 : : 各課的加總不會因為下面排序而改變 : : 主要是主管又說 如果他想下面由高到低排序 上面的又會變動到了 : : 本來我自己是看一課有誰 就用sum 可是主管這麼說就不可以用了=_=... : : 可以幫幫忙一下嗎@@ : 因為1課是大黑 小吳 : 就把B1格 設定成=B4+B5 : 其他類推 : 結果下面大黑 小吳部分 主管說他可能會排序 會造成B4 B5不是原來的數字 : 想說有沒有可以跟著變的方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.51.13 ※ 編輯: JieJuen 來自: 218.164.51.13 (11/21 02:06)
JieJuen:本文檔案中做了點實驗,把bbs畫面轉到excel中~蠻有趣的 XD 11/21 05:30
※ 編輯: JieJuen 來自: 218.164.49.72 (05/11 19:10)