努力解决简单的 IF 函数结果

努力解决简单的 IF 函数结果

=IF(R11>1,AVERAGE(R10:R11)," ")

R11 是空白单元格,R10 的值为 46.87...

IF 函数计算加载在单独表格的单元格 P49 中,我正在寻找 2 个单元格的平均值,我希望结果为空...但是,结果是 46.87??

如果 R11 中没有值,我预计结果将为空白(空)...但如果 R​​10 中有值,它会将 R10 加载到单元格 P49 中...

答案1

我会采取不同的方法。

由于您正在处理数字,也就是数值,并且对 R11 拥有任何其他类型的数据似乎不感兴趣,我建议不要做任何有趣的事情,只需做两件事之一,这两件事都在 R11 当前导致值“”的情况下强制将值设为零。

  1. 在 R11 中的公式中使用实际的“0”而不是当前的“”。这确实有缺点……您可能不希望那里有 0,因为它将返回实际的零,这通常会在计算平均值时造成问题,因为现在通常会多一个数据点,而人们可能不希望这样(即:如果 R11 的结果为 0,人们可能不希望上面的平均值为 23.435)但在您的使用中,不会出现这种情况,并且可能存在其他依赖于它的单元格,即“”,而不是“0”。
  2. 更好的方法是在公式中将其转换为零:对于比较部分,这样做的好处是将数据来源单元格保留为“”,同时仍确保它在测试中真正被评估为“0” R11>1。由于它不是实际的零,因此它永远不会对平均值的计算产生任何不同影响(因为它现在被忽略了,而如果它是真正的 0,有时就不会被忽略)。

要采用后一种方法,请将公式修改为:

=IF(  N(R11)  >1,AVERAGE(R10:R11)," ")

如果您执行上述操作,测试将完全按照您的意愿执行,并且由于测试失败,结果FALSE将发生:" " 您将得到您想要的结果。

有很多方法可以强制执行FALSE似乎与 R11 的“实际内容”无关的测试,当没有更好的方法时,它们可能非常有用(只要它们基于相关内容而不是任意工作,并且提供的想法就是这样...)。但上面的方法更好,因为它以直接的方式执行测试,该测试在各方面都与 Excel 的混乱妨碍之前您希望执行的测试完全一致。在和这两种方法中,TRIM()后者ISNUMBER()会更好,因为它更接近直接测试您感兴趣的特征,所以回答你在评论中的问题TRIM(),我会在这里走那条路,并且只在字母数字值是你所做的事情的一部分时才使用(这显然不是这里的情况!)。

如果我没有N()可用!

相关内容