Excel VLOOKUP giving#不适用,我不知道为什么

Excel VLOOKUP giving#不适用,我不知道为什么,excel,excel-formula,vlookup,worksheet-function,excel-match,Excel,Excel Formula,Vlookup,Worksheet Function,Excel Match,为什么这样不行?我试着检查空格,确保长度是相同的,等等,让我发疯!我只想要阿拉巴马!给出的错误为“值不可用”。公式在指定的第一列(A列)中查找“AL”。它只查找“Alabama”,因此返回错误。列的顺序错误。最左边的列必须包含匹配的值。您要做的是在“州名称”列中查找AL。当然,excel看不到它,因此返回#N/A 您可以尝试以下方法: =INDEX($A:$A,MATCH(D1,$B:$B,0),1) 希望这有帮助。通常的解决方案是应用=匹配来查找数组中的行号: =MATCH(D1,B:B,0


为什么这样不行?我试着检查空格,确保长度是相同的,等等,让我发疯!我只想要阿拉巴马!给出的错误为“值不可用”。

公式在指定的第一列(A列)中查找“AL”。它只查找“Alabama”,因此返回错误。

列的顺序错误。最左边的列必须包含匹配的值。您要做的是在“州名称”列中查找AL。当然,excel看不到它,因此返回
#N/A

您可以尝试以下方法:

=INDEX($A:$A,MATCH(D1,$B:$B,0),1)

希望这有帮助。

通常的解决方案是应用=匹配来查找数组中的行号:

=MATCH(D1,B:B,0)  
将在B列中搜索
D1
中的值(最后一个
0
表示准确),并希望返回
2
(所选数组中的第二行-即整个B列)。然后可以将其输入:

=INDEX(A:A,MATCH(D1,B:B,0))  
其中它成为第二列A,即
Alabama


此处的详细信息以及

可能会稍微简单一些,甚至:

=INDEX(A:A,MATCH(D1,B:B))

你的专栏顺序不对。最左边的列必须包含匹配的值。您要做的是在
状态名称
列中查找
AL
。当然,excel看不到它,因此返回
#N/A。我明白了。你建议我如何在不改变专栏的情况下到达阿拉巴马州?我很感激。您可以使用
匹配
偏移
的组合
match
查找感兴趣的行,然后您将
偏移
那么多行。@tidusmith或者您可以使用
索引和匹配组合。参见我的帖子。=偏移($A$1,匹配(D1,$B$2,$B$2,0),0)参见@pnuts语句中的支持。另外一个用于解释和教程链接:DI过去在我的显示器上有一个便签,上面写着
=索引(范围,行,列)
匹配(什么,行或列,0表示精确,1表示最近)
。这有助于内部化语法并使我不再使用Offset()。@pnuts无需删除。正如Tim Williams所说,拥有相同的答案并不是浪费,而是一种向OP证明所提出的解决方案确实正确的方法。+1,但也要注意,在只有一列或一行的范围内,没有第三个参数的情况下,Index可以正常工作。如果范围是一列,只需do=index(列,编号)。如果范围是一行,那么只需do=index(行,编号)。第三个参数仅在具有多个列和多个行的范围内需要。然后第二个参数指定行,第三个参数指定列。@teylyn是对的。我之所以完成语法是为了让OP掌握公式:顺便说一句,pnuts就如何使用这些功能提供了完整的解释和链接。同意。要坚持精确匹配,请使用=索引(A:A,match(D1,B:B,0))