返回列表 上一主題 發帖

[發問] 2個條件的加總

回復 4# stillfish00


    謝謝stillfish00, 因這檔案不只我使用, 所以希望能夠自動加總.已得到解答了,感謝!
learner

TOP

回復 5# sunnyso


    謝謝sunnyso, 試過你所提的SUMIFS, 可以使用.感謝!
learner

TOP

回復 6# kimbal


    c_c_lai 提供的程式碼已可以使用了,謝謝!
    而sunnyso所提的SUMIFS確實也是一個方法.
learner

TOP

回復 13# yliu
VBA用loop來做條件加總的效率並不會比SUMPRODUCT高

你的資料有多少筆?
ss

TOP

回復  c_c_lai


   謝謝 c_c_lai,
   可以使用了, 感謝~
  再請問一下,   
.Cells(lngVlookupRow, ...
yliu 發表於 2013-5-31 23:53

如果除以 4:
1  ( Int(0.25)=0), 2 ( Int(0.5))=0 ),     3( Int(0.75))=0 ),  '   第一季 (應為 0)
4(  Int(1))=1),      5( Int(1.25))= 1),    6( Int(1.5 ))=1),    '   第二季 (應為 1)
7( Int(1.75))= 1), 8( Int(2))=2 ),         9(  Int(2.25))=2),   '  第三季 (應為 2)
10(  Int(2.5))=2), 11( Int(2.75 ))=2),12(  Int(3))=3)          '  第四季 (應為 3)
除以 3.2:
1  ( Int(0.3125)=0), 2 ( Int(0.625))=0 ),     3( Int(0.9375))=0 ), '   第一季
4(  Int(1.25))=1),      5( Int(1.5625))= 1),   6( Int(1.875 ))=1),    '   第二季
7( Int(2.1875))= 2), 8( Int(2.5))=2 ),           9(  Int(2.8125))=2), '  第三季
10(  Int(3.125))=3), 11( Int(3.4375 ))=3),12(  Int(3.75))=3)       '  第四季
結論: .Cells(lngVlookupRow, Chr(79 + Int(lngCurrenMonth / 3.2))) =
              .Cells(lngVlookupRow, Chr(79 + Int(lngCurrenMonth / 3.2))) + lngCurrValue
1月  :.Cells(lngVlookupRow, Chr(79 + 0)) = .Cells(lngVlookupRow, Chr(79 + 0)) + lngCurrValue
             .Cells(lngVlookupRow, "O") = .Cells(lngVlookupRow, "O") + lngCurrValue    '  第一季
7月  :.Cells(lngVlookupRow, Chr(79 + 2)) = .Cells(lngVlookupRow, Chr(79 + 2)) + lngCurrValue
             .Cells(lngVlookupRow, "Q") = .Cells(lngVlookupRow, "Q") + lngCurrValue    '  第三季
11月:.Cells(lngVlookupRow, Chr(79 + 3)) = .Cells(lngVlookupRow, Chr(79 + 3)) + lngCurrValue
             .Cells(lngVlookupRow, "R") = .Cells(lngVlookupRow, "R") + lngCurrValue     '  第四季
此論得知,如以 3.2 作為分母除之、再以 Int() 來過濾,得值得以正確顯示,不致歸類錯誤。

TOP

本帖最後由 sunnyso 於 2013-6-1 08:40 編輯

回復 15# c_c_lai

應該把資料一次讀入陣列, 然後在VBA中計算成陣列,最後把計算好的陣列回傳到工作表。
減少物件讀寫次數VBA的效率才高

目前發現VBA的效率比SUMIFS低

可以參考這裏
http://forum.twbts.com/thread-9607-1-1.html
ss

TOP

回復 16# sunnyso
SUMIFS 的處理的確蠻簡潔的,值得研究及應用,
以往(工作)我是偏重於從事應用軟體與網頁應用方面,
從無機緣接觸過 Excel,退下後為幫助友人才開始接觸
Excel (新手), 是故較少使用此類似之函數,
謝謝你的指教! 它對我蠻有助益的,再次謝謝!

TOP

回復 15# c_c_lai

謝謝詳細說明
learner

TOP

回復 14# sunnyso

目前累積資料是700筆左右, 到年底應該會有2000筆.
本來只知道SUMIF 函數, 但SUMIF函數只限用於單一條件, 謝謝提供SUMIFS.
但SUMIFS應該是2010版本才有的函數.
learner

TOP

回復 16# sunnyso

請問: 程式碼中...Array("A類", "B類", "C類", "D類", "E類", "F類", "G類", "H類", "I類", "J類")
即若採用陣列,  就是當有新的類別項目時, 就需修改程式碼,例如:日後可能新增K類時, 就需修改程式是嗎?
那採用陣列方式就會受限制,是否有別的方式呢?
learner

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題