Как вводить время в excel без ввода двоеточия

При частом вводе данных в формате времени (2:30), необходимость ввода двоеточия «:» серьезно снижает скорость работы. Возникает вопрос: Можно ли обойтись без ввода двоеточия?

В EXCEL при вводе данных в формате времени есть возможность избежать ввода двоеточия.

Изменяем формат ячейки

Пример Пусть нам требуется вводить часы и минуты каких-нибудь событий.

  • Выделите ячейку А1 .
  • Отобразите вкладку Число окна Формат ячеек ( Главная/ Число/ Формат ячеек или нажав CTRL+1 выберите вкладку Число).
  • В списке Числовые форматы выберите Все форматы.
  • В поле Тип введите #»:»00 или 00″:»00 (в чем разница будет показано ниже)
  • Нажмите ОК .

Теперь можно вводить время, используя только числа. Введем в A1 число 230 и в ячейке увидим значение 02:30, если был установлен формат 00″:»00 и 2:30, если формат #»:»00. Для 4-х значных чисел оба формата дадут одинаковый результат.

Необходимо учитывать, что ячейка не содержит значение в формате времени, она содержит число 230. В этом можно убедиться, посмотрев на Строку формул – в ней отображается 230, а не 2:30. Изменив формат ячейки на пользовательский , мы изменили лишь формат отображения значения. 

Если со значениями времени не нужно выполнять никаких действий, то задачу можно считать выполненной. Но если значения нужны для расчетов, то нужно разобраться, что делает EXCEL при вводе в ячейку значения с двоеточием, т.е. после нажатия клавиши ENTER .

Преобразование в формат времени

EXCEL интерпретирует введенное значение 2:30 (т.е. «2 двоеточие 30»), как время, т.е. устанавливает Формат ячейки Время, затем вводит в ячейку число 0,104167 (но в Строке Формул отображается 2:30:00. Если изменить формат ячейки на Число , то увидим 0,104167). Откуда взялось это число 0,104167? В форматах Время и Дата принято, что одним суткам соответствует число единица. Соответственно, один час в формате даты это 1/24 (т.к. в сутках 24 часа), а одна минута – 1/(24*60)=1/1440. Число 0,104167 из 2:30 получается так: 2 часа/24 + 30 минут/1440.

Для тех, кто не хочет возиться с двоеточием и кому нужны значения в формате Времени — алгоритм такой (см. файл примера ):

  • в ячейку А1 вводим дату без двоеточия, в виде числа, например 230;
  • устанавливаем пользовательский формат времени 00″:»00 (если необходимо);
  • в любой другой ячейке, например В1 , пишем формулу =(ЦЕЛОЕ(A1/100)/24)+ ((A1-(ЦЕЛОЕ(A1/100)*100))/1440) (получаем 0,104167);
  • меняем формат ячейки В1 на Время и получаем полноценное время – 2:30. С этим значением можно производить вычисления в формате ВРЕМЯ.

В файле примера также показано как ускорить ввод в формате чч:мм:сс (обязательно должны быть указаны часы, т.е. число должно быть >10000, т.е. 1:00:00).

Там же, «по просьбе телезрителей», показано как преобразовать любое число от 1 до 235959 в формат чч:мм:сс. Причем можно указывать только секунды, минуты и секунды, ну и конечно часы, минуты и секунды.

Еще задача: Если пользователь захотел сохранить значение времени 5 часов 23 минуты в числовом формате 5,23, т.е. часы в целой части числа, а минуты в дробной после запятой, то формула для перевода в стандратный формат времени следующая:

=ВРЕМЯ(ЦЕЛОЕ(A41);ОКРУГЛ((A41-ЦЕЛОЕ(A41))*100;0);)

в итоге, после применения формата ячейки ч:мм, получим 5:23.

Быстрый ввод даты и времени без разделителей

Если Вам часто приходится вводить даты и время в ячейки, то Вам должна понравиться идея писать их сокращенно, без точек-дробей-двоеточий — просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 250699 автоматически превращалось в 25.06.1999, а 1125 в 11:25.

quick-date-enter.gif

