|
我写了一段代码,放在表单“工单”中,会在f列生成对应的订单数量。与你的要求还有区别,因为我还没完全搞清楚你公式的含义,后面我有说明。
由于订单数量很大,整个运行需要2分20秒:
Range(Cells(1, 6), Cells([a10000].End(3).Row, 6)).ClearContents
Cells(1, 6) = "转化率"
Application.ScreenUpdating = False
Dim arr
arr = Worksheets("订单").[a2:c25694]
For i = 2 To [a10000].End(3).Row
s1 = Cells(i, 2)
s2 = Cells(i, 4)
js = 0
For k = 1 To UBound(arr)
If (arr(k, 1) = s1) And (DateDiff("n", s2, arr(k, 2)) <= 1440) And (arr(k, 3) <> "#") Then
js = js + 1
arr(k, 3) = "#"
End If
Next k
Cells(i, 6) = js
Next i
Application.ScreenUpdating = True
1、你的问题我还是没弄清楚,所以我只能先产生一个订单数,至于转化率=工单/订单*100这个公式,我有疑问,我总觉得这个公式是反的;
2、如果同一车辆有多个工单,每个工单产生的订单是分别独立计算的,在“工单”表中的每一行都有一个统计结果就是这个原因。我不清楚你是否要把同一车辆牌照的工单所产生的订单都合并起来,如果需要合并,还需要做二次汇总,但这已经不是重点了。你要是会字典,简单几行代码就能搞定;
3、你可以在上述代码的基础上根据需要适当修改; |
|