时间计算公式

18910111214»

评论

  • 谢谢。但我还需要24小时格式的时间,以便我可以计算持续时间

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    @Amanda P有许多解决方案散布在这个线程中,从12小时转换到24小时。第一步是计时(看起来你已经完成了)。从这里你只需要抽出分钟数,除以60,然后加上小时数,上午11:25分得到11.25分,晚上11:30分得到23.5分。


    一旦你从时间中得到一个数字,你可以根据需要加/减得到持续时间,还有许多其他的解决方案可以将数字转换回时间格式。

    thinkspi.com

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    试图将尽可能多的解决方案放在这个线程中…


    在进行进一步的计算之前,将12小时的时间转换为24小时的时间更容易:

    =VALUE(LEFT([时间列]@row, FIND(":",[时间列]@row) -1)) + IF(CONTAINS("p",[时间列]@row), IF(VALUE(LEFT([时间列]@row, FIND(":",[时间列]@row) -1)) <> 12,12), IF(VALUE(LEFT([时间列]@row, FIND(":",[时间列]@row) -1)) = 12, -12)))


    这只是小时的部分。minutes的部分保持不变

    值(中期((电子邮件保护)找到(”:“(电子邮件保护)) + 1,2) / 60


    计算员工工作时间

    你能在Smartsheet中计算时间吗?

    时区转换(包括已解公式)

    日期/时间/年

    标记日期和时间重叠

    如何创建一天中的时间列?

    需要从时间列创建一个“shift”列



    我们需要计算两个日期/时间之间有多少工作时间。

    时间采用24小时格式,小时和分钟之间用冒号隔开。

    周末、节假日和非工作时间都需要排除在外。

    假期日期列在另一张纸的一栏中。

    工作时间为周一至周五,上午8点至下午5点。


    最初的发布

    发布解决方案



    第3页Addison Spencer的解决方案:

    在这里是指向包含您的解决方案的已发布工作表的链接。这是在没有辅助列的情况下构建的,因此整个计算可以在一个更大的公式中完成。输入随机时间是为了考虑各种可能性(甚至是一些你说不应该发生的事情),比如下午开始和结束。以am开始和结束。在中午开始和结束。从午夜开始。


    我使用IFERROR在发生错误时输出空白。这主要是由空白的工作日单元格引起的。


    我还调整了格式,使所有时间都是h:mm或hh:mm。


    查看工作表,公式位于最左边的[注释/超链接]列的底部。您将沿着行和跨列填充该公式。

    接下来是每周每天的时间条目,最后是每周每天的总工作时间(减去半小时的休息时间)。


    如果你有任何问题,请随时告诉我。


    公式如下:

    = IFERROR(如果((电子邮件保护)= " left ", 0, ((VALUE(MID))(电子邮件保护)找到(“-”,(电子邮件保护)) + 1, find (":",(电子邮件保护)找到(“-”,(电子邮件保护))) - (find ("-",(电子邮件保护)(1) + (1) + (2)(电子邮件保护)) = "p", IF((电子邮件保护)找到(“-”,(电子邮件保护)) + 1, find (":",(电子邮件保护)找到(“-”,(电子邮件保护))) - (find ("-",(电子邮件保护)(1) <> 1, 1), if (1), 1)(电子邮件保护)找到(“-”,(电子邮件保护)) + 1, find (":",(电子邮件保护)找到(“-”,(电子邮件保护))) - (find ("-",(电子邮件保护)(1) + 1)) = 1, -1)(电子邮件保护)LEN ((电子邮件保护)) - 2, 2)) / 60) - (value (left ())(电子邮件保护)找到(”:“(电子邮件保护)(1) + if (1)(电子邮件保护)找到(“-”,(电子邮件保护)) - 1, 1) = "p", IF(VALUE(LEFT())(电子邮件保护)找到(”:“(电子邮件保护)(1) <> 1, 1); (1), 1)(电子邮件保护)找到(”:“(电子邮件保护)(1) = 1, (1) = 1, (2)(电子邮件保护)找到(”:“(电子邮件保护)) + 1, 2)) / 60)) - 0.5), "")



    工作时间没有日期重叠。午餐和下班时间减去。12h次,使用“am”和“pm”,没有前导零。



    计算时间的格式为HH:MM:SS

    2021年5月14日

    你好,我希望有人能帮助我在智能表计算时间。我们与广播的制作团队以及其ob欧宝娱乐app手机下载他非制作团队合作,所以计算时间变得非常重要,因为越来越多的部门正在使用Smartsheet进行各种用例:人员和资源管理,制作前/后期管理等。

    我的一个老同事实际上设法创建了一个表格,能够计算到每秒帧数(HH:MM:SS:fps),因为他是一个技术专家。工作流程是你输入的开始和结束时间的项目已经显示(前2列),然后在列4 (Fr_In)它使用一个公式:

    =IF([Time Code IN (IN HH:MM:SS)]14 <> "", ((((VALUE(LEFT([Time Code IN (IN HH:MM:SS)] 14,2)) * 90000)))) + (VALUE(RIGHT([Time Code IN (IN HH:MM:SS)] 14,2)) + INT(VALUE(RIGHT([Time Code IN (IN HH:MM:SS)] 14,8), 2)) * 25)) + INT(VALUE(RIGHT(LEFT([Time Code IN (IN HH:MM:SS)] 14,5), 2)) * 1500)))

    将第一列的值转换为数字。深蓝色那一行的例子是,在这个例子中,10小时等于90万帧。

    然后使用等效公式计算第5列(Fr_Out)输出的每分钟帧数数值:

    =IF([Time Code OUT (in HH:MM:SS)]14 <> "", ((((VALUE(LEFT([Time Code OUT (in HH:MM:SS)] 14,2)) * 90000)))) + (VALUE(RIGHT([Time Code OUT (in HH:MM:SS)] 14,2)) * 25) + INT(VALUE(RIGHT([Time Code OUT (in HH:MM:SS)] 14,5), 2)) * 1500)))

    然后在第6列(Fr_Dur)中减去这2个数字,得到以帧/秒为单位的时间持续差值。然后,我的同事使用一些辅助列(最后3列)将第6列中的值转换为每个关联列中的小时、分钟和秒,分别使用以下公式:

    =如果(((Fr_Dur) 14/90000) < 10,“0”+ (INT ([Fr_Dur] 14/90000)), (INT ([Fr_Dur] 14/90000))) +”:“

    =如果(INT (([Fr_Dur] 14 - (INT [Fr_Dur](14/90000) * 90000)) / 1500) < 10,“0”+ INT (((Fr_Dur) 14 - (INT [Fr_Dur] (14/90000) * 90000)) / 1500), INT (((Fr_Dur) 14 - (INT [Fr_Dur](14/90000) * 90000)) / 1500)) +”:“

    =如果(INT (([Fr_Dur] 14 - (INT [Fr_Dur](14/1500) * 1500)) / 25) < 10,“0”+ INT (((Fr_Dur) 14 - (INT [Fr_Dur] (14/1500) * 1500)) / 25), INT (((Fr_Dur) 14 - (INT [Fr_Dur] (14/1500) * 1500)) / 25))

    https://us.v-cdn.net/6031209/uploads/KDN0PT3TJID0/screenshot-2021-05-14-at-17-22-57.png

    我正在尝试调整他的旧表格,对于这个特殊的用例,团队不需要像帧那样细粒度地整理数据,但我们仍然需要精确到秒(HH:MM:SS)。

    乍一看,上面的代码似乎正确地计算了值,但实际上,最后两行的持续时间值略有错误,分别为3秒和2秒。我知道这听起来很迂腐,但是,广播的时间安排是至关重要的!!

    我在社区页面上查找了许多解决方案,然后绞尽脑汁试图将这些建议应用到我的问题上,但我似乎无法让它们起作用。我希望有人能帮助简化目前的解决方案。

    我已经发布了一个版本,如果它使它更容易尝试玩公式:https://app.smartsheet.com/b/publish?EQBCT=b181d63d35f2473fb14c1757a0508b10.任何指导和指示都是非常感激的。


    查看文章




    但对你来说,有几个关键的区别。首先,您只需要从一列转换时间,而不是从开始列和结束列转换时间。在上面的解决方案中,总是有两个数字的小时,但我注意到在你的例子中只有一个。我们需要用这个公式:

    =(VALUE(LEFT([Start Time]@row, 2)) * 3600) + (VALUE(MID([Start Time]@row, 4,2)) * 60) + VALUE(RIGHT([Start Time]@row, 2)))


    并将其调整为:

    =(VALUE(LEFT([起始时间]@row, FIND(":",[起始时间]@row) - 1)) * 3600) + (VALUE(MID([起始时间]@row, FIND(":",[起始时间]@row) + 1,2)) * 60) + VALUE(RIGHT([起始时间]@row, 2)))


    一旦你把所有的时间都转换成数值,你就可以对这一列求平均值。然后,要将其转换回hh:mm:ss格式,您需要将链接解决方案中的三个独立列“hh:”、“mm:”和“ss:”,并将它们全部添加到单个单元格的单个字符串中。


    =hh:公式+ mm:公式+ ss:公式

    thinkspi.com

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    @Leibel Shuchat我想出了一个很棒的方法来计算系统生成的创建列和修改列之间的持续时间:


    标题:开始日期

    公式:

    = DATEONLY ((电子邮件保护)


    标题:开始时间

    公式:

    =如果(总和(值(左(右((电子邮件保护)LEN ((电子邮件保护)) - 9),查找(":",右((电子邮件保护)LEN ((电子邮件保护)) (1) (1) (1)) = 1, 0, sum (value(左)(右)((电子邮件保护)LEN ((电子邮件保护)) - 9),查找(":",右((电子邮件保护)LEN ((电子邮件保护)(1) * (1) * (1)) + sum (value (mid (1))(电子邮件保护)找到(”:“(电子邮件保护)(1, 2)) + if(右)(电子邮件保护), 2) = " pm ", 720, 0) + 1


    标题:结束日期

    公式:

    = DATEONLY ((电子邮件保护)


    标题:结束时间

    公式:

    =如果(总和(值(左(右((电子邮件保护)LEN ((电子邮件保护)) - 9),查找(":",右((电子邮件保护)LEN ((电子邮件保护)) (1) (1) (1)) = 1, 0, sum (value(左)(右)((电子邮件保护)LEN ((电子邮件保护)) - 9),查找(":",右((电子邮件保护)LEN ((电子邮件保护)(1) * (1) * (1)) + sum (value (mid (1))(电子邮件保护)找到(”:“(电子邮件保护)(1, 2)) + if(右)(电子邮件保护), 2) = " pm ", 720, 0) + 1


    标题:持续几分钟

    公式:

    =SUM((SUM([结束日期]@row -[开始日期]@row) * 24) * 60) + IF([开始日期]@row <[结束日期]@row) + SUM(1440 -[开始时间]@row) +[结束时间]@row,[结束时间]@row -[开始时间]@row)


    最后一栏将给出格式化的日、时、分:

    标题:持续时间

    公式:

    =如果(持续时间(分钟)@row > 1439年ROUNDDOWN(总和(持续时间(分钟)@row / 60) / 24日0)+“天”+如果ROUNDDOWN(总和(持续时间(分钟)@row / 60) / 24日0)> 1,”年代 ", "") + ", ", "") + 如果(MOD(持续时间分钟@row, 1440) > 59岁ROUNDDOWN(总和(MOD(持续时间分钟@row, 1440) / 60), 0) +“小时”+如果总和(MOD(持续时间分钟@row, 1440) / 60) > 1,”年代 ", "") + ", ", "") + 如果(MOD(持续时间分钟@row, 60) > 0,国防部(60分钟时间@row,) +“分钟”+如果(MOD(持续时间分钟@row, 60) > 1,“s”,""), "") + 如果(持续时间分钟@row > 0 , ".", "")



    用户:“Leibel S”



    Leibel博士年代✭✭✭✭✭✭

    11/17/21

    @L_123@Paul新来的

    感谢你关于使用Smartsheet存储的数字来提取时差的帖子。我以前从未听说过这个,受到这个想法的启发。

    我能够解析信息并分解Smartsheet如何存储信息。

    开始:

    (电子邮件保护)-(电子邮件保护)将返回带有部分日的小数的天数。

    每天有86400秒。如果除以1/86400,得到0.0000115740740740741。

    然而,Smartsheet仅适用于MAX 5小数,这就是为什么尝试乘和除由上述公式返回的数字来获得您的时间将不准确,因为它是四舍五入的。

    我解决这个问题的方法是将数字相乘以返回所有小数,而不仅仅是上面公式中显示的最大5个小数:

    =([时差]@row - ROUNDDOWN([时差]@row, 0)) * 100000000000000

    一旦我们得到了所有的完整数字,我们就可以把它除以1157407407.40741来得到一天的秒数。

    然后,您可以使用上面的返回值来返回一天中的小时、分钟和秒:

    小时:

    =INT([总秒数]@row / 3600)(返回小时数)。

    分钟:

    =INT(MOD([Total Seconds]@row, 3600) / 60)

    秒:

    =MOD([总秒数]@行,60)


    一个完全格式化的列的例子是:

    ="D:" + INT([时差]@行)+ " H:" + INT([总秒数]@行/ 3600)+ " M:" + INT(MOD([总秒数]@行,3600)/ 60)+ " S:" + MOD([总秒数]@行,60)


    请让我知道,如果你发现以上是准确的。

    谢谢你!



    24小时时间到12小时时间的转换:

    =(价值(左(时间列@row,发现(“:”,[时间列]@row) - 1))——如果(价值(左(时间列@row,发现(“:”,[时间列]@row) - 1)) > 12日,12日,0 )) + ":" + 中期(时间列@row,找到“:”,[时间列]@row) + 1, 2 ) + " " + 如果(值(左(时间列@row,发现(“:”,[时间列]@row) - 1)) > = 12,“点”、“点”)

    thinkspi.com

  • Found another one that I have used a lot but don't seem to have published:<\/p>

    When working with time I find it is easier to convert the times into 24hr format. To pull the hour from a system generated column such as Created or Modified, you can use this:<\/p>

    =VALUE(MID(Created@row, FIND(" ", Created@row) + 1, FIND(":", Created@row) - (FIND(" ", Created@row) + 1))) + IF(VALUE(MID(Created@row, FIND(" ", Created@row) + 1, FIND(":", Created@row) - (FIND(" ", Created@row) + 1))) <> 12, IF(FIND("P", Created@row) > 0, 12), IF(FIND("A", Created@row) > 0, -12))<\/p>","bodyRaw":"[{\"insert\":\"Found another one that I have used a lot but don't seem to have published:\\nWhen working with time I find it is easier to convert the times into 24hr format. To pull the hour from a system generated column such as Created or Modified, you can use this:\\n=VALUE(MID(Created@row, FIND(\\\" \\\", Created@row) + 1, FIND(\\\":\\\", Created@row) - (FIND(\\\" \\\", Created@row) + 1))) + IF(VALUE(MID(Created@row, FIND(\\\" \\\", Created@row) + 1, FIND(\\\":\\\", Created@row) - (FIND(\\\" \\\", Created@row) + 1))) <> 12, IF(FIND(\\\"P\\\", Created@row) > 0, 12), IF(FIND(\\\"A\\\", Created@row) > 0, -12))\\n\"}]","format":"rich","dateInserted":"2020-08-18T15:42:19+00:00","insertUser":{"userID":45516,"name":"Paul Newcome","title":"","url":"https:\/\/community.smartsheet.com\/profile\/Paul%20Newcome","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/userpics\/082\/nQPUTVFKKWDJ2.jpg","dateLastActive":"2023-06-09T14:12:17+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭✭"},"displayOptions":{"showUserLabel":false,"showCompactUserInfo":true,"showDiscussionLink":false,"showPostLink":false,"showCategoryLink":false,"renderFullContent":false,"expandByDefault":false},"url":"https:\/\/community.smartsheet.com\/discussion\/comment\/260063#Comment_260063","embedType":"quote"}"> https://community.smartsheet.com/discussion/comment/260063#Comment_260063

    如何修改它以从系统生成的列中提取分钟?

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    @Kimberley O这是引用系统生成的列。

    thinkspi.com