|
  
|
[心得分享] 有d情況先sorting,可以少用1個loop,做到加速效果
本帖最後由 bongbong3481 於 2023-12-3 12:01 編輯
有個excel table 1 有5萬行,要grouping 再transpose 變成table 2咁。
如果吾sorting ,寫Excel vba ,要用2個for loop ,行著好耐都未完成。 如果轉用array 可以快好多,不過都是耐。
如果先sorting Col A ,只需要用1個for loop 就得,速度就快好多,非常快
Excel table 1
colA colB
A 1
B 3
A 2
B 4
C 6
B 5
Excel table 2
colA colB
A 1 2
B 3 4 5
C 6- Sub group_transpose()
- temp = Cells(1, 1)
- row_n = 2
- Count = 1
- Last_row = 7
- For i = 2 To Last_row
- If Cells(i, 1) <> temp Then
- Count = 1
- temp = Cells(i, 1)
- Cells(row_n, 4) = Cells(i, 1)
- Cells(row_n, 4 + Count) = Cells(i, 2)
- row_n = row_n + 1
-
- Else
- Count = Count + 1
- Cells(row_n - 1, 4 + Count) = Cells(i, 2)
- End If
- Next i
- End Sub
複製代碼 |
|
|
|