在字符串中查找文本的VLOOKUP函数

3
我在Sheet1中有一个名为DeviceName的列,其中包含类似于RTRNY653,SWNY653,...的数据。在Sheet2中,我有一个名为InterfaceName的列,其中包含接口名称,最后还列出了设备名称FA_01_RTRNY653,FA_12_SWNY653,...

获取与DeviceName相关的QoSID的标准公式是=VLOOKUP(DeviceName;Sheet2!InterfaceName;2;0),但由于InterfaceName包含更多文本,我卡住了...

问题:如何创建一个VLOOKUP函数,使用Sheet1中的DeviceName,在Sheet2上查找它,并从Sheet2获取列QoSID

示例数据

Sheet1
DeviceName
-----------
RTRNY653
SWNY653
RTRWS215
RTRCH888

Sheet2
InterfaceName     | QoSID
--------------------------
FA_01_RTRNY653    |   1
FA_12_SWNY653     |   2
S_00_RTRWS215     |   1
S_01_RTRWS215     |   3
1个回答

15

您可以像这样使用通配符:

=VLOOKUP("*"&DeviceName&"*";Sheet2!InterfaceName:QoSID;2;0)

还有,参考表必须是两列 :)


谢谢,我一到工作岗位就会检查。但我认为通配符是我正在寻找的 :) - CustomX
太棒了!通配符,我需要记住这个! - CustomX
有没有类似的应用程序,其中要查找的值不是子字符串,而是子字符串存在于vlookup表中?也就是说,您有一个子字符串表格及其对应的查找值,并且您想要查找一个较大的字符串,其中要查找的值是可能存在于要查找的值中的多个选项之一? - Xzila
1
@Xzila 是的,但我认为解决方案不会像上面那个那么简单。我会使用一个使用索引、查找/查找、行和最小值的数组公式。如果你有兴趣,请告诉我。 - Jerry
1
我使用了=IFERROR(INDEX({Col1_From_Table_of_SubStrings},MATCH(TRUE,ArrayFormula(ISNUMBER(SEARCH({Col2_From_Table_of_SubStrings},{ValueToSearchForSubStringsWithin}))),0)),"#NoSubStrings!"),但我仍然对您的解决方案感兴趣!我喜欢学习新的或更好的做事方法。 - Xzila
哦,我的代码实际上有点长而且慢。=IFERROR(INDEX({Col1_From_Table_of_SubStrings},MIN(IF(ISNUMBER(SEARCH({Col2_From_Table_of_SubStrings},{ValueToSearchForSubStringsWithin})),ROW({Col1_From_Table_of_SubStrings})))),"#NoSubStrings!")。唯一的好处是,如果使用SMALL/LARGE而不是MIN,它可以给出多个匹配项(例如,对于多个N值的数字序列使用SMALL({...}, N))。 - Jerry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接