在语句中引用excel IF语句的字段

我一直在用excel中的IF语句,其中一些变得冗长了。

[condition],[value如果为true]和[value_if_false]字段都包含相同的冗长的expression式。 例如,许多function如下所示:

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

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

你有3个选项,它取决于:

  • 如果它是一个单一的值,请按照加里的build议,并为它作一个名称(或者如果你不喜欢名字放在一个单元格和参考)。
  • 如果你的IF语句被用在一列数据中,你可以插入一个额外的列,在那里做计算(可能隐藏它)并引用它。
  • 如果使用的是VBA,并且该公式仅用于计算一次值,然后粘贴为值,则可以考虑将计算放入VBA中。

由于没有办法在公式中定义variables,所以不能直接引用expression式。 在较新版本的Excel中引入的唯一捷径是IFERRORIFNA (也许还有其他一些),可以让你编写例如

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

 IFERROR([possible_div_0_expression],0) 

很不幸的是,不行。 Excel并不打算用作编程语言。 他们允许一些条件公式是很好的。 当你必须嵌套许多IF语句来使CASE语句等同时,它会变得更加混乱。

如果你想做一些更清洁的公式,你可能不得不考虑一个VBmacros。

您可以使用“ 公式”选项卡中的“ 名称”function。 select一个像BigGuy这样的名字,并为其指定一个公式如下:

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

接着:

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