A 列包含的数据每行都有以下三种可能性之一:
TRUE、FALSE 或“#N/A”错误。
列 B 是必需的,如果列 A 中的值为 FALSE 或“#N/A#”错误,则返回 1,否则返回 0。
使用以下公式:
=IF(OR(ISERROR(A1),NOT(A1)),1,0)
但是,只要 A 列中的值为“#N/A”,就会返回错误“#N/A”。分解公式:
=ISERROR(A1) returns 1 when A1 is "#N/A".
=IF(NOT(A1),1,0) returns "#N/A" when A1 is "#N/A".
因此,问题似乎是,只要 A 列中的值有错误,则“NOT”检查就会返回错误。此外,这取代了“ISERROR(A1)”返回的 1。
有没有什么办法可以达到想要的结果?
答案1
解释得很好,但我建议公式稍微短一点:
=IFERROR(1-A1,0)
或者
=IFNA(1-A1,0)
或者如果您需要使用ISERROR
功能:
=IF(ISERROR(A1),0,1-A1)
答案2
如果条件为 TRUE,则为 0;如果条件为 N/A 或 FALSE,则为 1。
如果 A 列不包含除这三项之外的任何内容,则最简单的公式如下:
=IF(A1=TRUE;0;1)
这意味着:如果 A1 为 TRUE,则为 0,如果为其他值,则为 1。
鉴于这也会为空单元格创建 1,您可以添加以下内容:
=IF( A1="" ; "" ; IF(A1=TRUE;0;1) )
这基本上意味着:如果 A1 为空,则返回空。但是,如果不是,则我们评估 IF A1 = True,如果是,则返回 0,否则返回 1。
答案3
NA()使用IFNA()或时,需要解析错误IFERROR()。以下屏幕截图显示了步骤
• 单元格中使用的公式B2
=ISERROR(A2)+IFNA(NOT(A2),0)
或者,
=ISNA(A2)+IFNA(NOT(A2),0)
• 拥有IF()和OR()
=IF(OR(ISERROR(A2),IFNA(NOT(A2),1)),1,0)
我没有使用IF()with ,而是执行了表示返回的操作,即while 。OR()BOOLEAN LOGIC+
OR()TRUE
1
FALSE
0
您的公式不起作用,因为当出现错误时,它NA()无法检测到错误,您需要使用IFNA()甚至解析错误,但它会返回,因为如果第一个不是错误 - >它会再次返回即当没有错误时 - >它也会返回即。(参考最后的屏幕截图)。IFERROR()ISNA()0
=ISERROR(A2)
FALSE
0
=ISNA(A2)
0
0+0 =0
我建议你总是尝试评估公式,它Excel
有一些内置功能,可以帮你很多,比如评估公式。它位于Formulas选项卡 --> 按Formula Auditing点击分组 -->Evaluate Formula