我正在尝试建立一个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])
编辑: 我知道我可以有两个单独的单元格,其中第一个单元格包含长公式,而另一个单元格只是引用此公式。这不是我要找的解决方案。
答案 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
。