根据另一个单元格的计算值而不是该单元格的内容使用Excel if语句

我想知道是否有一个简单的方法将计算的值传递给另一个函数,例如if语句。

[A1] = 10

[B1] = IF(A1 <0,1,“”)

结果:

[B1]的值是空白(正确)。 由于单元格A大于0,它将返回一个空白。

现在我们尝试

[C1] = IF(B1> 0,1,50)

[C1]的值错误地说1

由于单元格B1是空白的,我期望它返回50.但它不会返回1。

我认为这与excel如何评估一个公式的空白结果然后评估一个正常的空白单元格有关。

现在我们尝试:

[A2] = 10

[B2] =(留空白)

[c2] =如果(b2> 0,20,50)

在[C2]中的结果是50。

用相同的例子进一步说明。

[A3] = 10

[B3] =(留空)

[C3] = A3 * B3

C3中的值将是0.(正确的,任何时候0都是0)

但是,如果我们做:

[A4] = 10

[B4] =如果(A4 <10,1,“”)

[C4] = A4 * B4

[C4]中的值“#VALUE!”

在C4中的计算是试图解决一个“空白”的公式不同,如果该单元格的值是真正的“空白”

所以我的问题是,我们如何编写[C1或C4],以便像[C2或C3]一样解释。

****如果我replace[B4]的值(按f2然后按F9),那么[C4]就像[C3]一样工作,但是我不想这样做,而且我试图避免生成macros。

你的表情有问题。 试试:

 =IF(A3<0,50,"") 

这应该工作。

我现在看到空白单元格不同于导致空string的函数。 它看起来像有一个聪明的方法来处理这个通过“计数空白”function,如果有必要在第一个“虚假”部分“嵌套如果”,如果这是为您的空白结果返回真值。

 [C1] = if(countblank(b1),50,1) 

如果b1为空白,C1将返回50,如果不为空,则返回1。 对于第二个例子,我实际上正在进行计算:

 [C4] = if(countblank(A4:B4),0,A4*B4) 

这意味着,如果A4和C4之间有任何空白,那么它将返回我知道我们将收到的产品,如果该值是B4实际上是空白的。

我通常创build大量的电子表格,我喜欢隐藏值/公式,如果他们的结果不需要显示,但我仍然需要做一个计算,以防公式溢出到额外的行。 例如:

  =IF(COUNTBLANK(A11),"",IF(J10+H11-I11>0,J10+H11-I11,"")) 

如果“键列”为空,这将隐藏结果(空白)。 但是,如果'键列'不是空白,它将执行计算,如果计算结果无效,那么它也会隐藏该单元格。

正如你所发现的那样,一个空string(“”)与空单元格不同。

Excel中没有办法使公式或UDF返回空单元格:您可以返回“”或零:所以您需要编写公式来处理该公式或将其从“”转换为零。