|
楼主 |
发表于 2020-4-8 23:48
|
显示全部楼层
32 当前遗漏及分区公式.zip
(116.73 KB, 下载次数: 0)
老师:《当前遗漏举例》的P:Q列是用您28楼自定义函数输入的公式,计算结果完全正确!只是第二参数【指定数据】只能输入单值,遇到类似N5:N60那样,指定条件为多值的情况,只能通过输入普通公式下拉来完成,如果指定条件很多时,运算速度就会降低很多!
能不能在全盘保留原代码计算功能的基础上,当需要计算的条件数据很多时,增加第二参数可以为指定条件区域,输入为区域数组公式,如选定P5:P60,输入区域数组公式 { =DQYL($I$5:$I$10252,$N5:$N60);选定Q5:Q60,输入区域数组公式 { =DQYL($I$5:$I$10252,$N5:$N60,1001),即可显示如P5:Q60的计算结果。这样可以大大提高公式计算速度!
附:原代码如下--
Function DQYL(qu As Range, tq As Range, Optional tj = "")
Application.Volatile
Set x = qu.Worksheet.Rows("4:4").Find(What:="序号", LookAt:=xlPart)
br = Range(qu.Worksheet.Cells(5, x.Column), qu.Worksheet.Cells(qu.Count + 4, x.Column))
ar = qu
For k = UBound(ar) To 1 Step -1
If ar(k, 1) <> "" Then Exit For
Next
For i = k To 1 Step -1
t = t + 1
If tj = "" Then DQYL = t Else DQYL = tj - br(i, 1)
If ar(i, 1) = CLng(tq) Then Exit For
Next
End Function
麻烦老师让第二参数指定为单值时,仍然执行上面代码的计算功能;指定为条件区域【即多值计算】时,采取区域数组公式输入方式。
|
|