返回列表 上一主題 發帖

[發問] ListBox與排序加總問題

資料相關加總問題

如圖示有A-E欄

判斷A.B.C.D欄如果為一致

就為一組資料

再去做E欄的加總  如附圖   

原本想用錄製巨集

但是假如資料一多

怕會有很多地方lose掉

還請問各位行家該如何著手這個問題><"
加總1.jpg 加總2.jpg
加總.zip (16.9 KB)

TOP

Sub TEST()
Dim Arr, Brr, xD, Dn&, T$, N&, i&, j%
Arr = Range([A1], Cells(Rows.Count, 1).End(xlUp)(1, 5))
Set xD = CreateObject("Scripting.Dictionary")
ReDim Brr(1 To UBound(Arr), 1 To 5)
For i = 2 To UBound(Arr)
  For j = 1 To 4: T = T & "/" & Arr(i, j): Next
    Dn = xD(T)
    If Dn = 0 Then
     N = N + 1: Dn = N: xD(T) = N
     For j = 1 To 4: Brr(Dn, j) = Arr(i, j): Next
    End If
    Brr(Dn, 5) = Brr(Dn, 5) + Val(Arr(i, 5)): T = ""
Next i
If N > 0 Then [H2].Resize(N, 5) = Brr
End Sub

Xl0000035.rar (16.73 KB)
 

TOP

回復 2# 准提部林


    回版大
    對耶這是我想要的結果
    可以再麻煩版大解說一下程式碼的部分嗎
    我想讓自己去嘗試做變動

TOP

回復 1# starbox520
樞紐分析表細部調整後也能達成
  1. Sub test()
  2.     Dim rngData As Range: Set rngData = Sheets("工作表1").Range("A1:E33")
  3.     Dim arKeyFields: arKeyFields = Array("CR", "LN", "PG", "BE")
  4.     Dim sumField: sumField = "QQ"

  5.     Dim pvt As PivotTable, i, x
  6.     With Sheets.Add
  7.         Set pvt = ActiveWorkbook.PivotCaches.Create( _
  8.                 SourceType:=xlDatabase, _
  9.                 SourceData:=rngData, _
  10.                 Version:=xlPivotTableVersion14 _
  11.             ).CreatePivotTable(TableDestination:=.[A1])
  12.     End With
  13.     With pvt
  14.         .InGridDropZones = False
  15.         .ShowDrillIndicators = False
  16.         .DisplayFieldCaptions = True
  17.         .RowGrand = False
  18.         .ColumnGrand = False
  19.         .RowAxisLayout xlTabularRow
  20.         i = 1
  21.         For Each x In arKeyFields
  22.             .PivotFields(x).Orientation = xlRowField
  23.             .PivotFields(x).RepeatLabels = True
  24.             .PivotFields(x).Subtotals(1) = False
  25.             .PivotFields(x).Position = i
  26.         Next
  27.         .AddDataField .PivotFields(sumField), "加總 - " & sumField, xlSum
  28.     End With
  29. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 2# 准提部林

不好意思想再修正一下

如果資料型態改成工作表2

一樣想跑出工作表1的樣子呢

3.png [attach]

Xl0000040.rar (27.6 KB)

TOP

回復 4# stillfish00


    回大大因為我沒用過樞紐分析表
    剛剛試了好幾回都弄不出來
    如果用此功能
    資料型態改成附圖這樣
    一樣能夠跑出我想要的資料嗎
    3.png Xl0000040.rar (27.6 KB)

TOP

回復 6# starbox520
4# 漏了 i=i+1

你再改第一行的資料範圍就好了
Set rngData = Sheets("工作表2").Range("A1:G33")
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 7# stillfish00


    回S大
    方便放檔案給我看嗎
    我加上去後一直出現錯誤><"

TOP

回復 5# starbox520


Xl0000160_v1.rar (21.03 KB)

TOP

回復 9# 准提部林


    回大大
   有沒有辦法在按完鈕後(C,E)欄都不要呢
    只跑出像這樣就好
16100700282e1bc39c43ab0122.png

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題