You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GSheets(Google Sheets)数组查找值并返回对应范围结果方案咨询

可行解决方案

方案1:无需调整现有表格结构,直接使用公式实现

在Volunteers工作表的Assignation (expected)列第二行(假设姓名存放在A列,第二行开始是有效数据)输入以下公式,手动下拉填充即可匹配所有志愿者的任务:

=TEXTJOIN(CHAR(10), TRUE, 
  BYROW({'Activity 1'!A1:Z100, 'Activity 2'!A1:Z100, 'Activity 3'!A1:Z100}, 
  LAMBDA(row, IF(COUNTIF(row, A2)>0, 
    INDEX(row, 1)&" "&INDEX(row, 2)&":"&INDEX(row, MATCH(A2, row, 0)), 
    ""
  ))
))

说明:

  • 大括号内的工作表范围可根据你实际的活动数量增删,不需要提前排序Activity表内的志愿者名单
  • 公式里的INDEX(row, 1)、INDEX(row, 2)分别对应你Activity工作表每行的日期、时间字段,可根据你的实际表格列位置调整数字
  • TEXTJOIN会自动把同一个志愿者的多个任务用换行分隔,合并在同一个单元格内
  • 若使用新版Google Sheets支持动态溢出,可改用以下公式,输入一次即可自动匹配整列志愿者,不需要手动下拉:
=BYROW(A2:A, LAMBDA(name, IF(name="","",
  TEXTJOIN(CHAR(10), TRUE, 
    BYROW({'Activity 1'!A1:Z100, 'Activity 2'!A1:Z100, 'Activity 3'!A1:Z100}, 
    LAMBDA(row, IF(COUNTIF(row, name)>0, 
      INDEX(row, 1)&" "&INDEX(row, 2)&":"&INDEX(row, MATCH(name, row, 0)), 
      ""
    ))
  )
)))

方案2:微调表结构,后续维护成本更低

如果允许调整Activity X表的排版,建议你在每个Activity表的最右侧新增1列,预先把每行的「日期+时间+任务名称」拼接成摘要信息,比如每行的Z列输入=A1&" "&B1&":"&C1,之后可以用更简单的公式查询,运算速度也更快:

=TEXTJOIN(CHAR(10), TRUE, 
  FILTER({'Activity 1'!Z:Z, 'Activity 2'!Z:Z, 'Activity 3'!Z:Z}, 
  {'Activity 1'!A:Y, 'Activity 2'!A:Y, 'Activity 3'!A:Y}=A2)
)

后续新增活动时,只需要在大括号内新增对应工作表的相关列即可,不需要修改其他逻辑。

内容的提问来源于stack exchange,提问作者koyaaniqatsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:24:00