【问题标题】:Index Match across 2 sheets not working跨 2 个工作表的索引匹配不起作用
【发布时间】:2017-05-20 20:49:37
【问题描述】:

我正在尝试以下功能,但它不起作用:

=INDEX(账户!$A$2:$AB$2820,MATCH($A$2,账户!$E$2:$E$2820,0),6)

我得到 #N/A 结果

两个工作表都在同一个工作簿中。

Accounts 具有帐户名称(E 列)和帐户 ID(F 列)

当前工作表(客户)具有帐户名称(A 列),但没有帐户 ID。

我正在尝试将当前工作表中的帐户名称与帐户工作表中的帐户名称相匹配,然后输入帐户 ID。

希望这是有道理的。花了几个小时试图完成这项工作。请帮忙!

【问题讨论】:

  • @pnuts,是index(range, row, column)中的列号
  • 你的公式是正确的。您的数据中有一个原因导致无法找到匹配项。需要有关数据的更多信息。例如,检查名称中是否有多余的空格。
  • 尝试对查找列进行排序(帐户上的 E)并在匹配的第三个条件中使用 1 而不是 0。如果您得到回报,请开始查看数据以找出找不到匹配项的原因。记住0 表示完全匹配。
  • @ScottCraner 注意关于 1 作为 Match 的第三个参数的建议。如果人们不理解近似匹配的概念,他们可能会成为无意近似匹配的受害者,这可能不是他们想要的,并且可能导致他们的电子表格中出现完全错误的结果。近似匹配可能是解决方案,但 #N/A 也可能是有效的。这真的取决于上下文。
  • @teylyn 我试图表明问题不是公式而是数据,因此`如果你得到回报,开始查看数据以找出为什么找不到匹配项。 `

标签: excel indexing match


【解决方案1】:

感谢您的回复。我进一步研究了这个公式,发现它不起作用的两个原因:

  1. 第一项没有匹配导致#N/A
  2. 公式一直查看所有后续行的第一个结果。

原配方: =INDEX(账户!$A$2:$AB$2820,MATCH($A$2,账户!$E$2:$E$2820,0),6)

正确的公式: =INDEX(账户!$A$2:$AB$2820,MATCH(A2,账户!$E$2:$E$2820,0),6)

当您将原始公式下拉到后续行时,它保持完全相同。当您下拉正确的公式时,查找的值会正确更新。

【讨论】:

    【解决方案2】:

    index需要1列,去掉6

    =INDEX(Accounts!$A$2:$A$2820,MATCH($A$2,Accounts!$E$2:$E$2820,0))
    

    索引是您希望从中获得结果的列,在本例中是帐户表上的列 A,匹配是具有您正在寻找的条件的列,在这种情况下是帐户表上的列 E

    如果这仍然返回 NA,那么您没有与您的值匹配,请检查以确保您匹配的列具有相同的值,即使是空格也可以使其返回 NA

    【讨论】:

    • 不,INDEX 不需要是一列。您可以索引二维数组。
    • @user3005775 也许您应该自己去学习更多有关 Excel 的知识。在documentation for Index中你会发现数组版本的函数可以处理第三个参数,其实就是在多行多列的范围内需要第三个参数。
    • 这就是你试图帮助人们得到的结果
    • 没有人怀疑你的意图,但你可能想要交付。
    • 您的答案没有回答问题或解决问题并提供错误信息,OP 也希望在末尾返回 F 列而不是 A。只有等式的 MATCH 部分需要是单列或单行,而不是 INDEX
    猜你喜欢
    • 2019-02-06
    • 2020-04-24
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多