[算表] 個人訂單順序計算(VBA)目前使用Countif

看板Office作者 (軟糖)時間10年前 (2015/06/14 13:25), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
軟體: EXCEL 版本:2007,2010 大家好,由於工作上常需要計算"個人"的訂單順序。 簡單示意圖: 客戶編號 訂單編號 訂單順序 (系統會給) (系統會給) (自己要算) A Order1234 1 A Order1235 2 B Order1236 1 A Order1237 3 C Order1238 1 B Order1239 2 D Order1240 1 B Order1241 3 D Order1242 2 C Order1243 2 A Order1244 4 因此,我想說用Countif來算。 訂單數由上往下增加,因此單一會員的訂單筆數會 一直參考從最上面A$2到目前為止ROW的總數。 但這樣子,到後面的計算時間會愈拉愈長。 不知道是否有什麼其它的函數或VBA可以更有效率,謝謝。 目前寫出的VBA如下: Public Sub COUNTIF自動計算個人訂單順序 For i = 2 To Range("A2").End(xlDown).Row Cells(i, "F") = "=COUNTIF(A$2:A" & i & ",A" & i & ") Next End Sub 敘述不佳,還請各位大大見諒。 題目實際檔案 https://goo.gl/CdMxvF (Dropbox) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.22.82 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1434259532.A.36E.html

06/14 13:41, , 1F
While搭配select case應該會不錯意
06/14 13:41, 1F

06/14 16:05, , 2F
檔案內是將公式寫到儲存格內,再重新運算時效能會很差
06/14 16:05, 2F

06/14 16:07, , 3F
應可用worksheetfunction的方式countif後將值寫到儲存格內
06/14 16:07, 3F

06/14 16:11, , 4F
另外如果只是針對後來新增筆數來計數的話i的起始值,也可
06/14 16:11, 4F

06/14 16:12, , 5F
用range.end的方式來調整
06/14 16:12, 5F
文章代碼(AID): #1LVH1CDk (Office)
文章代碼(AID): #1LVH1CDk (Office)