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

[µo°Ý] dictionary ¥Îªk

[µo°Ý] dictionary ¥Îªk

¥H¤U¬°§Úªºµ{¦¡½X:
  1. Dim Ar(), d As Object
  2. Set d = CreateObject("scripting.dictionary")
  3. Set dic = CreateObject("scripting.dictionary")
  4. Set dtemp = CreateObject("scripting.dictionary")
  5. Ar = Range("A6:E" & [E6].End(xlDown).Row)

  6. For i = 1 To UBound(Ar)
  7.   If Not dtemp.exists(Left(Ar(i, 2), 4)) Then
  8.   d.Add Ar(i, 2), Ar(i, 4)
  9.   dic.Add Ar(i, 2), Ar(i, 5)
  10.   dtemp.Add Left(Ar(i, 2), 4), Ar(i, 4)
  11.   Else
  12.   d(Ar(i, 2)) = d(Ar(i, 2)) + Ar(i, 4)
  13.   dic(Ar(i, 2)) = dic(Ar(i, 2)) + Ar(i, 5)
  14.   dtemp(Ar(i, 2)) = dtemp(Ar(i, 2)) + Ar(i, 4)
  15.   End If
  16. Next i
½Æ»s¥N½X
Ar ¦s©ñ¤@­Órange
¨ä§Î¦¡ªø³o¼Ë
§Ç        °Ó«~¦WºÙ              ¦¨¥æ³æ»ù        ÁʶR¼Æ¶q
1        131A ¹q¸£        150                 1,000
2        132A                 100                      0
3        55CR ¦B½c        800                      0
4        55CR               1200                  250
5        55CR               1150                  100

¦]¬°¦WºÙ¨Ã¥¼§¹¥þ¬Û¦P
·Q­n¥Îdictionary§¹¦¨¦U¶µ¥[Á`
¥i¬O¤£ª¾¹D¬°¦ódtemp¥i¥H¥[Á`
¦ý¬O d¸òdic´N¤£¦æ?
·PÁÂm(_ _)m

¦^´_  lalalada
·Q­n¥Îdictionary§¹¦¨¦U¶µ¥[Á`,¥i¬O¤£ª¾¹D¬°¦ódtemp¥i¥H¥[Á`,¦ý¬O d¸òdic´N¤£¦æ?
¬Ý¬Ý¬O ...
GBKEE µoªí©ó 2012-8-13 12:13


¦n¹³©Ç©Çªº...
³Ì«á¤@¬q
        d(xlword(1)) = d(xlword(1)) + Ar(i, 4)
        If xlword(1) <> xlword(2) Then dic(xlword(2)) = dic(xlword(2)) + Ar(i, 5)
        If xlword(3) <> "" Then dtemp(xlword(3)) = dtemp(xlword(3)) + Ar(i, 4)
·N«ä¤À§O¬O:
¥þ¦W = ¥N½X + «~¦W
¦r¨å1«Ø¥ßÃöÁä¦r(°O¿ý©Ò¦³ÃöÁä¦r¡A³¡¤À¬°¥þ¦W¡A³¡¤À¥u¦³¥N½X)
­Y¥Ø«eªº¥þ¦W¤£¥u¦³¥ªÃä¥N½X «h¦r¨å2(¬ö¿ý¦P®É¦³¥N½X+«~¦W¶µ)¥[¤JÃöÁä¦r¤Î¯Á¤Þ
­Y«~¦W¤£¬°ªÅ¥Õ«h¦r¨å3(¬ö¿ý¦P®É¦³¥N½X+«~¦W¶µ)¥[¤JÃöÁä¦r¯Á¤Þ
³o¼Ë¬Ý°_¨Ó³Ì«áµLªk§â©Ò¦³¬Û¦P¥N½Xªº²£«~¥[Á`¿é¥X?@@
ex. SSSL ¹q¸£   $100    50
      SSSL             $150    25
      SSSL             $50      100
¿é¥X¦¨
SSSL   ¹q¸£   175
³Ì«á¥Ø¼Ð¬O
SSSL   ¹q¸£   $¥­§¡»ù®æ  175

TOP

¥»©«³Ì«á¥Ñ lalalada ©ó 2012-8-13 16:09 ½s¿è

©êºp¤@¶}©l±Ô­z¤£²M
§Ú§â­ì¨Óªºcode¥[¤Wµù¸Ñ
  1. Dim Ar()
  2. Set d = CreateObject("scripting.dictionary")
  3. Set dic = CreateObject("scripting.dictionary")
  4. Set dtemp = CreateObject("scripting.dictionary")
  5. Ar = Range("A6:E" & [E6].End(xlDown).Row)

  6. For i = 1 To UBound(Ar)
  7.   If dtemp.exists(Left(Ar(i, 2), 4)) = False Then  '­Y¦r¨å3¥N½X¥¼¬ö¿ý
  8.   d(Ar(i, 2)) = Ar(i, 4)                            '¦r¨å1¬ö¿ý¥þ¦W¤Î¯Á¤Þ1
  9.   dic(Ar(i, 2)) = Ar(i, 5)                         '¦r¨å2¬ö¿ý¥þ¦W¤Î¯Á¤Þ2
  10.   dtemp(Left(Ar(i, 2), 4)) = Ar(i, 4)              '¦r¨å3¬ö¿ý¥N½X¤Î¯Á¤Þ
  11.     MsgBox "d:" & d(Ar(i, 2)) & d.keys & "  dic:" & dic(Ar(i, 2)) & " dtemp:" & dtemp(Left(Ar(i, 2), 4))
  12.   Else                                                             '­Y¦r¨å3¥N½X¤w°O¿ý
  13.   dtemp(Left(Ar(i, 2), 4)) = dtemp(Left(Ar(i, 2), 4)) + Ar(i, 4) '¦r¨å3¯Á¤Þ1¥[Á`
  14.   d(Ar(i, 2)) = d(Ar(i, 2)) + Ar(i, 4)                          '¦r¨å1(¥þ¦W)¯Á¤Þ1¥[Á`
  15.   dic(Ar(i, 2)) = dic(Ar(i, 2)) + Ar(i, 5)                    '¦r¨å2(¥þ¦W)¯Á¤Þ2¥[Á`
  16.     MsgBox "ELSE    ""d:" & d(Ar(i, 2)) & "  dic:" & dic(Ar(i, 2)) & " dtemp:" & dtemp(Left(Ar(i, 2), 4))
  17.   End If
  18. Next i

  19. [L6].Resize(d.Count, 1) = Application.Transpose(d.keys)          '¿é¥X¥þ¦W
  20. [M6].Resize(d.Count, 1) = Application.Transpose(d.items)      '¿é¥X¯Á¤Þ1
  21. [N6].Resize(dic.Count, 1) = Application.Transpose(dic.items) '¿é¥X¯Á¤Þ2
½Æ»s¥N½X
´«¥y¸Ü»¡
§Æ±æ³Ì«á¯à¿é¥X¦r¨å1ªº¥þ¦W©M¦r¨å3ªº¯Á¤Þ­È...."
¥Ø«e°ÝÃD¥d¦b·í±ø¥ó¬°§_
dtemp¥i½T¹ê¥[Á`¦ýd,dic¤£¦æ(¥Ñmsgbox¥i¥HÆ[¹î¨ì)
·PÁª©¤j¦^´_:)
¥»¨Ó¥H¬°¤w¸g¨I¨ì¶³²`¤£ª¾³B

TOP

¥»©«³Ì«á¥Ñ lalalada ©ó 2012-8-13 16:38 ½s¿è
¦^´_  lalalada
½Ð¶Ç¤WexcelÀÉ®×
GBKEE µoªí©ó 2012-8-13 16:09


ªü ©êºp
§¹¥þ§Ñ°O¥i¥H¤W¶Ç...
§Ú¯u²Â..."
­è­è­«¼g¤F¥ÎDo...Loopªº°µªk
¤]ªþ¦bÀɮ׸Ì
dictionaryªº¤èªk code¸Ìªº°Ñ·Ó¦ì¸m­nµy·L½Õ¾ã¤@¤U¤~¯à¥Î

ProductList.zip (15.97 KB)

TOP

¦^´_ 6# lalalada

Àɮ׸̪ºcode¶K¦¨¨Sµù¸Ñª©ªº¤F..."

ProductList.zip (15.97 KB)

TOP

¦^´_ 8# GBKEE

§Ú·|¤F!:P
­ì¨Ó°}¦C³o»ò¦n¥Î...
¥»¨Ó¤£¼ô¥H¬°¤Ï¥¿¥i¥H¥ÎÀx¦s®æ¨ú¥N §Ú­n¦A¦h¬ã¨s..
¦Ó¥Bdictionary³ºµM¥i¥Hª½±µ«ü©w°}¦C
³o¦¸¯uªºÀò¯q¨}¦h
·PÁª©¤j!:)

TOP

        ÀR«ä¦Û¦b : ¡i®É¤é²öªÅ¹L¡j¤@­Ó¤H¦b¥@¶¡°µ¤F¦h¤Ö¨Æ¡A´Nµ¥©ó¹Ø©R¦³¦hªø¡C¦]¦¹¥²¶·»P®É¶¡Ävª§¡A¤Á²ö¨Ï®É¤éªÅ¹L¡C
ªð¦^¦Cªí ¤W¤@¥DÃD