Как перевести часы и минуты в десятичную дробь excel

Обновлено: 02.07.2024

Порой случаются ситуации, когда выгрузки трудозатрат из различных баз данных производятся в формате времени. Если в программе Excel просто изменением формата поставить «Числовой» вместо формата «время», получаются совсем некорректные цифры непригодные для проведения расчетов.

Рассмотрим, каким образом перевести трудозатраты из временного формата в десятичные дроби с целью проведения дальнейших вычислений.

№ п.п. Месяц выполнения работ Подразделение Должность Планируемое время на выполнение работы Планируемое время на выполнение работы в часах
1 Сентябрь Слесарный цех Инженер по ПБ 3:00:00 3,0
2 Сентябрь Слесарный цех Инженер-энергетик 21:20:00 21,33

Сделать это можно при помощи системы функций (формул).

Самый простой способ перевода используется, когда трудозатраты не могут быть более суток, то есть не превышают 24 часа.

Для перевода используется следующая функция:

Функция ЧАС(G4 ) выводит целое количество часов;

Функция МИНУТЫ(G4) выводит целое количество минут;

ОКРУГЛ(МИНУТЫ(G4)/60*100;0) – преобразует минуты в часы десятичной дробью;

Эта система функций имеет небольшой недостаток, ЧАС(G4 ) выводит целое количество часов только до значения 24, не более. Если у вас стоит время (трудозатраты) 26:25 часов, то ЧАС(G4 ) будет равен 2.

Для тех случаев, когда трудозатраты более суток, то есть превышают 24 часа, можно использовать следующую систему:

пЕРЕВОД ЧАСОВ В ДЕСЯТИЧНЫЕ ЧИСЛА

, где добавлена функция ДЕНЬ(G4), выводящая количество целых дней.

Как мы знаем целый (полный ) день состоит из 24 часов, соответственно ДЕНЬ(G4)*24 будет равно количеству часов в полных днях. Если к этим часам добавить количество часов в неполных днях, то получим общее количество часов: (ЧАС(G4)+ДЕНЬ(G4)*24)

Если часов набегает больше чем на 31 день, можно по аналогии применить систему функций:

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема - дробные числа превращаются в даты:

Испорченные данные

Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью - точка), а в Excel у вас российские настройки (где между целой и дробной частью - запятая, а точка используется как разделитель в дате).

При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике - если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату - оно будет конвертировано в дату. Всё, что на дату не похоже - останется текстом.

Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года - самая ранняя дата, с которой может работать Excel - 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:

Неправильная дата

Еще одна неправильная дата

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel - количество дней от 01.01.1900 до текущей даты:

Неправильное число после изменения формата

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл - Параметры - Дополнительно (File - Options - Advanced) :

Настройка разделителей в окне параметров Excel

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator) .

После этого можно смело импортировать данные - проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

Формула исправления чисел из дат

=--ЕСЛИ( ЯЧЕЙКА("формат";A1)="G" ; ПОДСТАВИТЬ(A1;".";",") ; ТЕКСТ(A1;"М,ГГГГ") )

В английской версии это будет:

=--IF (CELL ("format ";A1)="G"; SUBSTITUTE (A1;".";","); TEXT (A1;"M ,YYYY "))

Логика здесь простая:

  • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата "G" для текста/чисел или "D3" для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) .
  • Если в исходной ячейке дата, то выводим её в формате "номер месяца - запятая - номер года" с помощью функции ТЕКСТ (TEXT) .
  • Чтобы преобразовать получившееся текстовое значение в полноценное число - выполняем бессмысленную математическую операцию - добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставляем в нашу книгу новый пустой модуль через меню Insert - Module и копируем туда такой код:

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt + F8 или через команду Макросы на вкладке Разработчик (Developer - Macros) . Все испорченные числа будут немедленно исправлены.

Предположим, у вас есть диапазон времени или текстов с [ЧЧ: ММ: СС] формат в Excel, и теперь вы хотите преобразовать их в десятичные часы, минуты или секунды, как вы можете быстро решить эту проблему? В этом руководстве представлены некоторые приемы для решения этой задачи.

Преобразуйте время в десятичные часы / минуты / секунды с помощью Convert Time

Преобразуйте время в десятичные часы / минуты / секунды с помощью формул

В Excel вы можете использовать некоторые формулы для преобразования [чч: мм: сс] в десятичные часы, минуты или секунды.

1. Выберите ячейку и введите формулу. = A1 * 24 в него и нажмите Enter, чтобы получить результат, при необходимости перетащите дескриптор заполнения за пределы диапазона, чтобы применить формулу.

