【问题标题】:VLOOKUP or INDEX/MATCH doesn't workVLOOKUP 或 INDEX/MATCH 不起作用
【发布时间】:2015-12-04 05:32:19
【问题描述】:

我想从 2 个表中查找数据(如果它存在于另一个表中)。我使用了 vlookup 但没有用,还有 INDEX MATCH。我不知道为什么根本原因是。这是表格:

a) 数据源

  Data Source         Exist in Table Array Sheet?
  **40000**             #N/A
    40300   
    40400   
    40401   
    40402   
    40500   
    40600   
    40700   
    40701   
    40702   
    40897   
    40898   
    40899   
    40999   
    41000   
    42000   
    42100   
    42120   
    42150   
    43000   
    43012   
    43020   
    43099   
    45000   
    45005   
    45800   
    45900   
    45905   
    46000   

b) 表格数组

20100
20300
24060
21998
21953
21950
21952
29000
28000
40000
40500
45900
45000
61000
62909
66000
66100
66900
66200
62901

c) 这是我尝试过的 vlookup 或 INDEX MATCH 函数:

=INDEX('Data Source'!E6:E73,MATCH('Data Source'!D5,Array!E6:E73,0))

或

=VLOOKUP(D28,Array!E28:E95,1,FALSE)

我不知道为什么它不会查找。

我已将 excel 文件上传到: https://www.dropbox.com/s/j9c9y2hm7avcbyz/Book1.xlsx?dl=0

【问题讨论】:

    标签: excel indexing excel-formula vlookup lookup-tables


    【解决方案1】:

    Array 工作表中的伪数字实际上是看起来像数字的文本,而 Data Source 工作表中的数字是某人有意为之的实际数字左对齐(数字默认右对齐)。选择 Array!E6:E73 并运行 Data ► Text to Columns ► Fixed Width ► Finish 将伪数字转换为实际数字。真正的数字永远不会与看起来像数字的文本匹配。

    转到数据源工作表并重复该过程,首先选择“数据源”!D5:D450,然后重复文本到列命令。实际数字(例如 41000)中散布着恶意文本值。

    之后,将'Data Source'!E5中的公式改成这个,

    =VLOOKUP('Data Source'!D5,Array!E$6:E$73,1, FALSE)
    

    【讨论】:

    • @pnuts - 很好。我只采样了约 10 个样本,但如果我下降到第 15 个(例如 41000),我至少会找到一个文本。谢谢!
    • 您好,感谢您的回答。我已经尝试过你的解决方案。它正在工作但远非准确,其中许多数据实际上存在于数组表中,但被 vlookup 标记为 N/A。我用黄色突出显示了示例数据。以下是更新后的文件链接:dropbox.com/s/j9c9y2hm7avcbyz/Book1.xlsx?dl=0。此案需要您的其他帮助。
    • 我相信您遇到的问题是您的查找表未按字母数字(1-9,A-Z)排序。如果是这种情况,VLOOKUP 将抛出错误。试试 =INDEX(Array!E:E,MATCH(D5,Array!E:E,0))
    • @pnuts 很好看,我完全错过了
    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 2016-03-27
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2018-06-29
    相关资源
    最近更新 更多