Excel 2019中如何用VLOOKUP匹配长于查找值的字符串?
Excel 2019 字符串最长公共前缀匹配方案
针对待搜索字符串与A列查找值长度不定(无论谁长谁短)的场景,我们可以通过辅助列+主公式的方式实现「从左到右最长公共前缀匹配」,同时满足「公共字符至少4位」的要求。
步骤1:添加辅助列计算公共前缀长度
在C2单元格输入以下数组公式(输入完成后按 Ctrl+Shift+Enter 确认,而非直接回车),并下拉填充到C5:
=MAX(IF(MID($D2,ROW(INDIRECT("1:"&MIN(LEN($D2),LEN(A2)))),1)=MID(A2,ROW(INDIRECT("1:"&MIN(LEN($D2),LEN(A2)))),1),ROW(INDIRECT("1:"&MIN(LEN($D2),LEN(A2)))),0)
这个公式会计算D2字符串与A列对应单元格的最长连续公共前缀长度:
MID(...,ROW(INDIRECT(...)),1):逐个提取两个字符串的每一位字符IF(...):对比每一位字符,相同则记录当前位置,不同则记0MAX(...):取最大的连续匹配位置,即最长公共前缀长度
步骤2:编写主公式获取结果
在E2单元格输入以下公式,下拉填充即可:
=IF(MAX($C$2:$C$5)<4,"未找到",INDEX($B$2:$B$5,MATCH(MAX($C$2:$C$5),$C$2:$C$5,0)))
公式逻辑:
MAX($C$2:$C$5):获取所有A列单元格与D2的最长公共前缀长度的最大值IF(...):若最大值小于4,直接返回「未找到」INDEX+MATCH:找到第一个达到最长匹配长度的A列单元格,返回对应的B列字母
验证示例
- 当D2=ABCDE时,C2-C5的计算结果分别为3、5、3、5,最大值为5≥4,第一个匹配的是A3单元格(ABCDEFG),返回B3的H
- 当D2=ABCDEFGHIJKLM时,C2-C5的计算结果分别为3、7、3、9,最大值为9≥4,匹配的是A5单元格(ABCDEFGHIW),返回B5的Y
内容的提问来源于stack exchange,提问作者Rasec Malkic
相关产品推荐
相关产品推荐

