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

Google Sheets:给定总数与时间间隔,按30分钟拆分分配的公式咨询

Google Sheets实现时间分段与数值分配的公式

前提假设

假设:

  • 总数放在单元格A1
  • 时间间隔的开始时间放在B1
  • 时间间隔的结束时间放在C1

步骤1:生成30分钟时间分段

用SEQUENCE函数生成完整的30分钟间隔序列,公式如下:

=SEQUENCE(ROUNDUP((C1-B1)*1440/30), 1, B1, 30/1440)

公式说明:

  • (C1-B1)*1440:把时间间隔转换成总分钟数(Google Sheets中1代表1天,1天=1440分钟)
  • ROUNDUP((C1-B1)*1440/30):计算需要拆分的30分钟分段数,向上取整确保覆盖所有时间(哪怕最后一段不足30分钟也保留)
  • 30/1440:表示每次递增30分钟(转换成天的单位)

步骤2:为每个分段分配数值(平均分配)

如果要直接生成「时间分段+对应数值」的组合结果,用数组公式一次性完成:

=ARRAYFORMULA(
  IF(SEQUENCE(ROUNDUP((C1-B1)*1440/30))="", "",
  {
    SEQUENCE(ROUNDUP((C1-B1)*1440/30), 1, B1, 30/1440),
    A1/ROUNDUP((C1-B1)*1440/30)
  }
  )
)

公式说明:

  • ARRAYFORMULA:让公式批量处理生成数组结果
  • A1/ROUNDUP(...):将总数平均分配到每个30分钟分段中
  • 大括号{}:将时间序列和数值序列合并成两列的结果

非平均分配(按实际时长占比)

如果最后一段不足30分钟,需要按实际时长占总时长的比例分配数值,可用以下公式:

=ARRAYFORMULA(
  IF(SEQUENCE(ROUNDUP((C1-B1)*1440/30))="", "",
  {
    SEQUENCE(ROUNDUP((C1-B1)*1440/30), 1, B1, 30/1440),
    A1*(MIN(B1+(SEQUENCE(ROUNDUP((C1-B1)*1440/30))*30/1440), C1)-B1-(SEQUENCE(ROUNDUP((C1-B1)*1440/30))-1)*30/1440)/(C1-B1)
  }
  )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:22:10