根据另一个单元格的计算值而不是该单元格的内容使用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返回空单元格:您可以返回“”或零:所以您需要编写公式来处理该公式或将其从“”转换为零。