已解决
【办公-excel】两个时间相减 (二) - 带毫秒的时间进行相减操作
来自网友在路上 161861提问 提问时间:2023-10-10 09:42:24阅读次数: 61
最佳答案 问答题库618位专家为你答疑解惑
一、使用内部函数
1.1 效果展示
=TEXT(((RIGHT(TEXT(B2,"yyyy-mm-dd hh:mm:ss.000"),LEN(TEXT(B2,"yyyy-mm-dd hh:mm:ss.000"))-FIND(".",TEXT(B2,"yyyy-mm-dd hh:mm:ss.000")))-RIGHT(TEXT(A2,"yyyy-mm-dd hh:mm:ss.000"),LEN(TEXT(A2,"yyyy-mm-dd hh:mm:ss.000"))-FIND(".",TEXT(A2,"yyyy-mm-dd hh:mm:ss.000"))))+(LEFT(TEXT(B2,"yyyy-mm-dd hh:mm:ss.000"),FIND(".",TEXT(B2,"yyyy-mm-dd hh:mm:ss.000"))-1)-LEFT(TEXT(A2,"yyyy-mm-dd hh:mm:ss.000"),FIND(".",TEXT(A2,"yyyy-mm-dd hh:mm:ss.000"))-1))*86400000)/86400000,"[h]:m:S.000")
其中:
-
B2
结束时间 -
A2
开始时间 - 单元格式:
yyyy-mm-dd hh:mm:ss.000
1.2 步骤分解
[B2]
2023-09-10 10:22:24.333[C2]
2023-09-11 10:22:23.2221.将时间转为字符串[B3]
2023-09-10 10:22:24.333[C3]
2023-09-11 10:22:23.2222.获取字符串长度[B4]
23[C4]
233.获取毫秒中·位置序号[B5]
20[C5]
204.截取日期+时间[B6]
2023-09-10 10:22:24[C6]
2023-09-11 10:22:235.截取毫秒[B7]
333[C7]
2226.获取日期时间差(天)[B8]
0.9999884267.获取毫秒差[B9]
-1118.日期时间差(天)转为日期时间差(毫秒)[B10]
863990009.合并日期时间差(毫秒)与毫秒差[B11]
8639888910.日期时间差(毫秒)转为日期时间差(天)[B12]
0.99998714111.日期时间差(天)格式化[B13]
23:59:58.889
- 1.将时间格式转为字符串 ——
=TEXT(B2,"yyyy-mm-dd hh:mm:ss.000")
|=TEXT(C2,"yyyy-mm-dd hh:mm:ss.000")
- 2.获取
字符串长度
——=LEN(B3)
|=LEN(C3)
- 3.获取
毫秒分隔符(·)位置序号
——=FIND(".",B3)
|=FIND(".",C3)
- 4.截取
日期时间
——=LEFT(B3,B5-1)
|=LEFT(C3,C5-1)
- 5.截取
毫秒
——=RIGHT(B3,B4-B5)
|=RIGHT(C3,C4-C5)
- 6.计算
日期时间差(天)
——=C6-B6
- 7.计算
毫秒差
——=C7-B7
- 8.
日期时间差(天)
转为日期时间差(毫秒)
——=B8*86400000
- 9.累计
日期时间差(毫秒)
与毫秒差
——=B10+B9
- 10.
日期时间差(毫秒)
转为日期时间差(天)
——=B11/86400000
- 11.
日期时间差(天)
格式化 ——=TEXT(B12,"[h]:m:S.000")
二、使用自定义函数
2.1 WPS使用js进行函数编程
2.1.1 将文件另存为 启用宏的工作簿(*.xlsm)
2.1.2 自定义函数DiffDate
使用快捷键Alt+F11弹出WPS 宏编辑器
并添加自定义函数
代码
/*** DiffDate Macro* @param {Date} start* @param {Date} end*/
function DiffDate(start,end)
{start1= start.Text;end1= end.Text;var milliSecondsStart = 0;if(start1.includes(".")){var startLst1 =start1.split(".");var startdate1 = startLst1[0];var startms1 = startLst1[1];var dateObj1 = new Date(startdate1);var t1 = parseInt(startms1);milliSecondsStart = dateObj1.getTime() + t1;}else{var dateObj1 = new Date(start1);milliSecondsStart = dateObj1.getTime();}var milliSecondsEnd = 0;if(end1.includes(".")){var endLst1 = end1.split(".");var enddate1 = endLst1[0];var endms1 = endLst1[1];var dateObj2 = new Date(enddate1);var t2 = parseInt(endms1);milliSecondsEnd = dateObj2.getTime() + t2;}else{var dateObj2 = new Date(end1);milliSecondsEnd = dateObj2.getTime();}var milliSeconds = milliSecondsEnd - milliSecondsStart;var pre = "";if(milliSeconds<0){milliSeconds = -milliSeconds;pre ="-"}var hours = Math.floor(milliSeconds / 3600000);var minutes = Math.floor((milliSeconds % 3600000) / 60000);var seconds = Math.floor(((milliSeconds % 3600000) % 60000) / 1000);var milliseconds = milliSeconds % 1000;var timeStr =pre + hours.toString() + ":" + ("00" + minutes.toString()).slice(-2) + ":" + ("00" + seconds.toString()).slice(-2) + "." + ("000" + milliseconds.toString()).slice(-3);return timeStr;
}
2.1.3 在工作簿中使用DiffDate函数
=DiffDate(A2,B2)
2.2 Office 使用VBA进行函数编程
因为没有安装Office,此处需要读者自行按照wps逻辑进行类似编程
扩展阅读
【办公-excel】两个时间相减
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"【办公-excel】两个时间相减 (二) - 带毫秒的时间进行相减操作":http://eshow365.cn/6-18298-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 【java基础学习】之DOS命令
- 下一篇: Linux Ftrace介绍