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

作者: HIHICHEW (軟糖)   2015-06-14 13:25:30
軟體: 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)
作者: JamesGO (SquareFace)   2015-06-14 13:41:00
While搭配select case應該會不錯意
作者: soyoso (我是耀宗)   2015-06-14 16:05:00
檔案內是將公式寫到儲存格內,再重新運算時效能會很差應可用worksheetfunction的方式countif後將值寫到儲存格內另外如果只是針對後來新增筆數來計數的話i的起始值,也可用range.end的方式來調整

Links booklink

Contact Us: admin [ a t ] ucptt.com