Excel公式检查评估是否大于最大值



我正在尝试构建一个excel-formula,该格式检查条件部分是否大于5,而不复制公式。例如,如果公式返回10,则应返回5(最大5(。如果是3,则只需返回3。

我可以轻松地使用 IF()扩展公式,但是我需要复制公式以在我的情况下使用它,如果条件是错误的再次。可读性将是可怕的两倍。

我正在寻找max((函数或某种智能方法来处理此问题,如果条件大于大于条件,则首先评估条件并返回最大值。有什么建议吗?

这是我的公式:

IF(DA5746/1000>=1;DA5746/1000;1)*IF(CX5746<>"";1,1;1)*IF(M5746<>"";1,25;1)*IF(CL5746>0;IF(CL5746>1;CL5746;1+CL5746);1))

这是我想避免

的公式
IF(IF(DA5746/1000>=1;DA5746/1000;1)*IF(CX5746<>"";1,1;1)*IF(M5746<>"";1,25;1)*IF(CL5746>0;IF(CL5746>1;CL5746;1+CL5746);1))>5;5;IF(DA5746/1000>=1;DA5746/1000;1)*IF(CX5746<>"";1,1;1)*IF(M5746<>"";1,25;1)*IF(CL5746>0;IF(CL5746>1;CL5746;1+CL5746);1))) 

psudo-solution:

IF([condition]>5;5;[reuse condition])

编辑:我知道我可以拥有两个单独的单元格,其中第一个单元格具有长公式,而另一个单元格仅引用了这一点。这不是我要寻找的解决方案。

通常的方法是将单独的单元格用于大公式或类似的东西:

=MIN(big_formula,5)

因此,在您的情况下(使用; saparator(

=MIN(IF(DA5746/1000>=1;DA5746/1000;1)*IF(CX5746<>"";1,1;1)*IF(M5746<>"";1,25;1)*IF(CL5746>0;IF(CL5746>1;CL5746;1+CL5746);1));5)

注意:

关键是避免使用IF

最新更新