如何将值约束到excel中的范围?

qua*_*ant 6 excel vba excel-vba

在C++中我会用boost::clamp它.基本上我有一些excel功能

A1*B2+C3+D4

我想把它限制在+/-某个数字,称之为X1.显而易见的是:

MAX(-X1, MIN(X1, A1*B2+C3+D4))

但我希望能够做到这一点:

CLAMP(A1*B2+C3+D4, -X1, X1)

这个或类似的东西存在吗?我只是好奇 - 显然这个解决方法有效,它只是丑陋.

Jas*_*iti 23

这可以使用MEDIAN完成.MEDIAN选择三个值的中间值,从而有效地限制下限和上限.

例如,假设您的最小值为5,最大值为10:

=MEDIAN(5,0,10) 是5

=MEDIAN(5,7,10) 是7

=MEDIAN(5,12,10) 是10

  • 巧妙的回答。很遗憾,网络搜索将我带到了这里,当我看到 VBA 脚本的答案被接受时,我差点就离开了。 (3认同)
  • 这个答案是如此简单,但却令人难以置信!诺贝尔奖当之无愧! (3认同)