Excel if else 公式因句法错误而失败
Excel if else formula fails due to wrong syntex
我在 excel 列中有不同的 class 字符形式的名称。我想将其转换为数字形式并添加到列 C
If B2==N, make it 1
If B2==O, make it 0
If B2==A, make it 2
If B2==~, make it 9
我写了下面的excel公式。我在图像中添加了我的公式和错误消息。你能纠正我错误的地方吗
=IF(B2='N',1,if(b2='O',0,if(b2='A',2,if(b2='~',9))))
更新
根据详细答案添加公式后
在Excel中,双引号用于括起字符值而不是单引号。因此,您的公式将变为
=IF(B2="N",1,IF(B2="O",0,IF(B2="A",2,IF(B2="~",9,""))))
此外,我在最后一个 IF 中添加了一个带空格的 else 子句。
此外,如果您使用的是较新版本的 Excel,那么您还可以使用更简单、更短的 SWITCH
=SWITCH(B2,"N",1,"O",0,"A",2,"~",9,"")
在Excel公式中,双引号用于表示start 和 文本字符串结尾 。数字不应在双引号内。
也就是说,我们可以使用像 IF
函数这样的公式,但我们也可以通过创建一个 table 引用来避免使用 双引号 ,请参阅下图,替代解决方案 - 7 种方法
• 单元格 C2
中使用的公式
=VLOOKUP($B2,$I:$J,2,1)
没有Table的参考以上公式可以写成
=VLOOKUP($B2,{"~",9;"A",2;"N",1;"O",0},2,1)
• 单元格 D2
中使用的公式
=LOOKUP($B2,$I:$J)
没有Table的参考以上公式可以写成
=LOOKUP($B2,{"~",9;"A",2;"N",1;"O",0})
• 单元格 E2 中使用的公式 --> “更正您自己的公式”
=IF(B2="N",1,IF(B2="O",0,IF(B2="A",2,IF(B2="~",9))))
• 单元格 F2
中使用的公式
=IFS(B2="~",9,B2="A",2,B2="N",1,B2="O",0)
• 单元格 G2
中使用的公式
=SWITCH($B2,"~",9,"A",2,"N",1,"O",0)
注意单元格 F2 & G2 中使用的公式,您需要 Excel 2019 , Excel 2021 或 O365 因此最好使用 Table Of Reference 以避免使用 双引号.
所以,如果每个字符前有一个space那么公式,应该改变参考下图和公式,
• 单元格 C2
中使用的公式
=VLOOKUP(TRIM($B2),$I:$J,2,1)
• 单元格 D2
中使用的公式
=LOOKUP(TRIM($B2),$I:$J)
• 单元格 E2
中使用的公式
=IF(TRIM($B2)="N",1,IF(TRIM($B2)="O",0,IF(TRIM($B2)="A",2,IF(TRIM($B2)="~",9))))
• 单元格 F2
中使用的公式
=IFS(TRIM($B2)="~",9,TRIM($B2)="A",2,TRIM($B2)="N",1,TRIM($B2)="O",0)
• 单元格 G2
中使用的公式
=SWITCH(TRIM($B2),"~",9,"A",2,"N",1,"O",0)
如果这些不是 space 并且实际上是非 printable 字符,那么只需将 TRIM
更改为 SUBSTITUTE
函数
C2
=VLOOKUP(SUBSTITUTE($B2,CHAR(160),""),$I:$J,2,1)
D2
=LOOKUP(SUBSTITUTE($B2,CHAR(160),""),$I:$J)
E2
=IF(SUBSTITUTE($B2,CHAR(160),"")="N",1,IF(SUBSTITUTE($B2,CHAR(160),"")="O",0,IF(SUBSTITUTE($B2,CHAR(160),"")="A",2,IF(SUBSTITUTE($B2,CHAR(160),"")="~",9))))
F2
=IFS(SUBSTITUTE($B2,CHAR(160),"")="~",9,SUBSTITUTE($B2,CHAR(160),"")="A",2,SUBSTITUTE($B2,CHAR(160),"")="N",1,SUBSTITUTE($B2,CHAR(160),"")="O",0)
G2
=SWITCH(SUBSTITUTE($B2,CHAR(160),""),"~",9,"A",2,"N",1,"O",0)
我个人会使用 IFS
函数做这样的事情:
=IFS(B2="N",1,B2="O",0,B2="A",2,B2="~",9)
我在 excel 列中有不同的 class 字符形式的名称。我想将其转换为数字形式并添加到列 C
If B2==N, make it 1
If B2==O, make it 0
If B2==A, make it 2
If B2==~, make it 9
我写了下面的excel公式。我在图像中添加了我的公式和错误消息。你能纠正我错误的地方吗
=IF(B2='N',1,if(b2='O',0,if(b2='A',2,if(b2='~',9))))
更新
根据详细答案添加公式后
在Excel中,双引号用于括起字符值而不是单引号。因此,您的公式将变为
=IF(B2="N",1,IF(B2="O",0,IF(B2="A",2,IF(B2="~",9,""))))
此外,我在最后一个 IF 中添加了一个带空格的 else 子句。
此外,如果您使用的是较新版本的 Excel,那么您还可以使用更简单、更短的 SWITCH
=SWITCH(B2,"N",1,"O",0,"A",2,"~",9,"")
在Excel公式中,双引号用于表示start 和 文本字符串结尾 。数字不应在双引号内。
也就是说,我们可以使用像 IF
函数这样的公式,但我们也可以通过创建一个 table 引用来避免使用 双引号 ,请参阅下图,替代解决方案 - 7 种方法
• 单元格 C2
中使用的公式=VLOOKUP($B2,$I:$J,2,1)
没有Table的参考以上公式可以写成
=VLOOKUP($B2,{"~",9;"A",2;"N",1;"O",0},2,1)
• 单元格 D2
中使用的公式=LOOKUP($B2,$I:$J)
没有Table的参考以上公式可以写成
=LOOKUP($B2,{"~",9;"A",2;"N",1;"O",0})
• 单元格 E2 中使用的公式 --> “更正您自己的公式”
=IF(B2="N",1,IF(B2="O",0,IF(B2="A",2,IF(B2="~",9))))
• 单元格 F2
中使用的公式=IFS(B2="~",9,B2="A",2,B2="N",1,B2="O",0)
• 单元格 G2
中使用的公式=SWITCH($B2,"~",9,"A",2,"N",1,"O",0)
注意单元格 F2 & G2 中使用的公式,您需要 Excel 2019 , Excel 2021 或 O365 因此最好使用 Table Of Reference 以避免使用 双引号.
所以,如果每个字符前有一个space那么公式,应该改变参考下图和公式,
• 单元格 C2
中使用的公式=VLOOKUP(TRIM($B2),$I:$J,2,1)
• 单元格 D2
中使用的公式=LOOKUP(TRIM($B2),$I:$J)
• 单元格 E2
中使用的公式=IF(TRIM($B2)="N",1,IF(TRIM($B2)="O",0,IF(TRIM($B2)="A",2,IF(TRIM($B2)="~",9))))
• 单元格 F2
中使用的公式=IFS(TRIM($B2)="~",9,TRIM($B2)="A",2,TRIM($B2)="N",1,TRIM($B2)="O",0)
• 单元格 G2
中使用的公式=SWITCH(TRIM($B2),"~",9,"A",2,"N",1,"O",0)
如果这些不是 space 并且实际上是非 printable 字符,那么只需将 TRIM
更改为 SUBSTITUTE
函数
C2
=VLOOKUP(SUBSTITUTE($B2,CHAR(160),""),$I:$J,2,1)
D2
=LOOKUP(SUBSTITUTE($B2,CHAR(160),""),$I:$J)
E2
=IF(SUBSTITUTE($B2,CHAR(160),"")="N",1,IF(SUBSTITUTE($B2,CHAR(160),"")="O",0,IF(SUBSTITUTE($B2,CHAR(160),"")="A",2,IF(SUBSTITUTE($B2,CHAR(160),"")="~",9))))
F2
=IFS(SUBSTITUTE($B2,CHAR(160),"")="~",9,SUBSTITUTE($B2,CHAR(160),"")="A",2,SUBSTITUTE($B2,CHAR(160),"")="N",1,SUBSTITUTE($B2,CHAR(160),"")="O",0)
G2
=SWITCH(SUBSTITUTE($B2,CHAR(160),""),"~",9,"A",2,"N",1,"O",0)
我个人会使用 IFS
函数做这样的事情:
=IFS(B2="N",1,B2="O",0,B2="A",2,B2="~",9)