|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 WYS67 于 2020-4-5 09:34 编辑
次数比较.zip
(51.21 KB, 下载次数: 2)
存在的问题:当数据源为sheet1A5:A103,或shee2的E5:E1000时,可以显示正确结果;但当数据源为文本格式的数字,或因公式屏蔽错误而存在的空白时【如shee2的A5:A1000来自其它公式的计算结果,A579:A1000为公式形成的空白】,就会出现#VALUE!错误!
要求:1.当数据区域A列的上边、中间、下面【A104以下】为空时,B列对应行显示的计算结果也应为空白。
2.无论数据源里的数字是文本或者数值格式,都可以显示正确的计算结果。
3.当数据源为其它公式计算结果而存在的空白,或不可见字符时,也能显示正确的计算结果。
原代码:
Function CSBJ(rng As Range, tj As Variant)
Dim ar(), br(), m, n
ar = rng: ReDim br(1 To UBound(ar), 1 To 1)
For k = UBound(ar) To 1 Step -1
If ar(k, 1) <> "" Then Exit For
br(k, 1) = ""
Next
For i = 1 To k
If ar(i, 1) <> "" Then
n = n + 1: m = m + ar(i, 1)
br(i, 1) = Round(n - m / tj, 1)
Else
br(i, 1) = ""
End If
Next
CSBJ = br
End Function
提示:1.当数据源为sheet2的A5:A1000时,在B5:B1000里输入区域数组公式 { =CSBJ($A$5:$A$1000,$B$3),B5:B1000显示#VALUE!错误;
2.在sheet2的E5里,输入A列转换公式:=IF(A5="","",--A5),下拉至E1000;在F5:F1000里输入区域数组公式 { =CSBJ($E$5:$E$1000,$F$3),F5:F1000即可显示正确结果!
|
|