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

求Google Sheets ArrayFormula:提取每位学生最早/最新测评成绩

自动匹配学生预/后测成绩(Google Sheets)

需求

  • 学生首次入机构参加阅读、数学分级测评,全年可多次复测,所有结果存入Exams表
  • Master表需自动按学生ID填充当年首次(预测试)、最新(进度测试)测评成绩,未参与则留空
  • 无需手动查询,实现数据自动同步

现有问题

原公式未按ID精准匹配,无法正确提取对应学生的最早/最新成绩,且需逐列单独设置ARRAYFORMULA:

={"Date";ARRAYFORMULA(if(A4:A="","",vlookup(Exams!A4:A,sort(Exams!A2:F,4,1),4,0)))}

解决方案

1. 提取预测试(最早成绩)

在Master表预测试列的表头下方(如C3)输入以下数组公式,一次性匹配所有学生的最早测评结果:

={"预测试阅读";ARRAYFORMULA(IF(A4:A="","",XLOOKUP(A4:A,Exams!A:A,Exams!C:C,"",0,1)))}
  • 逻辑:XLOOKUP精确匹配学生ID,1参数指定返回最早出现的对应成绩;若Exams表未按日期排序,可嵌套SORT:XLOOKUP(A4:A,SORT(Exams!A:C,4,1),SORT(Exams!A:C,4,1),,0,1)(第4列为日期列,升序排序)

2. 提取进度测试(最新成绩)

在进度测试列表头下方输入:

={"进度测试阅读";ARRAYFORMULA(IF(A4:A="","",XLOOKUP(A4:A,Exams!A:A,Exams!C:C,"",0,-1)))}
  • 逻辑:-1参数指定返回最晚出现的对应成绩,确保取最新测评结果

3. 批量生成多科目成绩

若需同时生成阅读、数学的预/后测列,使用HSTACK合并多列结果,一次性生成4列数据:

={"预测试阅读","预测试数学","进度测试阅读","进度测试数学";ARRAYFORMULA(IF(A4:A="",,HSTACK(
XLOOKUP(A4:A,Exams!A:A,Exams!C:C,"",0,1),
XLOOKUP(A4:A,Exams!A:A,Exams!D:D,"",0,1),
XLOOKUP(A4:A,Exams!A:A,Exams!C:C,"",0,-1),
XLOOKUP(A4:A,Exams!A:A,Exams!D:D,"",0,-1)
)))}

注意事项

  • 确认Exams表列对应关系:A=学生ID,C=阅读成绩,D=数学成绩,第4列=测评日期(可根据实际列调整公式中的列索引)
  • 未参与测评的学生将自动留空,无需额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:57:23