在我的 Excel 工作表中,列G
(Sale veneer in sqft)包含值TRUE
或。如果列中FALSE
的值为,则列应计算列(@Amount)的值除以 10.764。如果值为,则列应显示列的值而无需进一步处理:
G
TRUE
M
J
FALSE
M
J
=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
请执行以下操作:
G
选择不带标题的整列- 转到“数据”选项卡
- 选择“文本分列”
- 在新窗口中,第一步选择“Delimited”,第二步保留默认的“Tab”分隔符,第三步为“Column data format”选择“Text”。选择“Text”尤其重要,因为只有
IF
“True”和“False”值是“Text”格式时,语句才能处理它们。
请注意,如果您复制/粘贴TRUE
格式FALSE
错误的值(例如“常规”),您将必须再次让 Excel 重新评估您粘贴该值的单元格。
附言:我完全不知道为什么会出现这个错误。
答案2
"TRUE"
使用和的文本值并不是一个好主意"FALSE"
。
最好使用具有常规格式的逻辑TRUE
和。 在这里,您的文件中只有前两行是真正的文本和列。您可以使用函数验证这一点。如果您希望逻辑值采用文本格式,则必须将单元格格式化为文本FALSE
"TRUE"
"FALSE"
G
ISTEXT
前输入这些值(例如数字)。
现在您可以按以下形式输入公式:
=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" = TRUE
是FALSE
。