Excel 通配符在 VLOOKUP 函数中找不到应有的匹配项

Excel 通配符在 VLOOKUP 函数中找不到应有的匹配项

我正在处理多个产品系列,每个系列都有多个产品。有些系列的产品比其他系列多,所有产品名称都是唯一的。在一个名为“prod fams”的工作表上,我有一个查找表,如下所示:

| Product names                   | Product family |
|:----                            |:------:        |
| Prod1, Prod2                    | Gizmos         |
| Thing1, Thing2, Thing3, Thing4  | Widgets        |

在另一张表中,我有一个现场故障数据库。每一行都是一个故障实例,并有一个与之关联的产品,如下所示:

| Case number | Date   | Product Name |
|:----        |:------:|:------:      |
| 1           | 2/21/22| Prod2        |
| 2           | 2/22/22| Thing3       |

我想在这个数据库中为产品系列添加第四列。我的公式是 Vlookup,如下所示:

=VLOOKUP("*"& C2 &"*",'prod fams'!A$1:B$12,2,FALSE)

所以我发现产品2(在本例中)在查找表的产品名称列中 - 注意星号通配符 - 并返回产品系列。这适用于“Gizmos”,但不适用于“Widgets”。对于 Widgets,我得到 #N/A。这是怎么回事?

答案1

不是这个wildcard方面。VLOOKUP()本身只能使用前255个字符。

(有很多方法可以解决这个问题,但这不是这里的重点。)

INDEX/MATCH有同样的问题。

但是,最简单的解决方案是使用XMATCH()(作为一个更新的函数,它能够处理更长的字符串)。

如果这对您很重要的话,这将允许您保留原始结构。

答案2

我找到了答案。显然,Excel 通配符只能搜索一定数量的字符。我的解决方法是在查找表中为“Widgets”创建另一行,并将一半产品放在第一行,其余放在第二行。

我不确定字符限制是多少,但我怀疑是 255。原因是我必须拆分的行大约有 280 个字符(并且 255 是十进制中的最大值字节)。

相关内容