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

时间:2016-02-16 07:18:28

标签: excel matching vlookup

我有2个数据集,我想根据包含数字字符串的公共字段进行匹配。由于一个数据集的字符串包含在另一个数据集的字符串中(例如, 9876 与12 9876 0匹配),我使用的是{的组合{1}}(或LEFT())和RIGHT()。这种方法的问题是,当数字字符串改变数字位数和子串的位置时,我必须手动重写公式(例如, 987654 与12 987654 <匹配/强>)。有关如何更有效地进行比赛的任何见解?

2 个答案:

答案 0 :(得分:1)

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

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

在下图中,请注意,这会产生将返回值从真实数字转换为文本的副作用。 double-unary可以照顾到这一点。

vlookup_wildcard

¹数组公式需要用 Ctrl + Shift + Enter↵完成。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas

答案 1 :(得分:0)

您可以在VLOOKUP

中使用通配符

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

OR

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

不是寻找等于9876的单元格,而是查找包含9876的单元格,而不需要LEFTRIGHT等。