在[value_if_true]语句中引用excel IF语句的[condition]字段

时间:2014-05-30 14:16:20

标签: excel if-statement

我一直在使用Excel中的IF语句,其中一些语言变得很重复。

[condition],[value if true]和[value_if_false]字段都包含相同的long表达式,这似乎是多余的。例如,许多函数看起来像这样:

=IF( [long_expression] > 130 , 3*[long_expression]^2 , 2*[long_expression]^3 )

有没有办法通过直接从其他两个字段引用条件来减少这些语句中的重复?

3 个答案:

答案 0 :(得分:2)

您有3个选项,具体取决于:

  • 如果它是单一价值,请按照Gary的建议并为其命名(或者,如果你不喜欢将名字放在一个单元格中并引用它)。
  • 如果您在一列数据中使用了IF语句,则可以插入一个附加列,在那里进行计算(可能隐藏它)并引用它。
  • 如果您使用VBA且公式仅用于计算一次值,然后粘贴为值,则考虑将计算结果放入VBA。

由于无法在公式中定义变量,因此无法直接引用表达式。在较新版本的Excel中引入的唯一快捷方式是IFERRORIFNA(可能还有其他一些),可以让您编写例如。

IF(ISERROR([possible_div_0_expression]),0,[possible_div_0_expression])

as

IFERROR([possible_div_0_expression],0)

答案 1 :(得分:1)

不幸的是,没有。 Excel不能用作编程语言。他们允许一些条件公式,这很好。当你必须将许多IF语句嵌套在一起以构成CASE语句的等效时,它变得更加混乱。

如果你想做一些更干净的公式,你可能需要考虑一个VB宏。

答案 2 :(得分:1)

您可以使用公式标签中的名称功能。选择 BigGuy 这样的名称,然后为其指定一个公式:

=(A1+A77)/(B23+B77)

然后:

=IF( BigGuy > 130 , 3*BigGuy^2 , 2*BigGuy^3 )