IF函数 – 有没有办法避免重复公式

不能相信我不知道这一点,但是如果逻辑testing依赖于if语句,是否有避免在if语句中重复公式的方法?

= IF((SUMIFS公式)= 0,“”, SUMIF公式

我想在假的场景中用一些简短的SUMIFS函数替代SUMIFS函数,它会告诉它只是以编程方式重复它最初testing的公式。 重复两次公式对处理速度有不利的影响。 也许是微不足道的,但是想在这里寻求最佳的做法。 谢谢。

您可以将一个名称分配给一个公式并使用名称 …………..请参阅:

给公式分配一个名字

相关摘录 –

例如,我们假设我们经常使用如下公式: =SUM(A1:A100)-SUM(B1:B100) ,它驻留在A101 ,并复制到第101行的许多列上。在这种情况下创build一个自定义的公式 ,在101行的每个单元格中都会这样做。

1)select单元格A101(这是至关重要的)。

2)转到插入>名称>定义,然后在“工作簿中的名称”框中input:SalesLessCosts

3)现在点击“引用”框并input: =SUM(A1:A100)-SUM(B1:B100)然后点击添加。

现在您可以用单元格A101中的公式replace: =SalesLessCosts 。 你也可以在第101行上复制它,它像公式=SUM(A1:A100)-SUM(B1:B100)那样改变它的相对引用 。 之所以这样做,是因为我们在插入>名称>定义之前select了A101,并在=SUM(A1:A100)-SUM(B1:B100)使用相对引用时,我们将其添加到“引用“框。

你可以强制错误,如#DIV/0! 然后使用IFERROR ,例如

=IFERROR(1/(1/SUMIFS_formula),"")

如果你所要做的只是隐藏零,那么有一个简单的方法:

  • select你想隐藏零的所有单元格
  • 进入自定义数字格式
  • 将格式设置为“常规;常规”

自定义格式的结构为[正数]; [负数]; [零]通过使最后一部分变为空白,您实际上隐藏了零,但是显示了其他所有内容。

条件格式的优点是你可以在任何背景上使用它。

我有时使用的一个巧妙的技巧是通过使用“;;;”的自定义格式完全隐藏单元格的值。 这样,您可以将图像放入单元格中,例如条件格式化的图像,而不会看到任何值。

在这个问题上使用了一定量的咖啡因之后才发现这一点。 尝试使用这样的SUBSTITUTEfunction:

 =SUBSTITUTE( VLOOKUP( H4; $D$5:$E$8; 2; 0 ); $H$1; $I$1 ) 

这里是一个例子:

例

这里我不想重复两次的公式是VLOOKUP函数。 VLOOKUP的结果是在另一个表中find的string(例如:“Green”)。

我想检查该string是否与$H$1中的特定string值匹配(这里是“Yellow”)。

  • 如果是这样, SUBSTITUTE$I$1replace它(你想要的错误string,这里是“FORBIDDEN”)。
  • 如果没有,则显示VLOOKUP结果string(正常的授权输出,如“绿色”)。

我的实际公式很长,这就是为什么我不想写两遍。 我也不想使用两个不同的单元格,因为我已经将这个公式应用于10列,这意味着我应该添加额外的10列,使其工作。

这里是一个黑客 – 取决于你是否只是对显示值感兴趣,或者你是否需要使用另一个公式中的值:

把你的SUMIF公式放在单元格中(没有IF部分)

创build条件格式设置规则,在单元格值为0时将字体颜色设置为背景颜色

嘿,你得到期望的结果。

正如我所说 – 这是一个黑客,但它确实阻止了双重评估。

我没有意识到“干净”的解决scheme。

在某些情况下, MAX()MIN()可以做一个很好的工作。

例如,这样的事情:

=IF(SUMIFSformula>0,SUMIFSformula, 0)

可以缩短到这个:

=MAX(0,SUMIFSformula)