计算值范围的偏差?

计算值范围的偏差?

我试图找到是否有一个函数可以执行我可以用几个 IF 语句做的事情,只是为了让它更健壮和标准(并且更具可读性)

我有一个包含 4 列数据的电子表格

A    B    C    D
1200 1350 1700 []
100  120  50   []

A = 最小值,B = 最大值,C = 实际值

我想获取 D 列中的差值。例如,如果 C 小于 A,则应为 A - C。如果 C 大于 B,则应为 C - B。如果 C 介于 A 和 B 之间,我想显示与 A 和 B 中点的偏差。

我可以使用一些 IF 语句来做到这一点,但我不确定是否有更好的方法来做到这一点。

编辑:我自己做的 IF 语句方法如下

=IF([@Actual] < [@[Min]],([@Actual]-[@[Min]]),(IF([@Actual] > [@[Max]],([@Actual]-[@[Max]]),([@Actual]-(([@[Min]]+[@[Max]])/2)))))

经过一个小时的尝试,它似乎给了我想要的结果。但在 400 行、48 页的电子表格上,它造成了相当大的延迟。

我想真正的问题是,是否有内置函数可以产生相同的结果,但使用更少的代码/更快的代码?

答案1

您需要两个if和一个average函数,没有用于此计算的内置函数。如果可读性对您来说真的很重要,那么请考虑使用一些 VBA 并创建 UDF。

答案2

考虑:

=IF(C1<A1,A1-C1,IF(C1>B1,C1-B1,ABS(C1-(B1-A1)/2)))

相关内容