【问题标题】:Specific date and time range in ExcelExcel 中的特定日期和时间范围
【发布时间】:2011-11-16 10:04:26
【问题描述】:

我每天早上 8 点到晚上 8 点每小时都有十二场活动。

我在 Excel 电子表格中有两列:“日期和时间”和“说明”。

我需要为“日期和时间”列的每个单元格添加日期和时间戳

16/11/2011 08:00

所以前十二个单元格将如下所示:

16/11/2011 08:00
16/11/2011 09:00
16/11/2011 10:00
16/11/2011 11:00
16/11/2011 12:00
16/11/2011 13:00
16/11/2011 14:00
16/11/2011 15:00
16/11/2011 16:00
16/11/2011 17:00
16/11/2011 18:00
16/11/2011 19:00
16/11/2011 20:00

那么第二天就会到来:

17/11/2011 08:00
17/11/2011 09:00
17/11/2011 10:00
17/11/2011 11:00
17/11/2011 12:00
17/11/2011 13:00
17/11/2011 14:00
17/11/2011 15:00
17/11/2011 16:00
17/11/2011 17:00
17/11/2011 18:00
17/11/2011 19:00
17/11/2011 20:00

有没有办法让我在几个月内自动填写该列?

【问题讨论】:

  • 你的问题不是很清楚:只有一次(我建议使用复制粘贴,你会比在 SO 上写问题更快)所以我想你需要用某种方式重复它宏?
  • 我一天有 12 个事件,所以一年有 4380 个事件。复制/粘贴每个事件的日期和时间相当困难。是的,我需要它是重复的。
  • 你有什么编程技巧。如果是这样,请在例如 C# 中编写一个小程序来创建一个 CSV 文件并将其导入 Excel。工作量不会很大。

标签: excel excel-formula


【解决方案1】:

将您的第一个日期输入单元格A1

16/11/2011 08:00

A2及以下单元格中,添加公式:

=A1+TIME(IF(HOUR(A1)=20,12,1),0,0)

然后将公式向下拖动到需要的位置。

[编辑] 稍微解释一下公式:为了保持公式相当简单,它是相当具体的。
有意义的是,

  • 公式从上一个日期开始A1 +
  • 然后,它增加了几个小时(使用 TIME 函数),但没有分钟或秒(0,0) 即见公式的结尾
  • 要选择要添加的小时数,它会检查前一个日期小时是否为8pm(即HOUR(A1) = 20)。
    • 如果是这样,它会添加12 小时,以便新日期在第二天早上8am
    • 如果没有,则仅添加 1 小时(下一个事件)

[编辑 2] 跳过周末的新公式(它检查前一个日期是否是星期五 (WEEKDAY=6) 和小时是 8pm (HOUR(A1)=20)。如果是这样,它会增加两天(只是添加2,因为Excel中的日期存储为序列号,单位是天)。

=A1+TIME(IF(HOUR(A1)=20,12,1),0,0) + IF(AND(HOUR(A1)=20,WEEKDAY(A1)=6),2,0)

【讨论】:

  • 我认为你的解决方案接近完美,但它给了我语法错误。
  • 抱歉,当我国际化我的公式时,我留下了一些分号;。英文版 Excel 使用逗号,。我已经编辑了我的答案。
  • 你会这么好心解释一下公式吗? 20、12、1 究竟是什么意思?如果我想有 2 小时的间隔怎么办?
  • 这是一个很好的解释。有没有办法让我们在公式中跳过周末?
  • 你真是太棒了!非常感谢您为我节省了几个小时的猴子工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2014-11-17
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多