从 ms excel 中的时间戳中减去分钟数
Subtracting minutes from a timestamp in msexcel
我正在从像 Tue Nov 06 07:33:00 UTC 2018 这样的格式的单元格中提取时间戳。现在,使用 vbscript 代码或 vba 我想从上面提到的代码中减去一些分钟时间戳。我怎样才能做到这一点?
split(split("Tue Nov 06 07:33:00 UTC 2018",":")(1),":")(0)
会给你自己的会议记录。您可以将拆分分配给数组,然后使用 `join
以正确的分钟数重新加入
大概是这样
Public Function addToTimeStamp(strTimeStamp As String, lngMinutes As Long) As String
Dim a() As String
a = Split(strTimeStamp, " ")
a(3) = DateAdd("n", lngMinutes, a(3))
addToTimeStamp = Join(a, " ")
End Function
无需进入 VBA,您可以将时间戳与日期分开,然后处理时间戳并相应地调整日期。
假设您的日期在 A 列中并且时间戳始终采用相同的结构,从第 2 行开始
所以首先创建一个只有时间戳的列,即 B 列:
=MID(A2,FIND("UTC",A2)-9,8)
07:33:00
这里先找到"UTC"在字符串中的位置,然后从左边9个字符开始提取8个字符(占时间和"UTC"之间的space)。
您已经可以在 minutes/hours/seconds 上工作了。
营业时间:
=NUMBERVALUE(LEFT(B2,2))
07
分钟:
=NUMBERVALUE(Mid(B2,4,2))
33
秒:
=NUMBERVALUE(Right(B2,2))
00
您还可以使用相同的逻辑提取时间戳的日期部分。 C 列:
=MID(A2,FIND(B2,A2)-11,10)
Tue Nov 06
最后,您还可以将所有这些组合成一个 Excel 日期,并直接对结果数字进行操作(这将确保您获得一个新的有效日期,该日期占 incrementing/decrementing hours/days/months/years,也会自动计算闰年。)
最终日期,包括时间戳,D 列:
=DATEVALUE(MID(A2,FIND(B2,A2)-3,2)&"-"&MID(A2,FIND(B2,A2)-7,3)&"-"&RIGHT(A2,4))+NUMBERVALUE(LEFT(B2,2))/24+NUMBERVALUE(MID(B2,4,2))/(24*60)+NUMBERVALUE(RIGHT(B2,2))/(24*60*60)
43410.3145833333
在这个最终数字上,您可以直接将分钟数 increase/decrease 添加到它上。这个数字的单位是"days"所以一分钟等于1/(24*60),一小时等于1/24。删除33分钟示例:
=D2 - 33/(24*60)
43410.2916666667
将格式更改为 [dd/mm/yyyy hh:mm] 将导致:
06/11/2018 07:00:00
我正在从像 Tue Nov 06 07:33:00 UTC 2018 这样的格式的单元格中提取时间戳。现在,使用 vbscript 代码或 vba 我想从上面提到的代码中减去一些分钟时间戳。我怎样才能做到这一点?
split(split("Tue Nov 06 07:33:00 UTC 2018",":")(1),":")(0)
会给你自己的会议记录。您可以将拆分分配给数组,然后使用 `join
以正确的分钟数重新加入大概是这样
Public Function addToTimeStamp(strTimeStamp As String, lngMinutes As Long) As String
Dim a() As String
a = Split(strTimeStamp, " ")
a(3) = DateAdd("n", lngMinutes, a(3))
addToTimeStamp = Join(a, " ")
End Function
无需进入 VBA,您可以将时间戳与日期分开,然后处理时间戳并相应地调整日期。
假设您的日期在 A 列中并且时间戳始终采用相同的结构,从第 2 行开始
所以首先创建一个只有时间戳的列,即 B 列:
=MID(A2,FIND("UTC",A2)-9,8)
07:33:00
这里先找到"UTC"在字符串中的位置,然后从左边9个字符开始提取8个字符(占时间和"UTC"之间的space)。
您已经可以在 minutes/hours/seconds 上工作了。
营业时间:
=NUMBERVALUE(LEFT(B2,2))
07
分钟:
=NUMBERVALUE(Mid(B2,4,2))
33
秒:
=NUMBERVALUE(Right(B2,2))
00
您还可以使用相同的逻辑提取时间戳的日期部分。 C 列:
=MID(A2,FIND(B2,A2)-11,10)
Tue Nov 06
最后,您还可以将所有这些组合成一个 Excel 日期,并直接对结果数字进行操作(这将确保您获得一个新的有效日期,该日期占 incrementing/decrementing hours/days/months/years,也会自动计算闰年。)
最终日期,包括时间戳,D 列:
=DATEVALUE(MID(A2,FIND(B2,A2)-3,2)&"-"&MID(A2,FIND(B2,A2)-7,3)&"-"&RIGHT(A2,4))+NUMBERVALUE(LEFT(B2,2))/24+NUMBERVALUE(MID(B2,4,2))/(24*60)+NUMBERVALUE(RIGHT(B2,2))/(24*60*60)
43410.3145833333
在这个最终数字上,您可以直接将分钟数 increase/decrease 添加到它上。这个数字的单位是"days"所以一分钟等于1/(24*60),一小时等于1/24。删除33分钟示例:
=D2 - 33/(24*60)
43410.2916666667
将格式更改为 [dd/mm/yyyy hh:mm] 将导致:
06/11/2018 07:00:00