當錄製巨集不足以處理條件彙總時,改用 VBA 建立 Region Summary,以 SUMIF 與 COUNTIF 彙總 Net Sales 與訂單筆數。
SUMIF/COUNTIF 在 VBA 中的應用。管理者希望快速知道 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 |
來源 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 金額更高,表示只看訂單數不足以判斷區域貢獻。
請根據 Region 與 Net Sales 明細,用 VBA 建立 North、South、East、West 的 Total Net Sales 與 Orders 摘要。請解釋 SUMIF、COUNTIF 與 R1C1 參照在程式碼中的角色。