【问题标题】:How to Convert to Seconds from Data Time using Tableau or Excel如何使用 Tableau 或 Excel 将数据时间转换为秒
【发布时间】:2016-10-10 03:29:23
【问题描述】:

我有一个数据 CSV 文件,其中时间持续时间用“常规”日期时间语法表示,例如 12/30/99 00:00:55 AM

由于此值表示持续时间(而不是日期和时间),我需要将其转换为表示持续时间(以分钟为单位)的数字,例如 55 分钟。

我想知道是否可以使用 Tableau 的计算字段或 Excel 表达式来提取计时 00:00:55 部分并将其转换为表示以分钟为单位的持续时间的数字?

以下是我使用 Python 执行此操作的方法: 1. 首先,我将拆分传入值以将 00:00:55 持续时间部分与12/30/99 00:00:55 AM 隔离开来:

`value = '12/30/99 00:00:55 AM'`
`duration = value.split()[1]`
  1. 然后我将小时、分钟和秒分开:

hours, minutes, sec = duration.split(':')

  1. 最后我将每个转换为秒后求和:

seconds = (int(hours)*60*60 + int(minutes)*60 + int(sec))

【问题讨论】:

  • 我在 Excel 中尝试过,但结果是 55 秒 - 这就是您想要的答案吗?

标签: python excel tableau-api


【解决方案1】:

如果您只想在 Excel 公式中执行此操作以达到秒数,则类似于 Python:-

=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)

假设该值可以从 CSV 文件读取到单元格 A1 中的 Excel 日期时间值中。

另一种方法(利用 Excel 中的时间值是一天的几分之一这一事实)是

=MOD(A1,1)*24*3600

【讨论】:

    【解决方案2】:

    这将是一种非常粗糙的方式,并且依赖于相同的格式。

    =(MID(E3,10,2)×60×60)+(MID(E3,13,2)×60)+(MID(E3,16,2))
    

    MID -(单元格引用、起始位置、要提取的字符数)

    这假定该值在 E3 中,这应该更改为您具有原始值“12/30/99 00:00:55 AM”的单元格。

    【讨论】:

      【解决方案3】:

      链接 CSV 文件后,Tableau 继续并根据自己的假设自动将数据类型分配给每一列。原始 CSV 的 Duration 列字段值实际上是 00:00:00:55。但由于 Tableau 将其视为日期时间类型,因此它会即时转换为 12/30/99 00:00:55 AM,在开头附加 12/30/99,在末尾附加 AM。 我右键单击 Duration 维度(这是 Tableau 调用列的方式)并将其日期类型更改为 String。要将此值转换为分钟,我必须使用以下表达式创建一个自定义计算字段:

      INT(SPLIT(STR([Duration]), ':', 1))*60*60*60 + INT(SPLIT(STR([Duration]), ':', 2))*60*60 + INT(SPLIT(STR([Duration]), ':', 3))*60 + INT(SPLIT(STR([Duration]), ':', 4))/60
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-09
        • 2021-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        • 2012-12-02
        相关资源
        最近更新 更多