You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用COUNTIF结合列标题统计指定日期范围内的已参加课程数量

COUNTIF结合列标题统计指定日期范围内的已参加课程数量

嗨,我来帮你搞定这个统计需求!先理清楚你的场景:表格顶部的列标题都是课程日期,每行对应一位人员,单元格里的Yes/No标记是否参加了该课程;你需要在D列统计每行人员参加的课程中,日期落在A列(起始日)和B列(结束日)之间的数量,而且希望一个公式就能自动填充整列,还能支持后续新增的课程列(哪怕超过N列也没问题)。

给你一个能直接用的动态数组公式,把它输入到D2单元格,就能自动溢出填充整列:

=BYROW(A2:B, LAMBDA(r, COUNTIFS(
    E1:XFD1, ">"&INDEX(r, 1),
    E1:XFD1, "<"&INDEX(r, 2),
    OFFSET(r, 0, COLUMN(E1)-1), "Yes"
)))

我给你拆解下这个公式的逻辑:

  • BYROW(A2:B, LAMBDA(r, ...)):自动遍历A2到B列的每一行,把当前行的起始日、结束日打包传给变量r
  • COUNTIFS:这是核心的多条件统计函数,同时满足以下三个条件的单元格会被计数:
    • 第1行的课程日期(从E列到Excel最后一列XFD)大于当前行A列的起始日期
    • 第1行的课程日期小于当前行B列的结束日期
    • 当前行对应课程的出勤标记为Yes
  • OFFSET(r, 0, COLUMN(E1)-1):定位到当前行从E列开始的所有出勤数据,确保和课程日期列一一对应

如果你的课程列不是从E列开始的,只要把公式里的E1改成对应的起始列(比如课程从F列开始就改成F1)就行。

这个公式的优势很明显:

  • 一次输入到D2,整列自动填充,不用手动复制公式到每一行
  • E1:XFD1涵盖了所有可能的后续新增列,只要新增的课程列标题是日期,就能自动纳入统计范围

备注:内容来源于stack exchange,提问作者DanCue

火山引擎 最新活动