Google Sheets中拆分单元格后实现VLOOKUP匹配关联事件数据咨询
Google Sheets 多ID拆分匹配事件自动扩展方案
你需要的自动拆分ID、匹配对应事件信息、新数据自动扩展的效果可以通过以下ARRAYFORMULA实现,支持同时识别.和/两种ID分隔符,无需手动更新公式:
完整公式
将公式粘贴到结果区域的首个空白单元格即可生效:
=ARRAYFORMULA( LET( // 筛选非空的原始数据行,可根据你的实际表列范围调整A2:C为你的实际数据范围 raw, FILTER(A2:C, A2:A<>""), // 指定ID所在列为原始数据的第3列(对应原表C列),如果ID在其他列修改末尾数字即可 id_col, INDEX(raw,,3), // 统一分隔符:把所有/替换为.,避免两种分隔符导致拆分错误 split_ids, REGEXREPLACE(id_col, "\/", "."), // 计算每行拆分后的ID数量 id_count, LEN(split_ids) - LEN(SUBSTITUTE(split_ids, ".", "")) + 1, // 生成行重复标记,用于匹配每个ID对应的原始数据行 row_repeat, BYROW(id_count, LAMBDA(c, SEQUENCE(1,c,1,0))), // 生成与拆分后ID一一对应的原始行号序列 result_rows, TOCOL(IF(row_repeat=1, SEQUENCE(ROWS(raw)), NA()), 2), // 拆分所有ID为单列 all_ids, TOCOL(SPLIT(TEXTJOIN(".", 1, split_ids), "."), 1), // 拼接原始行的事件信息与拆分后的ID,可按需增删要保留的原始字段 HSTACK(INDEX(raw, result_rows, 1), INDEX(raw, result_rows, 2), all_ids) ) )
调整说明
- 若你的原始数据不在A-C列,修改
FILTER(A2:C, A2:A<>"")中的范围,非空判断条件A2:A<>""可替换为你表中一定有值的列(如表单提交时间列) - 若ID不在第3列,修改
INDEX(raw,,3)末尾的数字,比如ID在D列则填4 - 若需要保留更多原始字段,在
HSTACK参数中新增INDEX(raw, result_rows, 列号)即可
内容的提问来源于stack exchange,提问作者Ammar Merhbi
相关产品推荐
相关产品推荐

