【问题标题】:Excel: Match returns errorExcel:匹配返回错误
【发布时间】:2014-03-15 13:14:17
【问题描述】:

我在 excel 中有这个列表:

ID (A) | Name (B)
1      | xyz
2      | Yzx s.r.o
3      | xxx a.s.
...

在另一个列表中,我只有名称,需要根据上面的列表为它们分配 ID。

我使用此功能=Match(H4; ListName!B2:B50; 0)(H4 单元格包含我想从其他列表中匹配并获取 ID 的公司名称)。


没有匹配项,匹配函数返回#Nedostupný (#Not available)
有匹配项 , 匹配函数返回#Názov? (#姓名?)

编辑:什么可能导致这个问题? Match 函数是否适用于包含空格、点或其他特殊字符的字符串?列类型是否重要(格式是否设置为文本)...? PS:我想获取匹配的行数,然后从同一行的 A 列中选择 ID。有没有更简单的方法?如何将列名称与匹配返回的行结合起来?类似=A+Match(...)

【问题讨论】:

  • 我认为你应该使用 Czech 等价于 MATCH : POZVYHLEDAT。有关详细信息,请参阅piuha.fi/excel-function-name-translation/…。顺便说一句A返回相应的值使用=INDEX(ListName!A2:A50;POZVYHLEDAT(H4; ListName!B2:B50; 0))
  • 我没有这样的等价物。但是支持匹配,只是返回错误,我不明白为什么或如何摆脱它。
  • 从您的错误消息#Nedostupný#Názov? 我看到您使用的是非英文版的 excel。所以,你应该使用你的本地函数

标签: excel function excel-formula


【解决方案1】:
  1. 就像上面说的 simoco,你可能对本地化的函数名有问题。

  2. 您应该始终使用固定引用来查找列表,例如:=Match(H4; ListName!$B$2:B$50$; 0) 或此:=Match(H4; ListName!$B:$B; 0),否则当您向下填充公式时,列表引用也会向下移动: =Match(H4; ListName!B3:B51; 0)=Match(H4; ListName!B4:B52; 0) 等,所以它不会包含您需要的数据。

  3. 要组合或连接字符串,请使用& 运算符:="A"&MATCH(...)

  4. 也许您应该考虑使用VLOOKUP() 函数而不是MATCH(),它会根据第一列中的搜索返回另一列的值,而不是您要查找的值的数字位置。

【讨论】:

    【解决方案2】:

    首先,您的函数语法不正确 - MATCH 函数使用逗号 (,) 作为各个参数之间的分隔符,not 分号 (;)。

    其次,您应该在 MATCH 函数中为您的查找数组使用绝对单元格引用。

    第三,您需要确保存储查找数组的工作表名为 ListName(即与公式中引用的工作表相同);您的工作表名称中不应有任何空格(例如列表名称等),因为这将阻止 Excel 在您的工作簿中引用正确的工作表 [我假设您正在从同一个工作簿中调用 MATCH 函数(虽然不一定与您的查找数组相同的工作表)。

    因此,您的 MATCH 函数应为:

    =Match(H4,ListName!$B$2:$B$50,0)
    

    我已经检查了此代码 - 在使用 Excel 2010 或 Excel 2013 时,它非常适合您的预期目的(如您在上面的问题中所述)。

    【讨论】:

    • 我认为在某些非英语版本的 Excel 中使用分号来分隔参数,因为在这些国家/地区使用逗号作为小数分隔符。
    • @nekomatic:可能......我不会精通其他语言版本的 Excel(因为我自己不使用它们)。但是,如果 OP 打算使用MATCH,正如他/她在上面的初始帖子中所写,MATCH 函数只接受逗号作为其参数分隔符(不是分号),否则它可能会返回 #NAME 错误因为没有像MATCH 这样使用分号作为分隔符的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多