2022年11月24日 星期四

VBA_反樞紐

             在工作上看過很多人習慣用表格呈現資料,不過不是以樞紐表,而是用輸入的方式,這在分析運用上很沒彈性,剛好有一個表格要資料化,本來想用Power Query處理,後來還是決定寫VBA,避免Power Query會一直重複查詢,而且很多人喜歡把不同部門資料放在同一個工作表內,這時還是用VBA比較快。

           在家裡弄了個簡單版,隔天上工可以快速修改用上。


Sub A0_反樞紐()

    '2022/11/24 22:35

    Dim arr_資料()

    With ActiveSheet

        br = 3

        lr = .Cells(br, 1).End(xlDown).Row

        lc = .Cells(br, 1).End(xlToRight).Column

        n = 0

        For i = br To lr

            in_代碼 = .Cells(i, 1)

            in_名稱 = .Cells(i, 2)

            For c = 1 To 16 '12個月+4季

                in_月份 = .Cells(1, c * 2 + 1)

                in_噸數 = .Cells(i, c * 2 + 1)

                in_金額 = .Cells(i, c * 2 + 2)

                

             n = n + 1

             ReDim Preserve arr_資料(1 To 5, 1 To n)

             arr_資料(1, n) = in_代碼

             arr_資料(2, n) = in_名稱

             arr_資料(3, n) = in_月份

             arr_資料(4, n) = in_噸數

             arr_資料(5, n) = in_金額

            Next

        Next

    

        .Range("A19").Resize(n, 5) = Application.Transpose(arr_資料)

    

    End With


End Sub





  • 很多人喜歡用的表格方式,這裡簡單的表達一下

類樞紐表格
類樞紐表格

  • VBA執行完就能呈現如下面的資料


表格資料化
表格資料化

  • 執行完作了個驗證,確認資料正確


比對資料
比對資料


沒有留言:

張貼留言

用GPT修改M語法_以日期列處理

在2023年GPT開始使用時我就詢問過GPT,可能當時的GPT還不夠聰明,給予的答案無法運行,我認為原始的語法應該可以更聰明點,詢問過Power BI社群的人,但沒有人提供答案,終於在現在再度詢問GPT給予的答案與我思考的方向依樣,只是我懂得語法不多,透過GPT幫忙解答,我也學到...