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

Lor*_*nzo 22 excel if-statement excel-formula

无法相信我不知道这一点,但有没有办法避免在if语句中重复一个公式,如果逻辑测试依赖于它?

= IF((SUMIFS公式)= 0,"",SUMIFs公式)

我想在错误的场景中用短的替换那个SUMIFS函数,这将告诉它只是以编程方式重复它最初测试的公式.重复两次公式必然会对处理速度产生不利影响.也许可以忽略不计,但想要在这里寻求最佳实践.谢谢.

bar*_*ini 24

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

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

  • 哇,对于这种情况,这是一个非常有趣的解决方案。谢谢。对于所提出的特定公式,它是此处所有答案中最简洁的,但我只是投票赞成而不是选择它作为答案,因为我实际上想要某种变量。在 Excel 中的各种公式场景中,有时会出现重复公式,我需要一种方法来避免这样做以减少我的公式。不过还是谢谢!我将它用于我的特定场景。 (3认同)

jod*_*mo5 9

LET公式可用于这种具体情况。您可以将公式定义为变量,然后在同一单元格中您可以在公式中引用该变量。

公式LET格式如下所示:

=LET(name,name_value,calculation)
Run Code Online (Sandbox Code Playgroud)

SUMIFS 示例

以下是它如何与您的 SUMIF 示例一起使用,这样您就不必重复公式:

LET 示例的屏幕截图

在此屏幕截图中,我们有一个数组 A1:B7。如果 ColA 中的名称是“apple”,我们想要对值(Col B)求和。

为此,我们有一个标准 SUMIFS 公式:

=SUMIFS(B1:B7,A1:A7,"apple")
Run Code Online (Sandbox Code Playgroud)

公式如E2所示。结果如 E3 所示。

为了将其放入IF语句中而不必重复公式,我们可以使用LET如屏幕截图所示的公式。

我们使用公式创建一个变量SUMIFS作为该变量的值。然后,我们IF使用变量名称编写语句,而不是多次重写公式。

=LET(name,name_value,calculation)
Run Code Online (Sandbox Code Playgroud)

变量名称: sumapples

变量值:SUMIFS(B1:B7,A1:A7,"apple")

计算: IF(sumapples=0,"",sumapples)

把它放在LET函数中看起来像这样:

=LET(sumapples,SUMIFS(B1:B7,A1:B7,"apple"),IF(sumapples=0,"",sumapples))
Run Code Online (Sandbox Code Playgroud)

LET函数可用于任何 Excel 公式,对于缩短具有重复的长公式非常有用。


可选:额外的复杂性

如果您愿意,可以通过命名多个变量来变得更加复杂。

=LET(name,name_value,name2,name_value2,calculation)
Run Code Online (Sandbox Code Playgroud)


Gar*_*ent 8

您可以为公式指定名称并使用名称 ..............参见:

为公式指定名称

相关摘录 -

例如,假设我们经常使用如下公式: =SUM(A1:A100)-SUM(B1:B100)并且它驻留在A101第101行的许多列中并且被复制.在这种情况下,最好创建一个自定义公式,在第101行的每个单元格中执行此操作.这是怎么样;

1)选择单元格A101(这是至关重要的).

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

3)现在单击"引用"框并键入:=SUM(A1:A100)-SUM(B1:B100)然后单击"添加".

现在,您可以将单元格A101中的公式替换为:=SalesLessCosts.您也可以在第101行复制它,它将像公式一样更改其相对引用=SUM(A1:A100)-SUM(B1:B100).这样做的原因完全取决于我们在进入"插入">"名称">"定义"之前选择A101的事实,并在=SUM(A1:A100)-SUM(B1:B100)我们将其添加到"引用"框时使用了相对引用 .


Mic*_*onk 5

如果您需要做的只是隐藏零,有一个简单的方法:

  • 选择要隐藏零的所有单元格
  • 进入自定义数字格式
  • 将格式设置为“General;General;”

自定义格式的结构为 [正数];[负数];[零] 通过将最后一部分设为空白,您可以有效地隐藏零,但会显示其他所有内容。

与条件格式相比的优势在于您可以在任何背景下使用它。

我有时使用的一个巧妙技巧是使用“;;;”的自定义格式完全隐藏单元格值。通过这种方式,您可以将图像放在单元格内,例如条件格式的图像,而根本看不到值。