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

如何使用Google Script将学生姓名批量插入到Countifs等公式中?

实现方案

完全可以通过脚本批量生成公式,以下分别给出Excel和谷歌表格两种常用工具的可用方案:

方案1:Excel VBA脚本

使用前请先修改代码中的工作表名称、COUNTIFS参数为你实际的配置:

Sub 批量填充出勤统计公式()
    Dim 统计工作表 As Worksheet, 出勤数据源表 As Worksheet
    Dim 最大行号 As Long
    
    ' 替换为你自己的工作表名称
    Set 统计工作表 = ThisWorkbook.Worksheets("统计页")
    Set 出勤数据源表 = ThisWorkbook.Worksheets("原始出勤数据")
    
    ' 获取A列学生姓名的最后一行行号
    最大行号 = 统计工作表.Cells(统计工作表.Rows.Count, "A").End(xlUp).Row
    
    ' 批量写入COUNTIFS公式,A2为相对引用,自动适配每行对应学生姓名
    统计工作表.Range("B2:B" & 最大行号).Formula = "=COUNTIFS(" & 出勤数据源表.Name & "!A:A, A2)"
End Sub

运行脚本后,B列所有对应A列有姓名的行都会自动生成匹配的COUNTIFS公式。

方案2:谷歌表格 Apps Script

function 批量填充出勤统计公式() {
  const 表格文件 = SpreadsheetApp.getActiveSpreadsheet();
  // 替换为你自己的工作表名称
  const 统计工作表 = 表格文件.getSheetByName("统计页");
  const 出勤数据源表 = 表格文件.getSheetByName("原始出勤数据");
  
  // 计算A列有效姓名的行数
  const 姓名列内容 = 统计工作表.getRange("A:A").getValues();
  const 最大行号 = 姓名列内容.filter(item => item[0] !== "").length;

  // 批量写入公式,可自行调整COUNTIFS的匹配规则
  const 统计公式 = `=COUNTIFS('${出勤数据源表.getName()}'!A:A, A2)`;
  统计工作表.getRange(2, 2, 最大行号 - 1, 1).setFormula(统计公式);
}

替代简化方案(无需脚本)

你可以直接在第一个学生对应的公式单元格(如B2)写好带相对引用的公式=COUNTIFS(原始出勤数据!A:A,A2),写完后双击单元格右下角的填充柄,公式会自动顺着A列有内容的行向下填充,自动适配每行的学生姓名,操作比脚本更简便。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:51:01