вторник, 26 декабря 2017 г.

Преобразование времени в Excel в десятичный формат и обратно

Бывает существует необходимость для преобразования времени в формате ЧЧ:ММ:СС в десятичный формат. Делается это довольно просто, сначала при помощи стандартных  функций Excel ЧАС, МИНУТЫ, СЕКУНДЫ, мы отделяем одно от другого:
То есть в каждую ячейку заносится формула: в В2 =ЧАС(А1), в С2 =МИНУТЫ(А1), в D2 = СЕКУНДЫ(А1), далее мы уже работаем с этими числами.
Часы берем как есть, минуты делим на 60 (в одном часе 60 минут), а секунды делим на 3600, потому что в одном часе 3600 секунд. В итоге получаем такую формулу: B1+C1/60+D1/3600
Теперь можно объединить 2 формулы и получим общую:

=ЧАС(A1)+МИНУТЫ(A1)/60+СЕКУНДЫ(A1)/3600

Но вот обратные преобразования выполнить чуток сложнее. Как перевести время из десятичного формата, в обычный формат времени удобный для понимания?
Допустим, у нас имеется время в десятичном формате 16,56861, теперь нужно сделать обратные преобразования: выделить часы, минуты и секунды. Чтобы выделить часы нужно просто взять целую часть, то есть 16, в Экселе это можно сделать с помощью функции ОТБР (отбросить) =ОТБР(A1) - довольно просто. А вот с минутами все сложнее, нужно превратить дробную часть в такую дробь с двумя знаками до запятой и как минимум двумя после, чтобы потом высчитать точнее секунды. После этого умножаем эту дробь на 60 и делим на 100.
В этой формуле =ОТБР((A1-B1)*100;2) мы от 6 с копейками, отнимаем 16, тем самым оставляя только дробную часть. Эту дробную часть умножаем на 100, чтобы получить 2 знака до запятой, и через точку с запятой мы указываем количество знаков после, как я уже говорил нужно как минимум 2, для хорошей точности. В итоге получилось число 56,86 которое мы умножаем на 60 и делим на 100 по формуле =D2*60/100, в получившемся результате мы оставляем только целую часть - это и есть минуты =ОТБР(E2)
С секундами повторяем то же самое - берем друбную часть - то что осталось, умнажаем ее на 60 и делим на 100 =ОТБР((E2-B2)*100;1)  

И далее функция ВРЕМЯ

А вот общая формула будет гораздо сложнее первой:

=ВРЕМЯ(ОТБР(A1);ОТБР(ОТБР((A1-ОТБР(A1))*100;2)*0,6);ОТБР((ОТБР((A1-ОТБР(A1))*100;2)*0,6-ОТБР(ОТБР((A1-ОТБР(A1))*100;2)*0,6))*100;1)*0,6)

Как-то так. Скорее всего ее реально можно немного упростить (уже немного упростил заменив 60/100 на 0,6), но вообще можно использовать даже так: я ее скопировал как есть тут, вставил в эксель и все заработало.




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

Отправить комментарий