Excel 的「資料庫函數」系列(D-functions)專為結構化資料表設計:以「欄位名稱」而非位址參考,支援多條件篩選後再彙總,比 SUMIFS/COUNTIFS 更適合複雜條件與動態條件區域。
| 函數 | 用途 | 語法核心 |
|---|---|---|
DSUM | 條件求和 | DSUM(資料庫, 欄位, 條件區域) |
DAVERAGE | 條件平均 | DAVERAGE(資料庫, 欄位, 條件區域) |
DCOUNT | 條件計數(數值欄) | DCOUNT(資料庫, 欄位, 條件區域) |
DCOUNTA | 條件計數(非空白欄) | DCOUNTA(資料庫, 欄位, 條件區域) |
DGET | 提取單一符合記錄(唯一值) | DGET(資料庫, 欄位, 條件區域) |
DMAX / DMIN | 條件最大/最小值 | DMAX(資料庫, 欄位, 條件區域) |
DPRODUCT | 條件乘積 | DPRODUCT(資料庫, 欄位, 條件區域) |
DSTDEV / DSTDEVP | 條件標準差(樣本/母體) | DSTDEV(資料庫, 欄位, 條件區域) |
DVAR / DVARP | 條件變異數(樣本/母體) | DVAR(資料庫, 欄位, 條件區域) |
GETPIVOTDATA | 從樞紐分析表提取資料 | GETPIVOTDATA(資料欄位, 樞紐儲存格, [欄位1, 項目1]...) |
A1:E100),第一列必須為欄位名稱。"銷售額")或欄位索引號(如 5)。資料庫:A1:E100(標題:業務、產品、區域、數量、金額)
條件區域:G1:I2(標題:業務、區域、金額;條件:王小明、北區、>50000)
=DSUM(A1:E100, "金額", G1:I2) // 王小明在北區金額>5萬的總銷售額
=DAVERAGE(A1:E100, "金額", G1:I2) // 同條件平均單筆金額
=DCOUNT(A1:E100, "數量", G1:I2) // 符合條件的筆數(數量欄非空白)
=DGET(A1:E100, "產品", G1:I2) // 若只有一筆符合,回傳產品名;多筆報錯 #NUM!
| 特性 | 資料庫函數 (D*) | SUMIFS/COUNTIFS |
|---|---|---|
| 條件表達 | 獨立條件區域(儲存格),易維護、可動態輸入 | 公式內硬編碼或參考儲存格,條件多時公式極長 |
| OR 條件 | 條件區域多列 = OR,極直觀 | 需多個 SUMIFS 相加或用 SUMPRODUCT |
| 彙總函數種類 | 13 種(和、平均、計數、極值、統計量、乘積) | 僅 SUM/COUNT/AVERAGE/MIN/MAX(需配合其他函數) |
| 效能 | 大數據量較慢(掃描整資料庫) | 較快(優化演算法) |
| 適用場景 | 複雜多條件、條件頻變、需多種彙總、使用者自行輸入條件 | 固定條件、大數據量、高頻計算 |
專門從樞紐分析表抓資料,防止樞紐重新整理後參考位置錯誤。啟用方式:選單「選項」→「產生 GETPIVOTDATA」勾選,或直接在樞紐儲存格點擊產生公式。
