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

时间:2019-05-22 14:11:55

标签: excel excel-formula

我正在尝试建立一个Excel公式,以检查条件部分是否大于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))) 

伪解决方案:

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

编辑: 我知道我可以有两个单独的单元格,其中第一个单元格包含长公式,而另一个单元格只是引用此公式。这不是我要找的解决方案。

1 个答案:

答案 0 :(得分:2)

通常的方法是对大公式使用单独的单元格或类似的内容:

=MIN(big_formula,5)

所以您的情况是(带有;分隔符)

=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