#VALUES!同时使用IF和OR

时间:2019-02-09 04:12:18

标签: arrays excel

我具有以下格式的文件


名称编号位置
A 1
B 2
C 3 3
D 4 4

现在在position A3上,我应用了=IF(B2=1,"Goal Keeper",OR(IF(B2=2,"Defender",OR(IF(B2=3,"MidField","Striker")))))
,但这给了我一个错误#value!
看着Google,我的公式是正确的。
我基本上想要的是什么
1-守门员2-后卫3-中场4-前锋
是的,另一种方法是只过滤数字并复制粘贴文本
但是我想使用公式来做,并且想知道我哪里出错了。

2 个答案:

答案 0 :(得分:1)

您的直接问题在于表达式(例如):

OR(IF(B2=3,"MidField","Striker"))
   |  \__/ \________/ \_______/ |
   |  bool   string    string   |
   \____________________________/
               string

OR函数需要一系列 boolean 值(真或假),并且您要从内部{{1 }}。

在这种特定情况下,您实际上不需要 IF位,or是完整的if。因此,您可以使用:

if-else

这意味着=IF(B1=1,"Goal Keeper",IF(B2=2,"Defender",IF(B2=3,"MidField","Striker"))) 将得出B1=1,否则将得出"Goal Keeper"

然后表示,如果IF(B2=2,"Defender",IF(B2=3,"MidField","Striker")),它将得到B2=2,否则将得出"Defender"

最后,这意味着IF(B2=3,"MidField","Striker")将产生B2=3,其他任何结果将得到"MidField"

"Striker"派上用场时,我唯一能想到的情况是两个不同的数字生成相同的字符串。假设OR 1都应提供4,您可以使用:

"Goalie"

请记住,使用Excel查找功能可以更好地实现更通用的解决方案,该功能将搜索将整数映射到字符串的表(在电子表格中的某个地方)。然后,如果需要更改映射,则只需更新表,而不是返回并更改每一行中的公式。

答案 1 :(得分:-1)

如果您的任务实际上是在同一个方程式中使用IFOR函数来解决问题,这是我看到的唯一方法:

=IF(OR(B1=1, B1 = 2, B1 = 3, B1 = 4),IF(B1 = 1, "Goal Keeper", IF(B1 = 2,"Defender",IF(B1 = 3,"MidField","Striker")))

如果B1不等于1-4,则OR函数将返回FALSE并完全绕过所有嵌套的IF语句。