我需要准备一个Excel公式来执行以下时间等式:
04:15:30应转换为04:25
18:30:15应转换为18:50
33:45:59应转换为33:75
30:14:14应该转换为30:23
此公式应将分钟转换为百分之一,并且不应对小时数进行任何操作,如上例所示。
我已经搜索了几个小时,可以找到这样的精确excel公式。
FIRST NOTE : if you make some improve on this formula (=SUBSTITUTE(TEXT(A1*24,"00.00"),".",":")) it could be help.
SECOND NOTE : as above formula note that it should not have any excel date conversion such as (MINUTE,HOUR,[hh]...etc)
提前致谢。
答案 0 :(得分:2)
正如我在评论中所述:当您希望ppl转换它而不使用excel的buildin转换时,您的33:45:59
是转换日期/时间。
让你的时间成为字符串,这个公式非常完美:
=LEFT(A1,2)&":"&TEXT(MID(A1,4,2)/3*5,"00")
=LEFT(A1,2)&TEXT(MID(A1,4,2)/3*5,""":""00")
但是如上所述:它已经转换为时间/日期并存储为double。因此,33:45:59
为1.40693287037037
。 (这种方式=LEFT(A1,2)
是"1."
而不是"33"
。
要改变它,你需要这样的公式:
=TRUNC(A1*24)&":"&TEXT(ROUND(MOD(A1*2400,100)-MOD(A1*1440,1)/3*5,0),"00")
或者,如果你想要在几秒钟内完成:
=TRUNC(A1*24)&":"&TEXT(ROUND(MOD(A1*2400,100),"00")
如果还没有TEXT
,那么你需要这样的东西:
=TRUNC(A1*24)&":"&IF(ROUND(MOD(A1*2400,100)-MOD(A1*1440,1)/3*5,0)<10,0,"")&ROUND(MOD(A1*2400,100)-MOD(A1*1440,1)/3*5,0)
=TRUNC(A1*24)&":"&IF(ROUND(MOD(A1*2400,100),0,"")&ROUND(MOD(A1*2400,100)
作为旁注:公式=SUBSTITUTE(TEXT(A1*24,"00.00"),".",":")
不包含任何日期/时间函数。
修改强>
使用substitude,它看起来像这样:( A1中的完整值)
=SUBSTITUTE(TEXT(ABS(TRUNC(FLOOR((A1-"220:00"-(59/86400)*((A1-"220:00")<0))*24,IF((A1-"220:00")<0,-1/60,1/60)),2)),"00.00"),".",":")&IF((A1-"220:00")<0,"-","")
-(59/86400)*((A1-"220:00")<0)
部分是为了确保其正常运行。没有,带秒的负数将向下舍入1分钟...只是数学:)
答案 1 :(得分:1)
它相当简单:将单元格格式化为带有两位小数的数字,制作公式=A1*24
。
时间格式在内部存储为一天中的几分之一。
要削减秒数,您应该使用=HOUR(A1) &MINUTE(A1)/60
答案 2 :(得分:1)
也许这对你有用:
=MAX((24*INT(A1))+((A1-INT(A1))*24),(-1*((24*INT(A1))+((A1-INT(A1))*24))))