一、案例定位

當錄製巨集不足以處理條件彙總時,改用 VBA 建立 Region Summary,以 SUMIF 與 COUNTIF 彙總 Net Sales 與訂單筆數。

二、學習目標

三、案例情境

管理者希望快速知道 North、South、East、West 四區的 Net Sales 總額與訂單筆數。來源將這個較複雜的 Scenario 設計成「觀察錄製巨集限制,再用 ChatGPT 產生 VBA」。

四、開始資料

Region Total Net Sales Orders
North 115536 3
South 88040 3
East 45090 2
West 61720 2

五、Excel 分析方法

來源 VBA:

Sub CreateSummary()
    Range("K4:M4").Value = Array("Region", "Total Net Sales", "Orders")
    Range("K5:K8").Value = Application.Transpose(Array("North", "South", "East", "West"))
    Range("L5:L8").FormulaR1C1 = "=SUMIF(R5C4:R14C4,RC[-1],R5C9:R14C9)"
    Range("M5:M8").FormulaR1C1 = "=COUNTIF(R5C4:R14C4,RC[-2])"
    Range("K4:M8").Columns.AutoFit
End Sub

六、計算結果

四區合計 Net Sales = 310,386,訂單數 = 10。各區結果為 North 115,536/3、South 88,040/3、East 45,090/2、West 61,720/2。

七、結果分析與管理解讀

North 的 Net Sales 最高,占總額約 37.22%;East 最低,占約 14.53%。North 與 South 都有 3 筆訂單,但 North 金額更高,表示只看訂單數不足以判斷區域貢獻。

八、AI Prompt

請根據 Region 與 Net Sales 明細,用 VBA 建立 North、South、East、West 的 Total Net Sales 與 Orders 摘要。請解釋 SUMIF、COUNTIF 與 R1C1 參照在程式碼中的角色。

九、思考/What-if