[算表] 个人订单顺序计算(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