在Excel中匹配不同长度的数字string

我有两个数据集,我想匹配的基础上,包含一个数字string的公共领域。 由于一个数据集的string包含在另一个string的string中(例如, 9876与12 9876 0匹配),所以我使用了LEFT() (或RIGHT() )和VLOOKUP() 。 这种方法的问题是,当数字string改变数字的位数和子串的位置(例如, 987654与12 987654匹配)时,我必须手动重写公式。 任何有关如何更有效地进行比赛的见解?

以下数组公式1将从真实数字的查找列中生成正确的通配符结果。

 =VLOOKUP("*"&H5&"*", TEXT(H$8:I$10, "0"), 2, FALSE) 

在下面的图片中,请注意,这有一个副作用,即将返回的值从一个真实的数字转换为文本。 一个双重的一元可以照顾。

vlookup_wildcard


¹ 数组公式需要使用Ctrl + Shift + Enter 来完成。 一旦正确input第一个单元格,就可以像其他任何公式一样向下或向右填充或复制它们。 尝试和减less您的全列引用范围更接近代表实际数据的范围。 数组公式将计算周期对数化,所以最好将参考范围缩小到最小。 有关更多信息,请参阅数组公式的示例 。

您可以在VLOOKUP使用通配符。

=VLOOKUP("*9876*", H8:I10, 2, FALSE)

要么

=VLOOKUP("*"& B4 &"*", H8:I10, 2, FALSE)

而不是寻找一个等于9876的单元格,这将寻找一个包含9876的单元格,并且不需要“ LEFT ,“ RIGHT ”等。