如何在Google Sheets中实现多查找拼接以完成订单汇总
Google Sheets:订单ID匹配库存名称并拼接明细
核心解法
不用脚本,靠原生函数组合就能搞定:拆分CSV格式的订单ID → 匹配库存表的商品名 → 拼接成可读明细,支持隐藏辅助列优化性能。
前提假设(对应你的表格结构)
- 库存表:表名
库存,A列=商品ID(格式可控,建议设为文本),B列=商品名称 - 订单表:表名
订单,某列(比如C列)存CSV格式的订单ID(如101,103,105),目标列(比如D列)生成拼接后的明细
方案1:单公式直接输出(无需辅助列)
在订单表目标单元格(如D2)粘贴以下公式,下拉填充即可:
=TEXTJOIN("、", TRUE, XLOOKUP(SPLIT(C2, ","), 库存!A:A, 库存!B:B, "[无匹配商品]", 0))
公式拆解
SPLIT(C2, ","):把CSV格式的ID字符串拆成单个ID的数组XLOOKUP(...):用每个ID去库存表A列匹配,返回对应B列的商品名;找不到就显示[无匹配商品]TEXTJOIN("、", TRUE, ...):把所有匹配到的商品名用顿号拼接,自动忽略空值
方案2:隐藏辅助列(大表格更流畅)
如果订单ID数量多,单公式可能卡顿,拆分到隐藏列更高效:
- 插入辅助列1(比如E列,右键设为隐藏),E2输入:
=SPLIT(C2, ","),拆分ID为单个单元格 - 插入辅助列2(比如F列,隐藏),F2输入:
=XLOOKUP(E2, 库存!A:A, 库存!B:B, "[无匹配商品]", 0),下拉填充到对应行 - 目标列D2输入:
=TEXTJOIN("、", TRUE, F2:F),一键拼接结果
格式注意事项
- 商品ID强制设为文本格式:避免数字ID因自动转格式(比如带前导0的ID变成纯数字)导致匹配失败
- CSV分隔符用英文逗号:中文逗号会让
SPLIT函数无法正确拆分 - 如果订单ID带数量(比如
101×2,103×1),可以用这个增强版公式:=TEXTJOIN("、", TRUE, XLOOKUP(LEFT(SPLIT(C2, ","), FIND("×", SPLIT(C2, ","))-1), 库存!A:A, 库存!B:B, "[无匹配商品]", 0)&"×"&RIGHT(SPLIT(C2, ","), LEN(SPLIT(C2, ","))-FIND("×", SPLIT(C2, ","))))
内容的提问来源于stack exchange,提问作者catspajamas
相关产品推荐
相关产品推荐

