- ©«¤l
- 1451
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1475
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2025-8-22
|
ÁÂÁ½׾Â,ÁÂÁ¦U¦ì«e½ú
¥H¤U¬O½m²ß±q¦r¨å¤¤´£¨ú¸ê®Æ¨ì·s¼Wµù¸Ñªº¤è®×,½Ð¦U¦ì«e½ú«ü±Ð
°õ¦æµ²ªG:
Option Explicit
Sub TEST1()
Dim Brr, Crr(1 To 1000, 1 To 5), A, V, Z, K, i&, N&, R&, X&, T$, T1$, T2$, T3$, T4$, xR As Range
Set Z = CreateObject("Scripting.Dictionary")
Application.Goto [©³½Z!H1:O1]
[I:O].Delete
Brr = Range([E1], [B65536].End(3)(1, 0))
For i = 2 To UBound(Brr)
T1 = Format(Brr(i, 1), "YYYY/MM/DD"): T2 = Brr(i, 2): T3 = Brr(i, 3)
V = Val(Brr(i, 5))
T4 = Brr(i, 4)
If T3 = "®M¥ó¤÷¶µ" Then
T = T4
If Not Z.Exists(T) Then
Z(T) = Crr: A = Crr
N = N + 1: Z(T & "/") = N
Brr(N, 1) = T: Brr(N, 2) = V
Else
A = Z(T)
Brr(Z(T & "/"), 2) = Brr(Z(T & "/"), 2) + V
End If
GoTo i01
End If
R = Z(T & "/" & T4)
If R = 0 Then
Z(T & "|") = Z(T & "|") + 1
A(Z(T & "|"), 1) = T4
A(Z(T & "|"), 2) = T
Z(T & "/" & T4) = Z(T & "|")
Z(T & "/" & T4 & "//") = "¤é´Á ³æ¾Ú½s¸¹ ²£«~Ãþ«¬ ª«®Æ½s½X ¹êµo¼Æ¶q"
R = Z(T & "|")
End If
A(R, 3) = A(R, 3) + V
Z(T) = A
Z(T & "/" & T4 & "//") = Z(T & "/" & T4 & "//") & vbLf & Join(Array(T1, T2, T3, T4, V), "__")
i01: Next
Set xR = [I2]
For Each K In Z.Keys
If IsArray(Z(K)) Then
xR.Resize(Z(K & "|"), 3) = Z(K)
Set xR = xR(Z(K & "|") + 1)
X = X + Z(K & "|")
End If
Next
With [H2].Resize(X, 4)
.Sort KEY1:=.Item(2), Order1:=1, Key2:=.Item(3), Order2:=1, Header:=2
.Columns(1) = "=""®M®Æ"" &COUNTIF($I$2:I2,I2)"
For i = 1 To X
T = Z(.Cells(i, 3) & "/" & .Cells(i, 2) & "//")
With .Cells(i, 2).AddComment
.Text Text:=T
.Shape.TextFrame.Characters.Font.Size = 12
.Shape.DrawingObject.AutoSize = True
End With
Next
End With
[H1:O1] = Array("®M®Æ", "®M¥ó¤l¶µ", "®M¥ó¤÷¶µ", "¹êµo¼Æ¶q", , , "®M¥ó¤÷¶µ", "¹êµo¼Æ¶q")
With [N2].Resize(N, 2)
.Value = Brr
.Sort KEY1:=.Item(1), Order1:=1, Header:=2
End With
[H:O].Columns.AutoFit
End Sub |
|