给出如下表格:
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?
在此先感谢您的帮助!
答案 0 :(得分:1)
下面是一个数组公式(用 Ctrl + Shift + Enter 输入):
=INDEX(Sheet2!$B$1:$B$5,MATCH(1,MATCH(Sheet2!$A$1:$A$5,Sheet1!A1,0),0))
您可以在包含公式的单元格上使用“公式”>“评估公式”,以逐步了解其工作方式。
答案 1 :(得分:0)
根据我的阅读here(特别是底部的注释),似乎单独使用VLOOKUP
是不可能的。如果您所有的通配符都没有空格,则可以这样操作:(不是一个明确的公式,而是一系列算法步骤)
FIND
来获取反转版本中第一个空格的位置,然后从字符串的LEN
中减去该位置即可得出通配符位之前的字符串量。RIGHT
将字符串截断为通配符,然后将其与VLOOKUP
一起使用。答案 2 :(得分:0)
如果 ,每个单元格中只有 个单词, 和 确定类别(例如:鞋子,拖鞋,衬衫等)的时间总是 秒,您可以使用以下ready
来获取类别:
INDEX/MATCH