二、原始資料:參圖1. 小小編自己抓下來已預先整理成這樣了
圖1.原始資料
三、期望結果:參圖2.;小編心想透過產業別跟月份掌握營收變化,先簡單模擬一下。
圖2.期望結果
四、實作:
4.1 SUMPRODUCT 公式驗證:
小編在C2儲存格中做如下公式編輯:
= SUMPRODUCT((產業別="水泥工業")*(月份="109/04"),當月營收)
P.S產業別、月份、當月營收等行別要預先做"定義名稱"的設定歐
說明:紅框圍比對的字串
4.2 開始來動手做VBA自動化:
規劃:
圖4.
4.3 vba code:作一個按鈕放入以下內容。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Application.ScreenUpdating = False | |
Application.DisplayStatusBar = False | |
Application.Calculation = xlCalculationManual | |
Application.EnableEvents = False | |
S1 = Sheets("OUT").Range("z2000").End(xlUp).Row | |
S2 = Sheets("OUT").Range("Aa2000").End(xlUp).Row | |
Tag = Sheets("OUT").Range("Z1:Z" & S1) | |
Tag = WorksheetFunction.Transpose(Tag) | |
DATAA = Sheets("OUT").Range("AA1:AA" & S2) | |
DATAA = WorksheetFunction.Transpose(DATAA) | |
TOPIC = Array("產業別", "月份", "當月營收", "去年當月營收", "年增減(%)") | |
Sheets("OUT").Range("A1:E1") = TOPIC | |
For I = LBound(Tag) To UBound(Tag) Step 1 | |
S3 = Sheets("OUT").Range("A10000").End(xlUp).Row | |
For J = LBound(DATAA) To UBound(DATAA) Step 1 | |
Sheets("OUT").Range("A" & J + S3) = Tag(I) | |
Sheets("OUT").Range("B" & J + S3) = DATAA(J) | |
Sheets("OUT").Range("C" & J + S3).Formula = "= SUMPRODUCT((產業別=" & Chr(34) & Tag(I) & Chr(34) & ")*(月份=" & Chr(34) & DATAA(J) & Chr(34) & "),當月營收)" | |
Sheets("OUT").Range("C" & J + S3).Calculate | |
Sheets("OUT").Range("D" & J + S3).Formula = "= SUMPRODUCT((產業別=" & Chr(34) & Tag(I) & Chr(34) & ")*(月份=" & Chr(34) & DATAA(J) & Chr(34) & "),去年當月營收)" | |
Sheets("OUT").Range("D" & J + S3).Calculate | |
Sheets("OUT").Range("E" & J + S3).Formula = "=(C" & J + S3 & "-D" & J + S3 & ")/D" & J + S3 | |
Sheets("OUT").Range("E" & J + S3).Calculate | |
Next J | |
Next I | |
S3 = Sheets("OUT").Range("A10000").End(xlUp).Row | |
Sheets("OUT").Range("A2:E" & S3).Copy | |
Sheets("OUT").Range("A2").PasteSpecial xlPasteValuesAndNumberFormats | |
Application.ScreenUpdating = True | |
Application.DisplayStatusBar = True | |
Application.Calculation = xlCalculationAutomatic | |
Application.EnableEvents = True | |
以上為主要透過sumproduct整理資料的code內容。
4.4 關鍵字集:如下,小編是放在Z與AA兩行;請與程式碼對照,透過關鍵字集來寫入4.1中的公式字串組合別。
沒有留言:
張貼留言