如何在命名范围内有多个if语句

时间:2016-11-09 15:20:13

标签: excel if-statement named-ranges nested-if

我希望了解如何在一行中编写以下if语句。不幸的是,IF语句单独工作,但每当我合并它时,它都会给我一个#VALUE错误。

=IF(A1=OUT,C1,IF(A1=INT,C1,IF(A1=IN,C1,"Not Found")))

OUT,INT和IN都是我文件中的所有命名区域,我已经找出了我得到错误的原因,我认为这是由于第一个语句不正确而且我可以看到它没有移动到公式的下一部分。

我遇到的问题是当我到达单元格A8时,此单元格中的值现在属于命名范围INT,这是当公式显示#VALUE错误时。

如果有人可以告诉我哪里出错了以及如何解决这个问题,我真的很感激。

提前致谢。

以下是我文件中的命名范围:

A1:A7 = OUT 
A8:A10 = INT 
A11:A17 = IN

,结果在以下范围内:

C1:C7 = Lose
C8:C10 = Draw 
C11:C17 = Win 

我希望公式做的是,如果我在A列中的任何值属于任何命名范围,我希望它能显示正确的结果。

例如,单元格A8的值为“A8”,这属于命名范围INT,因此我希望IF语句能够工作,以便显示值Draw。如果我在单元格A11中,则其值为“A11”,属于指定范围“IN”,因此我希望该公式向我显示值Win。

以下是我的文件图片。

enter image description here

2 个答案:

答案 0 :(得分:1)

if语句只会查看命名范围中的第一个值。您需要使用将迭代或搜索范围的东西:

=IF(OR(ISNUMBER(MATCH(A1,OUT,0)),ISNUMBER(MATCH(A1,IN,0)),ISNUMBER(MATCH(A1,INT,0))),C1,"Not Found")

enter image description here

但是这将始终返回true,因为正在测试的值位于被引用的命名区域中。因此,更简单的公式将给出相同的结果。

=C1

答案 1 :(得分:0)

在命名范围内搜索时,如果找不到搜索项,excel将返回错误。因此,第8行的A8 = OUT计算出错误,第10行的情况也是如此。因此,如果检查错误进行搜索,则将修复此问题。您可以使用以下方法来解决此问题。在第一行(D1)中使用此公式并将其复制到其余单元格。

=IF(IFERROR(A1=OUT,FALSE),C1,IF(IFERROR(A1=INT,FALSE),C1,IF(A1=IN,C1,"Not Found")))