如果单元格
A19
SHARES LOG
或 I2
SPREADS LOG
中有数据,我正在尝试让单元格 F2
计算下面所示的公式。如果这些单元格中没有数据,我希望 A19
返回一个空白单元格。
目前,如果前面提到的一个或两个单元格中有数据,则该公式正在正确计算公式,但是,如果任一单元格
SHARES LOG
I2
或 SPREADS LOG
F2
、单元格 A19
中都没有数据,则该公式正在正确计算公式
不返回空白。
我不明白为什么会这样,因为公式看起来是正确的。
当
SHARES LOG
I2
或 SPREADS LOG
F2
中没有数据时,单元格 A19
中的结果为 + £ 0.00 / + £ 0.00
这是单元格中的当前公式
A19
:
=IF(OR(COUNT('SHARES LOG'!I2=1),('SPREADS LOG'!F2=1)),TEXT(SUM('SHARES LOG'!N:N,'SPREADS LOG'!M:M)," + £ #,##0.00")&" / "&TEXT(SUM('SHARES LOG'!L:L,'SPREADS LOG'!K:K)," + £ #,##0.00"),"")
正确的公式应该是:
=IF(OR(COUNT('SHARES LOG'!I2)=1,count('SPREADS LOG'!F2)=1),TEXT(SUM('SHARES LOG'!N:N,'SPREADS LOG'!M:M)," + £ #,##0.00")&" / "&TEXT(SUM('SHARES LOG'!L:L,'SPREADS LOG'!K:K)," + £ #,##0.00"),"")
您已将 '=1' 放入计数中,以便将单元格 'SHARES LOG'!I2 或 'SPREADS LOG'!F2 与 1 进行比较,然后对结果进行计数。结果只能是 True 或 False,并且 Count 会将其中任何一个视为数字,因此您将始终得到 1 的计数,这意味着您的 Or 语句将始终得到满足,并且您将获得格式化的数字而不是空白If 语句。
还有其他更直接的方法来测试 'SHARES LOG'!I2 和 'SPREADS LOG'!F2 的内容,例如使用 Isnumber(假设它们应该包含数字)。
虽然 Tom Sharpe 已经给出了答案,但我相信更好的解决方案是公式审核,在 this URL 中进行了解释。更准确地说,“评估公式”功能正是您解决此类问题所需要的:它允许您逐步评估您的公式。因此,您编写公式,并尝试预测下一步的结果。当您的期望与结果不符时,您已经发现公式中存在错误。