Excel中按ID子串搜索列C,返回含该ID的完整单元格实现方案
解决Excel中按ID子串匹配返回对应单元格的问题
针对你需要在A列输入ID后,B列返回C列中包含该ID作为子串的完整单元格的需求,以下是适配不同Excel版本的解决方案:
适用于Excel 365/2021(支持动态数组)
在B1单元格输入以下公式,输入后公式会自动溢出匹配结果:
=FILTER(C:C,ISNUMBER(SEARCH(A1,C:C)),"无匹配结果")
- 公式说明:
SEARCH(A1,C:C):在C列的每个单元格中查找A1的位置,不区分大小写;若需区分大小写,替换为FIND(A1,C:C)ISNUMBER(...):将查找结果转换为布尔值(找到返回TRUE,未找到返回FALSE)FILTER:筛选C列中符合条件的单元格,最后一个参数是无匹配时的提示文本
适用于旧版Excel(无动态数组支持)
在B1单元格输入以下数组公式,输入完成后按Ctrl+Shift+Enter确认:
=TEXTJOIN(", ",TRUE,IF(ISNUMBER(SEARCH(A1,C:C)),C:C,""))
- 公式说明:
- 遍历C列所有单元格,判断是否包含A1对应的ID
TEXTJOIN将所有匹配到的单元格内容用逗号加空格连接,TRUE参数用于忽略空值- 若仅需返回第一个匹配项,可改用:
同样需按Ctrl+Shift+Enter确认,99999可替换为C列实际最大行号=INDEX(C:C,MIN(IF(ISNUMBER(SEARCH(A1,C:C)),ROW(C:C),99999)))
为什么VLOOKUP不适用?
VLOOKUP要求查找值必须位于查找区域的首列,且仅支持精确匹配或按首字符的模糊匹配,无法处理ID作为随机子串出现在单元格内容中的场景,因此无法满足需求。
内容的提问来源于stack exchange,提问作者Jack O
相关产品推荐
相关产品推荐

