如何使用 Tableau 或 Excel 将数据时间转换为秒数
How to Convert to Seconds from Data Time using Tableau or Excel
我有一个数据 CSV 文件,其中持续时间用 "regular" 日期时间语法表示,例如 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]`
- 那我就把时分秒分开:
hours, minutes, sec = duration.split(':')
- 最后我将每个转换成秒后求和:
seconds = (int(hours)*60*60 + int(minutes)*60 + int(sec))
这将是一种非常粗略的方法,并且依赖于相同的格式。
=(MID(E3,10,2)×60×60)+(MID(E3,13,2)×60)+(MID(E3,16,2))
MID -(单元格引用、起始位置、要提取的字符数)
这假设值在 E3 中,这应该更改为您拥有原始值“12/30/99 00:00:55 AM”的任何单元格。
如果您只想在 Excel 公式中执行此操作以达到秒数,则类似于 Python:-
=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)
假设该值可以从 CSV 文件读取到单元格 A1 中的 Excel 日期时间值。
另一种方法(使用 Excel 中的时间值是一天的一小部分这一事实)是
=MOD(A1,1)*24*3600
链接 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
我有一个数据 CSV 文件,其中持续时间用 "regular" 日期时间语法表示,例如 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]`
- 那我就把时分秒分开:
hours, minutes, sec = duration.split(':')
- 最后我将每个转换成秒后求和:
seconds = (int(hours)*60*60 + int(minutes)*60 + int(sec))
这将是一种非常粗略的方法,并且依赖于相同的格式。
=(MID(E3,10,2)×60×60)+(MID(E3,13,2)×60)+(MID(E3,16,2))
MID -(单元格引用、起始位置、要提取的字符数)
这假设值在 E3 中,这应该更改为您拥有原始值“12/30/99 00:00:55 AM”的任何单元格。
如果您只想在 Excel 公式中执行此操作以达到秒数,则类似于 Python:-
=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)
假设该值可以从 CSV 文件读取到单元格 A1 中的 Excel 日期时间值。
另一种方法(使用 Excel 中的时间值是一天的一小部分这一事实)是
=MOD(A1,1)*24*3600
链接 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