如何在Google Sheets中实现多结果Vlookup匹配(水果关联多Grade)
Google Sheets 水果匹配并合并Grade实现方案
场景说明
Sheet1仅含Fruit_Name列(如A列,数据从A2开始),记录需要匹配的水果;Sheet2包含多列分类(如Red_Fruits、Yellow_Fruits)和对应的Grade列,需将Sheet1中每个水果在Sheet2所有分类列中出现过的Grade合并为逗号分隔的字符串(如Apple对应A,B)。
实现步骤
假设Sheet2的分类列为B到D列,Grade列为E列(可根据实际表格结构调整范围):
- 在Sheet1的B2单元格输入以下批量公式,按回车后自动应用到整个列:
=BYROW(A2:A, LAMBDA(fruit, IF(fruit="", "", TEXTJOIN(",", TRUE, FILTER(Sheet2!$E:$E, MMULT(--(Sheet2!$B:$D=fruit), SEQUENCE(COLUMNS(Sheet2!$B:$D),1,1,0))>0)))))
- 参数调整说明:
- 若Sheet2的分类列是其他范围(如C到F列),将公式中的
Sheet2!$B:$D替换为对应列范围 - 若Sheet2的Grade列是其他列(如F列),将公式中的
Sheet2!$E:$E替换为对应列范围
公式拆解
BYROW(A2:A, LAMBDA(fruit, ...)):遍历Sheet1中每个水果名称IF(fruit="", "", ...):跳过空单元格,避免生成无效结果MMULT(--(Sheet2!$B:$D=fruit), SEQUENCE(...))>0:检查Sheet2当前行的任意分类列是否匹配目标水果,返回布尔值用于筛选FILTER(Sheet2!$E:$E, ...):筛选出所有匹配行的Grade值TEXTJOIN(",", TRUE, ...):将筛选出的Grade用逗号分隔合并,自动忽略空值
简化场景(Sheet2为单水果列结构)
如果Sheet2是单水果列+分类列+Grade列的结构(如A列是水果,B列是分类,C列是Grade),可使用更简单的公式:
=BYROW(A2:A, LAMBDA(fruit, IF(fruit="", "", TEXTJOIN(",", TRUE, FILTER(Sheet2!$C:$C, Sheet2!$A:$A=fruit)))))
内容的提问来源于stack exchange,提问作者Anya
相关产品推荐
相关产品推荐

