请求Google Sheets用Look Up/Match/Concatenate实现多值匹配合并
Google Sheets 多编号匹配合并疾病名称解决方案
需求场景
- 「Sheet1」(可自行命名,比如「疾病对照表」)存储编号与疾病名称的一一对应关系
- 「Sheet2」的「我的疾病」列是逗号分隔的编号列表,需新增「疾病名称」列,将每个编号对应的疾病名称匹配后合并为单个单元格,自动过滤无匹配的编号
示例数据
Sheet1(疾病对照表)
| 编号 | 疾病名称 |
|---|---|
| 1 | 精神分裂症 |
| 2 | 中风 |
| 3 | 焦虑症 |
| 4 | 双相情感障碍 |
| 5 | 高血压 |
| 22 | 哮喘 |
Sheet2 初始数据
| 我的疾病 | 姓名 |
|---|---|
| 1,2,6 | Jane |
| 1,3,2 | Janet |
| 1 | Margaret |
Sheet2 期望结果
| 我的疾病 | 姓名 | 疾病名称 |
|---|---|---|
| 1,2,22 | Jane | 精神分裂症, 中风, 哮喘 |
| 1,3,2 | Janet | 精神分裂症, 焦虑症, 中风 |
| 1 | Margaret | 精神分裂症 |
解决方案公式
在Sheet2的「疾病名称」列第一个单元格(比如C2)输入以下公式,下拉填充即可:
=TEXTJOIN(", ", TRUE, ARRAYFORMULA(IFERROR(VLOOKUP(SPLIT(A2, ","), 'Sheet1'!A:B, 2, FALSE), "")))
公式拆解
SPLIT(A2, ","):将「我的疾病」列的逗号分隔字符串拆分为单个编号的数组VLOOKUP(..., 'Sheet1'!A:B, 2, FALSE):针对每个编号,在Sheet1的A列精准匹配,返回对应的B列疾病名称IFERROR(..., ""):将匹配失败的编号(如示例中的6)转为空值,避免显示错误提示TEXTJOIN(", ", TRUE, ...):用「逗号+空格」连接所有非空的疾病名称,TRUE参数会自动忽略空值,只保留有效匹配结果
内容的提问来源于stack exchange,提问作者Vanessa Teo
相关产品推荐
相关产品推荐

