If then语句中的已定义名称

时间:2019-12-04 22:23:13

标签: excel if-statement

我正在尝试按州定义分支,例如明尼苏达州的分支1,2,3和爱荷华州的分支4,5,6。因此,我将它们定义为用于IF语句的相应状态。但是,当我将定义的组放入公式中时,除非C列为空,否则什么也不会返回。有没有办法让这些小组工作,还是我应该尝试考虑以其他方式获得每个分支的状态。

=IF(C4=Minnesota_BRs,"MINNESOTA","")  

1 个答案:

答案 0 :(得分:0)

您不能使用IF function来检查值是否属于范围。

尝试以下公式:

VLOOKUP将检查C4是否是Minnesota_BRs的一部分。在这种情况下,ISERROR将得出FALSE(而IF公式将得出MINNESOTA)。

=IF(ISERROR(VLOOKUP(C4,Minnesota_BRs,1;FALSE)),"","MINNESOTA")
关于问题下的评论,

编辑

如果您要检查多个范围,则可以-根据您的建议构建嵌套的IF公式。我想您很亲密,只是顺序不正确。使用以下内容:

=IF(ISERROR(VLOOKUP(C4,Minnesota,1,FALSE)),IF(ISERROR(VLOOKUP(C4,Iowa,1,FALSE)),"","Iowa"),"Minnesota")

但是,对于您的情况,我认为您可能想要检查许多州的分支机构,这确实很有效。您将得到一个糟糕的公式。

您可能宁愿设置一个包含所有分支和状态的表,并且使用公式在此多列表中查找值,为您提供列号,然后从表头中选择状态:< / strong>

Find column that contains a value in Excel

={INDEX(E4:G4,,MIN(IF(E5:G7=C4,COLUMN(A1:C1))))}

(请注意,这是一个数组公式,将其键入并用CTRL+SHIFT+ENTER保留单元格)

该公式不容易理解。这么多信息:

array函数中的E5:G7=C4部分将检查表中的所有值并形成一个看起来像这样的数组:

Array with <code>TRUE</code> and <code>FALSE</code> in Excel

如您所见,5的结果为TRUE。然后,IF函数将选择列号(此处为2)。然后,INDEX函数选择第二个州名称-爱荷华州。

我希望这对您有所帮助。