Google表格:实现课程下次开放日期计算及参会人员批量统计
Google表格多周课程追踪处理方案
1. 计算课程下次开放日期(L列公式)
假设表格第一行(B1:K1)为各课程周的日期,A列是课程名称,每一行对应课程的参会记录或课程条目。要在L列批量计算每个课程的第一个未标记为Closed/Refunded的开放日期,可使用以下数组公式:
=ARRAYFORMULA( IF(A2:A="", "", XLOOKUP(TRUE, (B2:K<>"Closed")*(B2:K<>"Refunded"), B1:K1, "", 0, 1 ) ) )
公式说明:
ARRAYFORMULA实现全列批量计算,无需逐行输入XLOOKUP逐行匹配第一个既不是Closed也不是Refunded的单元格,返回对应第一行的日期- 空行自动返回空值,避免无效内容
2. 批量显示对应下次开放日期的参会人员
要在L3及以下单元格自动展示对应课程下次开放日期的参会人员,结合FILTER与ARRAYFORMULA实现批量处理:
=ARRAYFORMULA( FLATTEN( BYROW(UNIQUE(FILTER(A2:A, A2:A<>"")), LAMBDA(course, { "", FILTER(INDEX(B:K, , MATCH(XLOOKUP(TRUE, (FILTER(B:K, A2:A=course)<>"Closed")*(FILTER(B:K, A2:A=course)<>"Refunded"), B1:K1, "", 0, 1), B1:K1, 0)), FILTER(A2:A, A2:A=course)<>"") } )) ) )
公式说明:
UNIQUE(FILTER(A2:A, A2:A<>""))提取所有不重复的课程名称BYROW遍历每个课程,先通过XLOOKUP定位下次开放日期,再用MATCH找到对应列FILTER筛选出该课程在目标日期列的所有参会人员FLATTEN将结果整理为单列,自动填充到L3及以下单元格
若参会人员以标记形式(如"是"/"否")记录,可调整FILTER条件,筛选符合标记的人员姓名(需对应姓名列引用)。
内容的提问来源于stack exchange,提问作者Tim B
相关产品推荐
相关产品推荐

