如何在Google Sheets中根据指定学校查询对应负责人员并拼接字符串
解决方法
前提约定
我们假设你的原始人员-学校关联表存储范围为A1:D5:
- A列A2到A5为人员姓名:Tim、John、Martin、Jack
- 第1行B1到D1为学校名称:School A、School B、School C
- 待填充结果的表格中,学校列从F2开始存放需要查询的学校名称,结果要输出到对应行的G列。
可用公式
公式1(自动批量填充,无需下拉)
在G2单元格输入以下公式,回车后会自动生成所有学校对应的人员结果:
=BYROW(F2:F4, LAMBDA(当前学校, TEXTJOIN(", ", TRUE, FILTER(A2:A5, OFFSET(B1:D1, 1, MATCH(当前学校, B1:D1, 0)-1, ROWS(A2:A5), 1)<>"" ) ) ))
公式2(兼容旧版,可下拉填充)
如果你的Google Sheets版本不支持BYROW函数,可在G2输入以下公式,下拉到对应行即可:
=TEXTJOIN(", ", TRUE, FILTER(A$2:A$5, OFFSET(B$1:D$1, 1, MATCH(F2, B$1:D$1, 0)-1, ROWS(A$2:A$5), 1)<>""))
逻辑说明
- 先通过MATCH函数定位要查询的学校在原始表表头的所在列
- 用OFFSET函数提取该学校对应的关联标识列(就是存放x/空值的列)
- 用FILTER筛选出关联列非空的所有人员姓名
- 最后用TEXTJOIN将人员姓名用逗号加空格拼接,自动跳过空值
- 全程仅判断单元格是否为空,不需要专门匹配字符"x",符合需求要求
内容的提问来源于stack exchange,提问作者Tahir
相关产品推荐
相关产品推荐