Для этого щелкните по ярлычку листа, куда будут вводиться даты и время и выберите команду Исходный текст (Source Code). В открывшееся окно редактора Visual Basic скопируйте и вставьте следующий код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date

    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
        With Target
        StrVal = Format(.Text, "000000")
        If IsNumeric(StrVal) And Len(StrVal) = 6 Then
            Application.EnableEvents = False
            dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Right(StrVal, 2))
            .NumberFormat = "dd/mm/yyyy"
            .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
           End If
        End With
    End If
    
    If Not Intersect(Target, Range("B2:B10")) Is Nothing Then
        With Target
            vVal = Format(.Value, "0000")
            If IsNumeric(vVal) And Len(vVal) = 4 Then
                Application.EnableEvents = False
                .Value = Left(vVal, 2) & ":" & Right(vVal, 2)
                .NumberFormat = "[h]:mm"
            End If
        End With
     End If
     Application.EnableEvents = True

End Sub

Диапазоны A2:A10 и B2:B10 замените на свои области листа, куда будут подобным образом вводиться даты и время, соответственно.

Ссылки по теме

  • Всплывающий календарь DatePicker для быстрого ввода дат в ячейки
  • Всплывающий календарь в надстройке PLEX
  • Автоматический ввод даты при занесении данных в ячейку
  • Что такое макросы, куда вставлять код макроса на VBA, как их использовать.

Как ввести время в ячейку Excel без двоеточия :

Как сэкономить 30% времени на вводе данных?

Давайте посчитаем, сколько клавиш нужно нажать, чтобы вписать в ячейку время 13:25, например? У меня получается 6. А если объём данных для внесения не по-детски большой, то можно ли как-то быстрее? Вводить только цифры, например, не отвлекаясь на двоеточие?

Конечно, можно!

Установите формат ячеек для ввода даты 0″:»00 или 00″:»00 (через «все форматы») и вносите только цифры часов и минут.

После нажатия ENTER в ячейке увидите нормальное время. Именно таким оно будет распечатано.

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

Функция ЦЕЛОЕ вытаскивает часы.

Функция ОСТАТ вытаскивает минуты.

Функция ВРЕМЯ собирает их в правильном формате.

Конечно, можно все промежуточные расчёты упаковать в одну формулу, а после лишние столбцы удалить (в примере B:D).

Формат итогов также настраивается через «все форматы», например чч:мм, если вместо 9:00 хотите увидеть 09:00

Файл с образцом решения скачайте ЗДЕСЬ

09 марта 2021 г.

С функциями обработки дат я подробно познакомлю Вас на моём курсе «PRO ФУНКЦИИ».
До встречи!

На чтение 3 мин. Просмотров 40 Опубликовано 14.05.2021

Когда вы вводите время в ячейку, Excel определяет наличие двоеточия между часами и минутами времени. Однако из-за положения двоеточия на клавиатуре ввод двоеточия для каждого вводимого значения времени может замедлить вас, особенно если у вас достаточно много значений времени для ввода.

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

 = TIMEVALUE (REPLACE (A1,3,0, ":")) 

Эта формула предполагает, что значение времени (без двоеточия) находится в ячейке A1 и состоит из четырех цифр. Таким образом, если ячейка A1 содержит такое значение, как 1422, то формула возвращает 14:22 как фактическое значение времени. (Возможно, вам потребуется отформатировать ячейку как значение времени.)

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

 = TIME (LEFT (A1, LEN (A1) -2), RIGHT (A1,2), 0) 

Если хотите чтобы вставка двоеточия происходила автоматически, вы можете использовать макрос. Вы можете создать макрос, который будет проверять диапазон ячеек, в которые вы планируете добавлять даты на лист, а затем вставлять двоеточие в запись. Это делается путем создания макроса, который запускается событием SheetChange. Следующий макрос является одним из таких:

 Private Sub Workbook_SheetChange (ByVal Sh As Object, _ ByVal Target As Excel.Range) Dim TimeStr As String On Error GoTo EndMacro If Application.Intersect (Target, Range (  "C7: D15")) Ничего, тогда выйдите из подпрограммы, если Target.Cells.Count> 1, затем выйдите из подпрограммы, если если Target.Value = "" Затем выйдите из подпрограммы, если Application.EnableEvents = False с целью If .HasFormula =  False Then Select Case Len (.Value) Case 1 'Например, 1 = 00:01 AM TimeStr = "00: 0" & .Value Case 2' например, 12 = 00:12 AM TimeStr = "00:" & .Value  Случай 3 'например, 735 = 7:35 AM TimeStr = Left (.Value, 1) & ":" & _ Right (.Value, 2) Case 4' например, 1234 = 12:34 TimeStr = Left (.Value,  2) & ":" & _ Right (.Value, 2) Case Else Err.Raise 0 End Select .Value = TimeValue (TimeStr) End If End With Application.EnableEvents = True Exit Sub EndMacro: MsgBox "Вы не ввели  допустимое время "Application.EnableEvents = True ActiveCell.Offset (-1, 0) .SelectEnd Sub 

