You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单元格中用"文本包含"筛选并返回多个FILE_ID值?

解决方案

一、Google Sheets 函数方案

1. 单行拼接所有匹配结果

如果需要把符合条件的FILE_ID用分隔符拼接成单行文本,用TEXTJOIN+FILTER组合:

=TEXTJOIN(", ", TRUE, FILTER(A:A, ISNUMBER(SEARCH(D2, B:B))))
  • 说明:SEARCH(D2, B:B)检查B列(Criteria)是否包含D2中的指定文本(不区分大小写,用FIND则区分);FILTER筛选出对应的A列(FILE_ID);TEXTJOIN把结果用逗号加空格拼接,TRUE参数会自动忽略空值。

2. 横向分散返回每个匹配结果

如果要让每个FILE_ID单独占一列(横向排列),可以用TRANSPOSE+QUERY:

=TRANSPOSE(QUERY(A:B, "SELECT A WHERE B CONTAINS '"&D2&"'", 0))
  • 说明:QUERY语句筛选出B列包含指定条件的所有A列数据;TRANSPOSE把纵向查询结果转成横向排列。

3. 可拖拽的单个单元格公式

如果需要手动拖拽公式生成横向结果,在起始单元格(比如E2)输入:

=IFERROR(INDEX(FILTER(A:A, ISNUMBER(SEARCH($D$2, B:B))), COLUMN()-COLUMN(E2)+1), "")
  • 说明:先筛选出所有符合条件的FILE_ID数组,INDEX根据当前列的序号取数组中的对应值;IFERROR保证没有更多结果时显示空单元格;$D$2要锁死条件单元格,避免拖拽时偏移。

二、SQL 方案

如果用数据库查询,直接通过模糊匹配筛选并返回结果:

1. 返回所有匹配的单行记录

SELECT FILE_ID
FROM your_table_name
WHERE Criteria LIKE '%1.108.1-%'
  • 说明:LIKE '%关键词%'实现包含匹配,%是通配符。

2. 拼接成单行结果

如果需要把所有匹配的FILE_ID合并成单个字符串:

  • MySQL/MariaDB:
SELECT GROUP_CONCAT(FILE_ID SEPARATOR ', ') AS matched_file_ids
FROM your_table_name
WHERE Criteria LIKE '%1.108.1-%'
  • SQL Server:
SELECT STRING_AGG(FILE_ID, ', ') AS matched_file_ids
FROM your_table_name
WHERE Criteria LIKE '%1.108.1-%'

三、原公式问题说明

  • 你之前用的VLOOKUP只能返回第一个精确匹配的结果,无法处理包含匹配,也不支持多值返回,所以满足不了需求。
  • 第二个IF公式存在语法错误(括号位置错误),且逻辑上依然依赖VLOOKUP的单值返回,解决不了多结果的问题。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:15:22