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

[µo°Ý] SUMPRODUCT-VBA°ÝÃD½Ð±Ð

[µo°Ý] SUMPRODUCT-VBA°ÝÃD½Ð±Ð

DEAR  ALL ¤j¤j
1.SHEET1 RANGE¸ê®Æ»¡©ú¦p¤U
  1.1  AÄæ=¤H­û¸ê®Æ®w  BÄæ=¤é´Á¸ê®Æ®w  CÄæ=¥[¯Z®É¼Æ¸ê®Æ®w    EÄæ=¹w¬d´M¤§ALL¤H­û¦WºÙ   FÄæ=«ü©w¤ë¥÷(10301)¤§¸Ó­ûÁ`¥[¯Z®É¼Æ
     ¨Ò   A        B            C            E      F(10301)
            Ã¹   1030102             5            Ã¹        10
             Ĭ   1030506        5           Ä¬          0
            ´¿   1030125        5            
            Ã¹   1030109        5
            Ã¹    1031212       5
2.¦p¹Ï¤@  ¤p§Ì¬d´M¦³«e½ú¼gÃþ¦üSUMIF¤è¦¡.¤p§Ì­×§ï«á¶È¥i§ì¨ú  ¹ïÀ³ AÄæ ¤§ C Äæ¥[Á`  ¦p¦ó¥[¤J BÄæ ®É¶¡=10301¤§±ø¥ó
     Ãþ¨ç¼ÆSUMPRODUCT¤§¦h±ø¥ó¤è¦¡.·Ð¤£§[½ç±Ð   THANKS      

¹Ï¤@
Sub TTT()
  Dim ds As Object, arr1, arr2, i&
  Set ds = CreateObject("Scripting.Dictionary")
  With Sheet1
    arr2 = .Range(.[a2], .[C2].End(xlDown))
  End With
  With Sheet1
    arr1 = .Range(.[E2], .[E2].End(xlDown))
    For i = 1 To UBound(arr1)
      ds(arr1(i, 1)) = 0
    Next i
    For i = 1 To UBound(arr2)
      ds(arr2(i, 1)) = ds(arr2(i, 1)) + arr2(i, 3)
    Next i
    .[F2].Resize(ds.Count, 1) = Application.Transpose(ds.items)
    End With
    Set ds = Nothing

  End Sub
ù

        ÀR«ä¦Û¦b : ¡i®É¶¡¦¨´N¤@¤Á¡j®É¶¡¥i¥H³y´N¤H®æ¡A¥i¥H¦¨´N¨Æ·~¡A¤]¥i¥HÀx¿n¥\¼w¡C
ªð¦^¦Cªí ¤W¤@¥DÃD