本文提供第 2 組多層交叉匯總練習範本,結構與練習一不同:採用 **三層上表頭** (年份 → 季度 → 月份) 與 **單層左表頭** (業務員),適合銷售績效月度趨勢分析場景。
報表結構速覽
- 上表頭 (3 層橫向):年份 → 季度 → 月份 (時間維度下鑽)
- 左表頭 (1 層縱向):業務員
- 資料區:銷售額 SUM、達成率 AVG、客戶數 COUNT
單元格佈局對照
| 儲存格 | 公式 | 擴展方向 | 層級 |
| B1 | =ds1.group(年份, false) | 橫向 | L1 |
| B2 | =ds1.group(季度, false) | 橫向 | L2 (父 B1) |
| B3 | =ds1.group(月份, false) | 橫向 | L3 (父 B2) |
| A4 | =ds1.group(業務員, true) | 縱向 | L1 |
| B4 | =ds1.sum(銷售額) | 交叉 | - |
| C4 | =ds1.avg(達成率) | 交叉 | - |
| D4 | =ds1.count(客戶ID) | 交叉 | - |
進階應用技巧
- 動態標題:報表標題用
= "銷售趨勢 " + ds1.max(年份) + " 年" 自動帶入年度
- 條件格式:達成率 < 80% 標紅、> 120% 標綠,快速識別異常
- 穿透下鑽:設定月份欄位超連結,點擊跳轉明細報表 (
drilldown.raq?year=...&month=...&emp=...)
- 固定凍結:左表頭 (業務員) 設定凍結列,橫向捲動時保持可見
常見錯誤與修正
| 錯誤現象 | 原因 | 修正 |
| 季度/月份順序錯亂 | group 排序參數未指定或資料本身無序 | 資料集加 ORDER BY 年份, 季度, 月份;group 第 2 參數 false 升序 |
| 達成率顯示整數 | 資料型別為 INT,除法截斷 | 轉型 =ds1.avg(CAST(達成率 AS FLOAT)) 或資料集預先 * 1.0 |
| 總計行重複 | 縱向群組重複觸發總計 | 總計公式放於報表尾區塊,非群組內 |
對比兩組練習的設計哲學
| 維度 | 練習一 (產品×地區) | 練習二 (時間×業務員) |
| 上表頭層數 | 2 層 (平行維度) | 3 層 (階層維度/時間下鑽) |
| 左表頭層數 | 2 層 (產品類別→產品) | 1 層 (業務員) |
| 指標類型 | 雙加總 (銷售額/數量) | 加總+平均+計數 (混合彙總) |
| 業務問題 | 庫存/產品組合分析 | 績效趨勢/季節性洞察 |
完成兩組練習,你將具備從扁平化資料集快速建構任意維度交叉報表的核心能力。