Как преобразовать в секунды время данных с помощью Tableau или Excel

#python #excel #tableau-api

#python #excel #tableau-api

Вопрос:

У меня есть 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))

Комментарии:

1. Я попробовал это в Excel, но результат составил 55 секунд — будет ли это тем ответом, который вы искали?

Ответ №1:

Если бы вы хотели сделать это только в формуле Excel, чтобы получить секунды, это было бы похоже на Python:-

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

предполагая, что значение может быть считано из файла CSV в значение даты и времени Excel в ячейке A1.

Другой способ сделать это (используя тот факт, что значения времени в Excel составляют доли дня)

 =MOD(A1,1)*24*3600
  

Ответ №2:

Это был бы очень грубый способ сделать это и полагался бы на тот же формат.

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

СЕРЕДИНА (ссылка на ячейку, начальная позиция, количество символов для извлечения)

Предполагается, что значение находится в E3, его следует изменить на любую ячейку, в которой у вас есть исходное значение «12/30/99 00:00:55 утра».

Ответ №3:

После связывания файла CSV Tableau продолжает и автоматически присваивает тип данных каждому столбцу на основе своих собственных предположений. Значение поля столбца длительности исходного CSV было фактически 00:00:00:55 . Но поскольку Tableau рассматривал его как тип datetime, он «на лету» преобразовывался в 12/30/99 00:00:55 AM добавление 12/30/99 в начале и AM в конце. Я щелкнул правой кнопкой мыши измерение длительности (именно так 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