документ конвертировать время 1

2. Щелкните правой кнопкой мыши выбранный диапазон и щелкните Формат ячеек из контекстного меню. И в появившемся диалоговом окне выберите Numbeг из Категория list и укажите нужные десятичные разряды. Смотрите скриншоты:

документ конвертировать время 3

документ конвертировать время 4

3. Нажмите OK. Теперь каждый раз был сразу переведен в десятичный час.

документ конвертировать время 5

Наконечник:

1. Вы также можете использовать эту формулу для преобразования времени в часы. =HOUR(A1)+MINUTE(A1)/60+SECOND(A1)/3600 .

2. Если вы хотите преобразовать время в десятичные минуты, используйте это = A1 * 24 * 60 or = ЧАС (A1) * 60 + МИНУТА (A1) + СЕКУНДА (A1) / 60 .

3. Если вы хотите преобразовать время в десятичные секунды, используйте это = A1 * 24 * 60 * 60 or = ЧАС (A1) * 3600 + МИНУТА (A1) * 60 + СЕКУНДА (A1) .

Преобразование времени в десятичные часы / минуты / секунды с помощью Time Convert

Если вы не любите запоминать формулы, вы можете использовать Конвертировать время полезности Kutools for Excel конвертировать время в десятичные часы, минуты или секунды одним щелчком мыши.

После установки Kutools for Excel, сделайте следующее: (Бесплатная загрузка Kutools for Excel прямо сейчас!)

Выберите временной диапазон, который вы хотите преобразовать в десятичные числа, нажмите Kutools > Content > Конвертировать время, и выберите нужный вариант в контекстном меню. Смотрите скриншоты:

документ конвертировать время 7

После выбора параметра преобразования появилось диалоговое окно, напоминающее вам, сколько ячеек было преобразовано. Нажмите OK закрыть его.

документ конвертировать время 7

Теперь вы можете видеть каждый раз, когда конвертируется.

документ конвертировать время 8

Внимание:

Если вы хотите преобразовать время в десятичные числа и сохранить результат в другом месте, вы можете сделать следующее:

doc kutools конвертировать время 2

1. Выберите диапазон данных и нажмите Kutools > Content > Конвертировать время > Конвертировать время. Смотрите скриншот:

2. В появившемся диалоговом окне отметьте нужный вариант преобразования в Тип преобразования раздел и проверка Сохранить в другое место (диапазон преобразования - одна область) Установите флажок, затем щелкните, чтобы выбрать диапазон, в котором будет отображаться результат, и щелкните OK > Ok > OK закрыть диалоги. Смотрите скриншоты:

документ конвертировать время 3

документ конвертировать время 11

Теперь данные преобразованы и сохранены в другом месте.

документ конвертировать время 12

Преобразование времени в десятичные часы / минуты / секунды с помощью суперфункций

Собственно, в Kutools for Excel вы также можете использовать Kutools Функции для преобразования времени в десятичные числа.

После установки Kutools for Excel, сделайте следующее: (Бесплатная загрузка Kutools for Excel прямо сейчас!)

doc kutools конвертировать время 3

1. Выберите ячейку, в которую хотите поместить преобразованный результат, и щелкните Kutools > Kutools Функции > Дата и время, и в контекстном меню выберите нужный вариант преобразования. Смотрите скриншот:

2. в Аргументы функций диалоговом окне выберите данные, которые вы хотите преобразовать в TimeData текстовое окно. Щелчок OK чтобы закрыть диалог. Смотрите скриншот:

документ конвертировать время 14

3. Затем выберите преобразованный результат и перетащите маркер заполнения в диапазон, необходимый для применения функции. Теперь диапазон данных преобразован.

документ конвертировать время 15

В группе Kutools Functions вы можете суммировать или подсчитывать данные по цвету заливки / шрифта, подсчитывать символы, извлекать текст и перевернуть текстовую строку и так далее.

Если у вас есть список времени, отображаемый в формате десятичных часов, но вы привыкли к чч: мм: сс (форматирование часов, минут и секунд), как вы можете это сделать? С помощью следующих методов вы можете решить проблему разговоров между часами, минутами, секундами и десятичными часами.

Преобразуйте часы, минуты и секунды в десятичные числа одним щелчком мыши

Преобразуйте часы, минуты и секунды в десятичные числа с помощью формулы

Предположим, у вас есть список времени в формате часов, минут и секунд в столбце A, и чтобы преобразовать их в десятичное время, вам просто нужно выполнить следующие шаги:


