我正在编写一个用户定义函数(UDF),它以一些单元格作为参数。这些单元格包含相同的数据,但精度不同;该功能显示可用的最佳精度。
函数的参数按精度升序编写。
这是一个例子:
+---+-----------------+---------------------+
| | A | B |
+---+-----------------+---------------------+
| 1 | Best | =get_best(B5;B4;B3) |
| 2 | | |
| 3 | provisional | 1 |
| 4 | definitive | 2 |
| 5 | etched in stone | 12 |
+---+-----------------+---------------------+
函数显示 12,因为单元格 B5 中的信息比 B4 和 B3 具有更好的价值。由于这个原因,B5 在公式参数中写在 B4 和 B3 之前。
我的UDF的代码如下:
Public Function get_best(r1 As Range, r2 As Range, r3 As Range) As Variant
get_best = ""
If r3.Value <> "" Then get_best = r3.Value Else
If r2.Value <> "" Then get_best = r2.Value Else
If r1.Value <> "" Then get_best = r1.Value
End Function
有用!但我想对其进行编辑,以便它可以像=get_best(B7;B6;B5;B4;B3)
. 我怎么能那样做?
有用的评论: “单元格 B5 比 B4 和 B3 具有更好的值”意味着,例如,在 B3 中,您具有 12 个月前计算的预测值。在单元格 B5 中,您有有效值和测量值。因此,当您拥有 B5 时,您不再需要 B3,因为“B5 比 B3 更好”