2020年10月7日,今天要处理6000多个记录信息,补充这几千个信息处理日期和时间栏,经过查询资料整理日期和时间的运算应用程序。
一、使用公式对日期运算
首先,我们对表格中的日期(2020-04-01)直接加1的话,会得到一个五位数的数值43923,这时并未得到我们的需求值“2020-04-02”。
日期值直接加1的结果
此时,经过分析,对于求和运算的结果值,单元格是以常规格式展现的,加法运算后默认获得的是一个数值,日期+1能进行运算,也说明日期也是一种数值,此时,我对c1单元格右击将单元格格式调整为常规,原来的日期(2020-04-01)变成了43922;到此,就豁然开朗了。然后我查了一下微软官方的说明:Excel中的日期 是根据您指定的类型和区域设置(国家/地区),将日期和时间序列号显示为日期值。接下来我对C2单元格右击,调整格式为自定义“yyyy-mm-dd”后,原来的43923显示为了“2020-04-02”。
接下来我查询了一下根据日期判断星期的函数,weekday(serial_number,return_type),参数说明:serial_number 是要返回日期数的日期,它有多种输入方式:带引号的文本串(如"2001/02/26")、序列号(如35825 表示1998 年1 月30 日) 或其他公式或函数的结果(如DATEVALUE("2000/1/30"))。return_type为确定返回值类型的数字,数字1 或省略,则1 至7 代表星期天到数星期六,数字2 ,则1 至7 代表星期一到星期天,数字3则0至6代表星期一到星期天。实例说明:WEEKDAY("2020-10-01",1)返回5 (星期四),WEEKDAY("2020-10-01",2)返回4(星期四)
weekday()函数实例探索
至此,如果我们如果想通过函数得到周一到周五的日期的话,我们使用WEEKDAY(serial_number,2)来判定前一天返回的数值是否小于5就可以了。
我们将日期列的格式调整为自定义“yyyy-mm-dd”格式,然后使用if函数,IF(WEEKDAY(C2,2)<5,C2+1,C2+3)就可以得到工作日的日期。
日期的运算完成了,那时间08:30:00怎么以秒或者分来相加运算呢?
我们用刚才的分析右击调整单元格格式,发现它并未有任何变化,也就说说“08:30:00”就是一个字符串。这就联想到用字符串的格式调整。
Excel中 TEXT( value, format_text)
参数说明:Value 为数值、计算结果为数字值的公式,或对包含数字值的 单元格的引用。
Format_text 为“单元格格式”对话框中“数字”选项卡上“分类”框中的 文本形式的数字格式。
这里我们尝试将Format_text设置为“hh:mm:ss ”格式,发现可以得到我们想要的格式;下面就是时间的运算了;如果将text(“08:30:00”+1,“hh:mm:ss)进行运算,发现返回的值还是“08:30:00”;仔细想来也是,08:30:00+1,是秒相加呢还是分相加呢还是时相加呢,这个并没有明确,如果将相应的格式(00:00:01)相加会不会有理想的结果呢?运算后发现就是理想的状态
时分秒的运算
到此就基本完成了今天的任务。
如果,您有更好更便捷的方法,欢迎评论区留言,相互学习交流!谢谢