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

[µo°Ý] ¦p¦ó´£°ª¦h±ø¥ó¥[Á`®Ä²v SUMIFS vs SUMPRODUCT vs VBA

¦^´_ 39# ML089

¦³bug¡A §ï爲
  1. Sub ss_test()
  2.     alltype = Array("AÃþ", "BÃþ", "CÃþ", "DÃþ", "EÃþ", "FÃþ", "GÃþ", "HÃþ", "IÃþ", "JÃþ")
  3.     aj = "DÃþ"
  4.     Debug.Print UBound(Split(Split(¡§ ¡¨ & Join(alltype, "|"), aj)(0), "|"))
  5.    
  6.     Stop
  7. End Sub
½Æ»s¥N½X
ss

TOP

¦^´_ 39# ML089

¦n¹³ÁÙ¬O loop §Ö
  1. Sub sonny3_v3() 'VBA split+join
  2.     t1 = Timer
  3.     Dim RowsCnt, m, SubTotalAr() As Double
  4.     Dim DataArea As Variant
  5.     Dim i%, j%
  6.     AllType = " AÃþ|BÃþ|CÃþ|DÃþ|EÃþ|FÃþ|GÃþ|HÃþ|IÃþ|JÃþ"
  7.     ReDim SubTotalAr(0 To 9, 0 To 11)
  8.     Application.ScreenUpdating = False
  9.     With Sheets("­ì©l¸ê®Æ")
  10.         RowsCnt = .Range("A1").CurrentRegion.Rows.Count
  11.         DataArea = .Range("A2").Resize(RowsCnt - 1, 3)
  12.         For m = 1 To UBound(DataArea)
  13.             i = UBound(Split(Split(AllType, DataArea(m, 1))(0), "|"))
  14.             j = -1
  15.             Do
  16.                 j = j + 1
  17.             Loop Until Month(DataArea(m, 2)) = (j + 1)
  18.             SubTotalAr(i, j) = SubTotalAr(i, j) + DataArea(m, 3)
  19.         Next m
  20.     End With
  21.    
  22.     With Sheets("Á`ªí")
  23.         .Range("B4").Resize(9 + 1, 12) = SubTotalAr
  24.         .Range("B14:R14").FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
  25.         .Range("N4:N13").FormulaR1C1 = "=SUM(RC[-12]:RC[-1])"
  26.         .Range("O4:R13").FormulaR1C1 = "=SUM(RC[-13]:RC[-11])"
  27.     End With
  28.     Application.ScreenUpdating = True
  29.     t2 = Timer
  30.     MsgBox "¯Ó®É" & t2 - t1
  31. End Sub
½Æ»s¥N½X
ss

TOP

¥»©«³Ì«á¥Ñ sunnyso ©ó 2013-7-1 09:56 ½s¿è

¦^´_ 42# ML089

§¹¥þ¦P·N
¥t¥[

VBA¥Î°}¦C¡A´î¤ÖŪ¼gworksheet¦¸¼Æ

Worksheet ´î¤Ö¥Î°}¦C¤½¦¡ ¡]ctrl+shift+Enter)
ss

TOP

¥»©«³Ì«á¥Ñ sunnyso ©ó 2013-7-1 10:24 ½s¿è
¦^´_  ML089

§¹¥þ¦P·N
¥t¥[

VBA¥Î°}¦C¡A´î¤ÖŪ¼gworksheet¦¸¼Æ

Worksheet ´î¤Ö¥Î°}¦C¤½¦¡ ¡]ctrl+shift+Enter)

sunnyso µoªí©ó 2013-7-1 09:53


¤£­nª[µø»²§UÄæ¡A¦]爲°}¦C¤½¦¡¤ñ»²§UÄæºC

°}¦C¤½¦¡¾A¦X¤p«¬­pºâ¡A¡]©M¾Ç²ß½m¥\¡^
ss

TOP

¦^´_ 47# ML089

·PÁÂML089,
ss

TOP

        ÀR«ä¦Û¦b : ¡i¬O§_µo´§¤F¨}¯à¡H¡j¤H¶¡¹Ø©R¦]¬°µu¼È¡A¤~§óÅã±o¬Ã¶Q¡CÃø±o¨Ó¤@½ë¤H¶¡¡AÀ³°Ý¬O§_¬°¤H¶¡µo´§¤F¦Û¤vªº¨}¯à¡A¦Ó¤£­n¤@¨ý¨Dªø¹Ø¡C
ªð¦^¦Cªí ¤W¤@¥DÃD