我在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? (#NAME?)
=A+Match(...)
?
答案 0 :(得分:0)
与上面提到的simoco一样,您可能会遇到本地化功能名称的问题。
您应始终使用对查找列表的固定引用,例如:=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)
等,因此它不会包含您需要的数据。
要合并或更确切地连接字符串,请使用&
运算符:="A"&MATCH(...)
。
您可能应该考虑使用VLOOKUP()
函数而不是MATCH()
它会根据第一列中的搜索而不是您要查找的值的数字位置返回另一列中的值
答案 1 :(得分:0)
首先,函数的语法不正确 - MATCH函数使用逗号(,)作为各个参数之间的分隔符, 不 分号(;)。< / p>
其次,您应该在MATCH函数中为查找数组使用绝对单元格引用。
第三,您需要确保存储查找数组的工作表名为ListName(即与公式中引用的工作表相同);您的工作表名称中不应有任何空格(例如列表名称等),因为这会阻止Excel引用工作簿中的正确工作表[我假设您在同一工作簿中调用MATCH函数(虽然不一定是与查找数组相同的工作表]。
因此,您的MATCH函数应为:
=Match(H4,ListName!$B$2:$B$50,0)
我已经检查了这段代码 - 使用Excel 2010或Excel 2013时,它完全符合您的预期目的(如上述问题所述)。