【问题标题】:Finding the index of a matching wildcard in excel在excel中查找匹配通配符的索引
【发布时间】:2019-04-25 17:24:01
【问题描述】:

给定一张这样的表格:

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?

在此先感谢您的帮助!

【问题讨论】:

    标签: excel wildcard vlookup excel-match


    【解决方案1】:

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

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

    您可以在包含公式的单元格上使用“公式”>“评估公式”来逐步查看它是如何工作的。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        如果每个单元格中只有两个词并且这个词确定类别(例如:鞋子、拖鞋、衬衫等...)总是第二,您可以使用以下INDEX/MATCH 获取类别:

        =INDEX('Sheet 2'!B$2:B$6,MATCH(MID('Sheet 1'!A2,FIND(" ",'Sheet 1'!A2)+1,LEN('Sheet 1'!A2)-FIND(" ",'Sheet 1'!A2)),'Sheet 2'!A$2:A$6,0))
        

        【讨论】:

          猜你喜欢
          • 2018-11-01
          • 1970-01-01
          • 2017-03-22
          • 1970-01-01
          • 2020-01-14
          • 1970-01-01
          • 2017-04-22
          • 1970-01-01
          • 2016-08-25
          相关资源
          最近更新 更多