我们有一个每31个小时运行一次的流程,并且希望在Excel 2010电子表格中有一个列,该列反映了该流程在未来一年中每天运行的时间和日期,例如
开始日期(单元格:A1):
10/31/2016 1:00
11/1/2016 8:00
11/2/2016 15:00
11/3/2016 22:00
2016年11月5日5:00
2016年11月6日12:00
2016年11月7日19:00
2016年11月9日2:00
11/10/2016 9:00
11/11/2016 16:00
11/12/2016 23:00
11/14/2016 6:00
我目前正在使用公式:A2 = A1 +(31/24)来填充似乎正常工作的列中的日期和时间。我需要在不连续的日子之间插入一个空白行(为了突出显示这一事实,以便操作员更容易阅读而不是在错误的时间发起过程!)这就是困难所在。我假设我需要一个单独的VBA函数来逐步浏览每个单元格并比较前一个单元格中的日期日期(忽略时间值。),如果日期大于1(如同第二天那样)。插入一个空行。
我正在寻找以下方案的解决方案,但我正在努力解决这个问题,并希望得到任何人能够提供的任何指导/帮助。
非常感谢
答案 0 :(得分:5)
您不需要VBA功能,可以使用
功能完成A3 = IF(A2="",A1+31/24, IF(INT(A2+31/24)=INT(A2)+1,A2+31/24,""))
*为了实现这一目标,您必须手动填充单元格A1
和A2
。
您可以使用INT()
函数获取DateTime
字段的日期部分,因此通过检查{{},检查添加31小时是否会在序列中留下1天的间隔变得很简单1}}。
所以,解释一下这个部分的功能
INT(A2+31/24) = INT(A2)+1
将检查日期是否连续,如果是,它将填充IF(INT(A2+31/24)=INT(A2)+1,A2+31/24,"")
。如果没有,它将留空。
外部DateTime
检查上面的单元格是否为空白。如果是,该函数将使用上面的那个。