Первое, что делает макрос, это проверяет, находятся ли только что введенные данные в диапазоне C7: D15. Если это не так, макрос завершает работу. Он также проверяет, что выбрана только одна ячейка и что ячейка не пуста.. Если все эти критерии соблюдены, то макрос проверяет длину значения в ячейке и при необходимости дополняет его ведущими нулями. Этот макрос основан на макросе, найденном на сайте Чипа Пирсона, здесь:

 http://cpearson.com/excel/DateTimeEntry.htm 

Я знаю, что это старый пост, но если (как я это сделал) люди ищут решения через бесчисленные форумы, чтобы сэкономить время, вводя в табели, и не нужно вручную вводить «двоеточие», но иметь двоеточие видимым, а затем быть способен выполнять вычисления ….. все без использования VBA Script, скрытых ячеек и формул …. и т.д …. и т.д …. Это решение, которое я придумал, — и похоже, что оно работает с ведущими нулями, 24-часовым временем и расписаниями, охватывающими полночь (хотя потребуется корректировка, если вы ожидаете, что расписание будет охватывать несколько полуночей — я не видел в этом необходимости) мое дело).

Кроме того, мне не нужны «секунды», но вы сможете достаточно легко их расширить, если будете следовать концепции:

Пользовательский Формат ваших начальных и конечных ячеек:

0 # «:» ##

Это превращает их в «текстовые ячейки», но выводит цифры, чтобы всегда показывать четыре цифры (даже с ведущей нулей или нулями для американских друзей).

Обратите внимание, что это позволит вводить ЛЮБОЕ четырехзначное число в формате времени. Так что теоретически можно войти в 0768 году, и это стало временем 07:68, которого, конечно, не существует. Так что либо

а) создайте список проверки данных следующим образом:- на отдельном рабочем листе (вкладке) в одном столбце создайте список всех допустимых значений. В моем случае это были 0500, 0515, 0530, 0545 ….. 0445, поскольку я имел дело только с 15-минутными приращениями. Если вам нужно детализировать до секунд (серьезно?) это будет довольно долго ….. т.е. 050001, 050002 …. и т.д. Или вы можете написать другую формулу просто для создания этого списка, а затем скопировать текстовые данные (только для вставки значений) в новый столбец, чтобы удалить формулы (я бы).
— Выберите все эти ячейки с «допустимыми значениями» и на вкладке «Forumulas» панели инструментов выберите «Define Name». Дайте ему имя типа «MonkeyTimeList».
— Вернитесь к своему рабочему листу, выберите все ячейки, охватывающие время начала и окончания, и перейдите на вкладку «Данные» панели инструментов, выберите «Проверка данных> Проверка данных> Настройки», в разделе «Разрешить» выберите « List «из выпадающего списка, в разделе» Source «введите имя, которое вы определили, перед которым стоит» = «, поэтому в моем случае» = MonkeyTimeList «. Так как вы нажимаете «ОК», выбираете вкладку «Предупреждение об ошибке», ставите флажок «Показать предупреждение об ошибке …» и в раскрывающемся списке «Стиль» выбираете «Стоп». Не стесняйтесь добавлять сообщение об ошибке типа «Человек-обезьяна говорит, что вы идиот», попробуйте ввести время в ПРАВИЛЬНОМ ФОРМАТЕ!». Затем нажмите «ОК».
— Это гарантирует, что только данные из вашего «приемлемого» списка могут быть введены как время.

б) теоретически вы можете использовать условное форматирование, чтобы выделить ячейку, в которую добавлены неверные данные. Это позволит избежать использования отдельного рабочего листа для ваших данных проверки данных. Я не сделал это таким образом, поэтому я говорю теоретически. Это может быть другой учебник ….

