我一直使用 INT 公式将布尔值 TRUE 和 FALSE 转换为 1 和 0。但是,我将一些数据复制到电子表格中,但 Excel 在某些情况下无法将文本识别为布尔值。
TRUE 和 FALSE 文本左对齐,格式为“常规”。INT 公式无法将其识别为布尔值。但是,只要我单击 TRUE 或 FALSE 单元格,然后按 Enter 键,文本就会居中对齐,并且我的公式会将其识别为布尔值并将其转换为整数。
有什么方法可以让 Excel 识别这一点,而不必单击每个单元格并按回车键?
答案1
Excel 不会将文本“TRUE”或“FALSE”识别为其布尔值...如果您需要转换它们,IF 语句将完成任务:
=IF(OR(A24,A24="TRUE"),TRUE,FALSE)
答案2
人们往往会把布尔值弄得比实际更难。在我看来,这是在基本 Excel 中处理您的问题的最佳方法(如果您对所有其他值都满意,则“TRUE”返回 false):
=UPPER(TRIM(A1))="TRUE"
在 VBA 中:
Public Function ConvertToBoolean(InputString As String) As Variant
Dim TempText As String
TempText = UCase(Trim(InputString))
If TempText = "TRUE" Or TempText = "FALSE" Then
ConvertToBoolean = TempText = "TRUE"
Else
ConvertToBoolean = InputString
End If
End Function
它处理空格、大写/小写和其他值。
答案3
老问题 - 但以下方法可能对后人有用。
Excel 将布尔值识别为文本。您可以将整个列的格式更改为General
,但 Excel 不会重新评估格式,直到您单击每个单元格并按 Enter 键。另一种方法是使用文本到列功能,例如使用非常宽的固定宽度。结果将是相同的单列,但 Excel 将被迫重新评估格式并将所有true
和false
条目更新为布尔值。
http://dailydoseofexcel.com/archives/2009/10/12/converting-cells-formatted-as-text/
答案4
=TYPE(Value)
TRUE/FALSE 列显示什么?
我使用的是 LibreOffice 而不是“真正的”Excel,但它甚至可以正确识别文本字段......
也许您可以TRUE
用=TRUE
?进行搜索/替换。