在Excel中查找匹配的通配符的索引

时间:2019-04-25 17:24:02

标签: excel wildcard vlookup excel-match

给出如下表格:

Sheet 1

Product Name
-----------------
Fancy Shoes
Plain Shoes
Comfy Slippers
Nice Loafers
Pressed Shirt
Tee Shirt
Collared Button-Up

和一张通配符:

Sheet 2

Product Wildcard   |   Product Category
---------------------------------------
*Shirt             |   Shirt
*Button-Up         |   Shirt
*Shoes             |   Shoes
*Loafers           |   Shoes
*Slippers          |   Shoes

我希望产生以下内容:

Product Name       |   Product Category
----------------------------------------
Fancy Shoes        |   Shoes
Plain Shoes        |   Shoes
Comfy Slippers     |   Shoes
Nice Loafers       |   Shoes
Pressed Shirt      |   Shirt
Tee Shirt          |   Shirt
Collared Button-Up |   Shirt

换句话说,我可以在工作表1中查找与工作表2中的产品通配符匹配的产品类别吗?

我尝试使用VLOOKUP('Sheet 1'!A2, 'Sheet 2'!A2:B6, 2, FALSE)MATCH('Sheet 1'!A2, 'Sheet 2'!A2:A6, 0)。两者都给我#N / A。我怀疑这些功能期望搜索文本是唯一可以通配的东西,而我的产品通配符是按字面意义使用的,而不是通配符。

我想知道是否有另一种方法可以使用内置的Excel函数来完成此操作,或者是否需要编写一些VBA?

在此先感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

下面是一个数组公式(用 Ctrl + Shift + Enter 输入):

=INDEX(Sheet2!$B$1:$B$5,MATCH(1,MATCH(Sheet2!$A$1:$A$5,Sheet1!A1,0),0))

enter image description here

您可以在包含公式的单元格上使用“公式”>“评估公式”,以逐步了解其工作方式。

答案 1 :(得分:0)

根据我的阅读here(特别是底部的注释),似乎单独使用VLOOKUP是不可能的。如果您所有的通配符都没有空格,则可以这样操作:(不是一个明确的公式,而是一系列算法步骤)

  • 使用something like this反转字符串(这是一个数组公式,因此需要使用Ctrl + Shift + Enter来使用它)
  • 使用FIND来获取反转版本中第一个空格的位置,然后从字符串的LEN中减去该位置即可得出通配符位之前的字符串量。
  • 使用RIGHT将字符串截断为通配符,然后将其与VLOOKUP一起使用。

答案 2 :(得分:0)

如果 ,每个单元格中只有 个单词, 确定类别(例如:鞋子,拖鞋,衬衫等)的时间总是 秒,您可以使用以下ready来获取类别:

INDEX/MATCH