Таким образом, теперь вы можете ввести время без необходимости искать двоеточие и клавишу Shift каждый раз.

Если вам ДЕЙСТВИТЕЛЬНО нужны секунды в формате ячейки, то пользовательский формат ячейки будет выглядеть следующим образом:

0 # «:» ## «:» ##

ТАК…… СЕЙЧАС ВЫЧИСЛИТЬ ЧАСЫ от времени начала до времени окончания … опять же, это основано только на минутах … но если вы можете следовать логике, то может быть расширено и до секунд.

В третьем столбце (предполагая, что столбец A — время начала, B — время окончания, а C — общее количество часов), введите формулу:

= ЕСЛИ (ЗНАЧЕНИЕ (В2)> = ЗНАЧЕНИЕ (А2), (СУММА (ЗНАЧЕНИЕ (MID (ТЕКСТ (В2, «0000»), 1,2)), ЗНАЧЕНИЕ (MID (ТЕКСТ (В2, «0000»), 3 , 2))/60))- (SUM (ЗНАЧЕНИЕ (MID (ТЕКСТ (А2, «0000»), 1,2)), ЗНАЧЕНИЕ (MID (ТЕКСТ (А2, «0000»), 3,2))/60)), (СУММА (ЗНАЧЕНИЕ (MID (ТЕКСТ (В2, «0000»), 1,2)), 24, ЗНАЧЕНИЕ (MID (ТЕКСТ (В2, «0000»), 3,2))/60))- (SUM (ЗНАЧЕНИЕ (MID (ТЕКСТ (А2, «0000»), 1,2)), ЗНАЧЕНИЕ (MID (ТЕКСТ (А2, «0000»), 3,2))/60)))

Теперь, чтобы объяснить это …

Функция «ЕСЛИ» различает время окончания на 24-часовых часах до полуночи и после полуночи. Если после полуночи, к времени окончания добавляется 24 часа, чтобы можно было продолжить расчет времени окончания и времени начала. Если до полуночи, нет необходимости добавлять 24 часа. Таким образом, для целей расчета время 0100 фактически трактуется как 2500, 0200 — это 2600 и так далее. НОТА. это предполагает, что смена длится не более 23 часов и 45 минут. Если он работает дольше, возможно, вам нужно будет включить столбцы даты в формулу …. опять же, мне это не нужно.

Функции MID работают с TEXT (следовательно, с функцией TEXT) и возвращают цифры в определенных местах из указанной ячейки в указанном формате …. Soooo, «MID (TEXT (B2,» 0000 «), 1,2)» просматривает ячейку B2 и всегда просматривает ее в формате 4 цифры / буквы и возвращает две цифры, начиная с позиции «1». В моем случае это целые часы. Другой пример: «MID (TEXT (A2,» 000000 «), 5,2)» будет смотреть на ячейку A2 и возвращать две цифры, начиная с позиции «5», что может быть целыми секундами.

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

Таким образом, это позволяет нам в каждой ячейке обрабатывать часы, минуты и секунды отдельно. Расчеты с часами просты, так как они уже являются целыми числами. Однако минуты на самом деле являются долями часов или долями 60 минут, поэтому, как только вы извлечете цифры, представляющие «минуты», разделите их на «60», чтобы получить «долю» часа. Как и в случае с секундами, разделите на 3600 (количество секунд в часе), чтобы получить секунды в виде «доли часа».

Теперь, когда времена представлены в виде чисел с дробями, вы можете добавлять или вычитать, как вам нравится. В случае моей формулы, даст общее количество часов между временем начала и времени окончания. Я форматирую ячейку с формулой как Custom> 00.00, которая затем позволяет мне умножаться на почасовые ставки и т.д.

Если кто-то все еще действительно хочет секунды в своей формуле. и застрять, дайте мне знать. Если мне скучно на работе, я могу помочь …. но секунды ??? действительно???

Понравилась статья? Поделить с друзьями:
  • Как вводить в word систему
  • Как ввести функцию в функции в excel
  • Как ввести функцию в формулу ячейки в excel
  • Как ввести функцию в excel округлить
  • Как ввести функцию в excel для построения графиков