直到在参数单元格中按下 ENTER 键,“IF”语句中的引用参数才能被正确识别

直到在参数单元格中按下 ENTER 键,“IF”语句中的引用参数才能被正确识别

在我的 Excel 工作表中,列G(Sale veneer in sqft)包含值TRUE或。如果列中FALSE的值为,则列应计算列(@Amount)的值除以 10.764。如果值为,则列应显示列的值而无需进一步处理: GTRUEMJFALSEMJ=IF([@[Sale veneer in sqft]]="TRUE",[@Amount]/10.764,[@Amount])

我将列格式化G为文本,将列M(包含 IF 语句)格式化为数字。公式返回的值不正确。正确的值显示在N工作表的列中。

答案1

您的公式=IF([@[Sale veneer in sqft]]="TRUE",[@Amount]/10.764,[@Amount])是正确的。我注意到,出于某种原因,您的列M计算不正确,除非您用光标单击列中相应行的末尾G(在单词“True”或“False”之后)并按下 ENTER 键。然后列M似乎重新计算。

这种行为已经被其他用户注意到也是,这似乎是由于 Excel 在数字格式更改后不重新计算值造成的。例如,如果TRUE插入IF公式时值的格式为“常规”,则公式无法识别该值,TRUE因为它只能识别格式为“文本”的值。但如果你然后将其格式化为“文本”,Excel 将不会重新计算,并且公式仍然看起来不起作用。要使 Excel 重新评估列中的值,G请执行以下操作:

  1. G选择不带标题的整列
  2. 转到“数据”选项卡
  3. 选择“文本分列”
  4. 在新窗口中,第一步选择“Delimited”,第二步保留默认的“Tab”分隔符,第三步为“Column data format”选择“Text”。选择“Text”尤其重要,因为只有IF“True”和“False”值是“Text”格式时,语句才能处理它们。

请注意,如果您复制/粘贴TRUE格式FALSE错误的值(例如“常规”),您将必须再次让 Excel 重新评估您粘贴该值的单元格。

附言:我完全不知道为什么会出现这个错误。

答案2

"TRUE"使用和的文本值并不是一个好主意"FALSE"
最好使用具有常规格式的逻辑TRUE和。 在这里,您的文件中只有前两行是真正的文本和列。您可以使用函数验证这一点。如果您希望逻辑值采用文本格式,则必须将单元格格式化为文本FALSE
"TRUE""FALSE"GISTEXT输入这些值(例如数字)。
现在您可以按以下形式输入公式:

=IF([@[Sale veneer in sqft]],[@Amount]/10.764,[@Amount])

无论条件是文本"TRUE"还是逻辑,此变体都有效TRUE。但是如果你使用:

=IF([@[Sale veneer in sqft]]="TRUE",[@Amount]/10.764,[@Amount])

这仅适用于文本值[@[Sale veneer in sqft]]
IF函数条件"TRUE"和中TRUE是等价的,但关系= "TRUE" = TRUEFALSE

相关内容