1. Выберите пустую ячейку, например Ячейку B1, введите эту формулу. = A1 * 24 в ячейке (ячейка A1 указывает ячейку, данные которой вы хотите преобразовать в десятичное время, вы можете изменить ее по своему усмотрению), затем щелкните Enter кнопку на клавиатуре. Смотрите скриншот:


2. Затем перетащите маркер заполнения, чтобы заполнить диапазон, с которым вы хотите работать. Смотрите скриншот:


3. Затем вам нужно отформатировать ячейки результатов в столбце B как общее форматирование, выбрав диапазон, щелкнув правой кнопкой мыши и нажав Формат ячеек в контекстном меню. Смотрите скриншот:


4. Затем нажмите Число Вкладка в Формат ячеек диалоговое окно и щелкните Общие от Категорияy: поле, затем щелкните OK чтобы закрыть диалог. Смотрите скриншот:


Вы можете увидеть результат, как показано ниже:

Преобразуйте часы, минуты, секунды в десятичные часы одним щелчком мыши

Если у вас есть Kutools for Excel установлен в Excel, вы можете использовать Конвертировать время утилита для быстрого преобразования чч: мм: сс в дециамные часы / минуты / секунды.

После бесплатная установка Kutools for Excel, сделайте следующее:

doc kte 1

Выберите ячейки времени и нажмите Kutools > Content > Конвертировать время, и выбрать вариант преобразования в соответствии с вашими потребностями. Смотрите скриншот:

doc kte 2

Затем появится диалоговое окно, напоминающее количество преобразованных ячеек, нажмите ОК, чтобы закрыть его, и все выбранное время будет преобразовано.

Наконечник: Если вы хотите сохранить преобразованное десятичное число в другом месте, вы можете нажать Kutools > Content > Конвертировать время для отображения Конвертировать время диалоговое окно, а затем в диалоговом окне проверьте тип преобразования вам нужно и проверьте Сохранить в другое место флажок и выберите ячейку для вывода результата, щелкните Ok, и время было преобразовано и размещено в новом месте. Смотрите скриншот:

doc kte 3

doc kte 4

Преобразование времени в десятичные часы / минуты / секунды

Преобразуйте десятичную дробь в часы, минуты и секунды с помощью формулы

И наоборот, если вы хотите преобразовать десятичное время в форматирование часов, минут и секунд, вы можете сделать следующее:

Предположим, что ваши данные находятся в столбце A, и вам нужно преобразовать их в форматирование часов, минут, секунд.


1. Выберите пустую ячейку, в данном случае я выбираю ячейку B1 и ввожу эту формулу. = A1 / 24 в B1 (ячейка A1 указывает ячейку, данные которой вы хотите преобразовать в форматирование часов, минут и секунд, вы можете изменить его по своему усмотрению), затем щелкните Enter кнопку на клавиатуре. Смотрите скриншот:


2. Повторите шаг 1, чтобы ввести указанную выше формулу, как вам нужно, в столбец B один за другим, например введите = A2 / 24 в ячейке B2 и щелкните Enter. Смотрите скриншот:


3. Затем вам нужно отформатировать ячейки в столбце B как формат чч: мм: сс, выбрав диапазон, в котором используется формула, и щелкнув правой кнопкой мыши, щелкните Формат ячеек в контекстном меню. Смотрите скриншот:


4. Затем нажмите Число Вкладка в Формат ячеек диалоговое окно и щелкните Время от Категория: поле и выберите 13: 30: 55 из Тип: поле в правом разделе, затем щелкните OK чтобы закрыть диалог. Смотрите скриншот:


Вы можете видеть, что данные были преобразованы.

Преобразование десятичной дроби в часы и минуты с помощью VBA

С приведенной выше формулой = A1 / 24 преобразование времени по одному - это несколько пустая трата времени, но с кодом VBA вы можете преобразовать список десятичного времени в часы и минуты сразу.

1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модуль, и скопируйте VBA в модуль.

VBA: преобразование десятичного времени в часы и минуты


3. Нажмите Запустите или нажмите F5 чтобы запустить VBA, затем KutoolsforExcel Появится диалоговое окно для выбора рабочего диапазона. Смотрите скриншот:


4. Нажмите OK во всплывающем диалоговом окне данные выбранного диапазона были преобразованы в форматирование часов и минут. Смотрите скриншот:

Чаевые: При запущенном выше коде VBA вы потеряете свои исходные данные, поэтому вам лучше скопировать и зарезервировать их до запуска VBA.

Читайте также: