ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ­«½Æ­È¤£¦P²Õ¦X

[µo°Ý] ­«½Æ­È¤£¦P²Õ¦X

½Ð°Ý¡A¦³¤@®M¥ó¥X®w³æ¤u§@©³½Z¡A¨C¤@­Ó®M¥ó¤l¶µ¥i¥H²Õ¦X¦¨¤£¦Pªº®M¥ó¤÷¶µ¡A¬Û¦Pªº®M¥ó¤÷¶µ¤]¥i¯à¦³¤£¦Pªº®M¥ó¤l¶µ¡A­n²Î­p¨C¤@®M¥ó¤l¶µ¹ïÀ³¤£¦P®M¥ó¤÷¶µªº¶µªº¹êµo¼Æ¶q¡A©Ò¥H¦b©³½Z·s¼WFÄæ»²§UÄæ¡AµM«á°µ¤F¼Ï¯Ã¤ÀªR¡AµM«á¦A°µ¥X»Ý¨Dµ²ªG¦p¹ÏªºAÄæ ¥X®w³æ½d¨Ò.zip (49.95 KB) ¡A½Ð°Ý¦³¨S¦³¤½¦¡¥i¥Hª½±µ¦b©³½Z°µ¥X¹Ï¤ùªºµ²ªG¡AÁÂÁ¡C

©³½Z!F2 ¤U©Ô=IF(C2=C$2,D2,F1)
¥Î©³½ZFÄæ»²§U=SUMPRODUCT((B2&C2=©³½Z!D$2:D$579&©³½Z!F$2:F$579)*©³½Z!E$2:E$579)
¤£¥Î©³½ZFÄæ»²§U=SUMPRODUCT((B2&C2=©³½Z!D$2:D$579&LOOKUP(ROW(2:579),ROW(2:579)/(©³½Z!C$2:C$579=©³½Z!C$2),©³½Z!D$2:D$579))*©³½Z!E$2:E$579)
google"EXCEL°g"  blog  ©Îgoogleºô§}:https://hcm19522.blogspot.com/

TOP

¦^´_ 1# shootingstar


    ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

°õ¦æ«e:


°õ¦æµ²ªG:


Option Explicit
Sub TEST()
Dim Brr, Crr(1 To 1000, 1 To 3), A, V, Z, K, i&, N&, R&, X&, T$, 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)
   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 & "|")
      R = Z(T & "|")
   End If
   A(R, 3) = A(R, 3) + V
   Z(T) = A
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)"
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
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

ÁÂÁ½׾Â,ÁÂÁ¦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
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¥@¤W¦³¨â¥ó¨Æ¤£¯àµ¥¡G¤@¡B§µ¶¶ ¤G¡B¦æµ½¡C
ªð¦^¦Cªí ¤W¤@¥DÃD