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

Excel时间区间去重问题:生成无重复连续时间区间

解决Excel动态生成无重复连续时间区间问题

方法一:Excel 365/2021 动态公式法(自动更新)

适配新版本Excel,结果随原始数据自动同步更新:

  1. 提取唯一小时起始点:在新工作表的A2单元格输入以下公式,直接回车即可(Excel 365/2021支持动态数组,无需数组输入):
    =SORT(UNIQUE(IF(WTW!D4:D100<>"",LEFT(TEXT(WTW!D4:D100,"HH"),2)&":00","")))
    
    说明:UNIQUE自动去重,SORT保证时间按升序排列,IF过滤空值,TEXT提取小时并格式化为HH:00格式。
  2. 生成连续时间区间:在B2单元格输入公式,下拉填充到A列有值的行:
    =A2&" - "&TEXT(VALUE(A2)+TIME(1,0,0),"HH:00")
    
    说明:VALUE(A2)将文本时间转为数值,TIME(1,0,0)实现加1小时,再转回HH:00格式,最终拼接成完整区间。

方法二:Power Query法(灵活适配大/动态数据)

适合数据量较大或需要复杂处理逻辑的场景,支持一键刷新更新:

  1. 打开WTW工作表,选中D列数据(包含表头,无表头可手动添加),点击「数据」选项卡→「从表格/区域」,导入Power Query编辑器。
  2. 添加自定义列提取小时起始点:点击「添加列」→「自定义列」,输入公式:
    = Time.StartOfHour([D])
    
  3. 移除重复项:选中刚添加的自定义列,点击「开始」→「移除重复项」。
  4. 排序:选中自定义列,点击「排序升序」按钮,确保时间按顺序排列。
  5. 添加结束时间列:再次添加自定义列,输入公式实现加1小时:
    = [自定义列] + #duration(0, 1, 0, 0)
    
  6. 合并区间列:添加第三个自定义列,拼接起止时间:
    = Text.From([自定义列], "HH:mm") & " - " & Text.From([自定义列.1], "HH:mm")
    
  7. 清理列:删除不需要的原始列和中间列,仅保留合并后的区间列。
  8. 关闭并上载:点击「关闭并上载」,将结果导出到新工作表。后续原始数据变化时,右键点击结果表格→「刷新」即可更新。

方法三:旧版本Excel(无动态数组功能)

适配Excel 2019及更早版本,通过辅助列实现:

  1. 提取小时起始点:在新表A2输入你的原公式,下拉填充到对应行:
    =IF(WTW!D4="","",LEFT(TEXT(WTW!D4,"HH"),2)&":00")
    
  2. 标记唯一值:在B2输入公式,下拉填充:
    =COUNTIF($A$2:A2,A2)=1
    
    公式会标记每行的小时值是否为首次出现,TRUE代表唯一值。
  3. 筛选唯一值:选中B列,点击「数据」→「筛选」,仅勾选TRUE,复制A列可见单元格到新区域(如C列)。
  4. 生成区间:在D2输入公式,下拉填充:
    =C2&" - "&TEXT(VALUE(C2)+TIME(1,0,0),"HH:00")
    
    后续原始数据变化时,重新下拉填充A、B列,再筛选复制即可更新结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:40