【问题标题】:Excel vlookup return not availableExcel vlookup 返回不可用
【发布时间】:2014-03-27 14:36:00
【问题描述】:

我想使用 vlookup 填充名称列,这是我的事务表

这是我的主文件

是的,它们是相同的数字,但是为什么我的 vlookup 没有根据查找的值返回相应的名称?

vlookup 是否符合数据类型?喜欢文字、数字还是一般?

我一遍又一遍地更改数据类型,并返回相同的“不可用”

我的 excel 2007 有什么问题吗?

【问题讨论】:

    标签: excel vlookup


    【解决方案1】:

    你应该像这样使用Index/Match:

    =INDEX(Phonebook!$A$2:$A$45,MATCH(B2,Phonebook!$B$2:$B$45,0))
    

    您的Vlookup 不起作用,因为它试图在Phonebook!$A$2:$B$45 范围的第一列 中从B2 中查找值,即Phonebook!$A$2:$A$45

    【讨论】:

    • index/match 是做什么的?更新:那么,您是想说我必须将 Phonebook-name 列移到 Phonebook-phone_number 列的右侧吗?
    • 它与VLOOKUP 非常相似,但更灵活:Match 在Phonebook!$B$2:$B$45 范围内返回B2 的相对位置,Index 获取此位置并从Phonebook!$A$2:$A$45 返回相应的值:
    • @Cignitor, are you trying to say that i have to move the Phonebook-name column to the right side of the Phonebook-phone_number column - 是的,vlookup 总是在目标范围的 first 列中搜索,这就是 Index/Match 方法更灵活的原因 - 您可以在任何列中搜索
    【解决方案2】:

    问题是VLOOKUP 在第一列中查找电话号码,这意味着在 A 列中。对于“向后查找”,您需要使用 INDEX 和 MATCH:

    =INDEX(Phonebook!$A$2:$A$45,MATCH(B2,Phonebook!$B$2:$B$45,0))
    

    INDEX如下:

    =INDEX(Range, Row Number, [Column Number])
    

    它将返回范围 Range 中的单元格的值,该单元格位于行号 Row Number 和列 Column Number 上。我将Column Number 放在方括号之间,因为它是可选的(例如,如果您的范围在 A:A 内,则只有 1 列)

    要获取行号,您可以像上面一样使用MATCH。它的工作方式有点像VLOOKUP,但它不是返回匹配单元格的值,而是返回匹配单元格的行号(或列号,如果您在水平范围上使用它)。

    MATCH(B2,Phonebook!$B$2:$B$45,0) 因此在工作表Phonebook 的B2:B45 范围内查找B2(0 代表完全匹配)并给出行号。

    然后,您告诉 Excel 从范围 Phonebook!$A$2:$A$45 中返回单元格的值和从 MATCH 中获得的行号。

    【讨论】:

    • 为什么我的公式返回“不可用”=INDEX(Phonebook!$A$2:$A$542,MATCH(Transaksi!B2,Phonebook!$A$2:$B$752,0))
    • @Cignitor 好吧,首先,MATCH 适用于一行或一列。所以,Phonebook!$A$2:$B$752 应该真的是Phonebook!$A$2:$A$752 或Phonebook!$B$2:$B$752,这取决于你可以匹配到哪一列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多