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

如何在Google Sheets中使用JS自定义函数统计两日期之间的周四数量

实现步骤

  • 打开你的Google表格,点击顶部菜单栏的「扩展程序」>「Apps脚本」,进入脚本编辑器
  • 删除编辑器中默认生成的空白代码,粘贴下方的自定义函数代码:
/**
 * 计算两个日期范围内的周四总天数
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @return {Number} 周四的总天数
 * @customfunction
 */
function COUNT_THURSDAYS(startDate, endDate) {
  // 适配批量选中整列计算的场景
  if (Array.isArray(startDate)) {
    return startDate.map((row, index) => {
      const s = row[0], e = endDate[index][0];
      // 空行返回空值
      if (!s || !e) return '';
      return calculateThursdays(s, e);
    })
  }
  // 单行计算场景
  return calculateThursdays(startDate, endDate);
}

// 复用你原有的计算逻辑
function calculateThursdays(d0, d1) {
  const THURSDAY_CODE = 3;
  // 开始日期晚于结束日期直接返回0
  if (d0.getTime() > d1.getTime()) return 0;
  const ndays = 1 + Math.round((d1 - d0) / (24 * 3600 * 1000));
  return Math.floor((ndays + (d0.getDay() + 6 - THURSDAY_CODE) % 7) / 7);
}
  • 点击编辑器顶部的保存按钮,为项目任意命名,首次使用需要按照提示完成脚本授权(遇到安全提示时选择「高级」>「继续访问」即可,脚本为你自己编写无安全风险)
  • 回到Google表格即可直接调用函数:
    • 逐行计算:如果A列存储开始日期、B列存储结束日期,在目标单元格输入=COUNT_THURSDAYS(A2, B2),下拉填充即可批量得到所有行的结果
    • 自动批量计算:无需下拉,直接在首行目标单元格输入=COUNT_THURSDAYS(A2:A, B2:B),函数会自动为所有有有效日期的行返回计算结果

注意事项

  • 请确保存储开始、结束日期的单元格格式为「日期」类型,不要使用文本格式,否则会导致函数报错
  • 完全复用了你提供的计算规则,计算结果和原有逻辑一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:24:04