Как разделить время в эксель

Обновлено: 18.07.2024

В профессиональной работе с электронными таблицами нередко приходится взаимодействовать с датой и временем. Без этого не получится обойтись. Поэтому научиться работать с данными этого типа сам Бог велел. Это поможет сэкономить огромное количество времени и предотвратить множество ошибок во время работы с электронными таблицами.

К сожалению, много новичков не знает, каким образом обрабатываются данные. Поэтому перед тем, как рассматривать этот класс операций, нужно провести более детальный ликбез.

Как представляется дата в Excel

Обработка информации о дате осуществляется, как о количестве суток с 0 января 1900 года. Да, вы не ошиблись. Действительно, с нулевого числа. Но это необходимо для того, чтобы была точка отсчета, чтобы уже 1 января считалось цифрой 1 и так далее. Максимально поддерживаемое значение, обозначающее дату – 2958465, что в свою очередь являет собой 31 декабря 9999 года.

Этот метод дает возможность использовать даты для расчетов и формул. Так, Excel дает возможность определить количество суток между датами. Схема проста: из одного числа вычитается второе, а потом полученное значение переводится в формат даты.

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

Операции со временем в Excel

Чтобы определить количество дней, которое прошло от даты А до даты B, необходимо от последней отнять первую. В нашем случае это формула =B3-B2 . После ее ввода результат оказывается следующий.

Операции со временем в Excel

Важно обратить внимание, что значение представлено в днях, потому что мы выбрали для ячейки формат, отличающийся от даты. Если бы мы выбрали изначально формат «Дата», то результат был бы таким.

Важно обратить внимание на этот момент в своих расчетах.

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

Как представляется время в Excel

То, как представляется время в Excel, немного отличается от даты. За основу берется день, а часы, минуты, секунды – это его дробные части. То есть, 24 часа – это 1, а любое более мелкое значение рассматривается, как ее доля. Так, 1 час – это 1/24 дня, 1 минута – 1/1140, а 1 секунда – 1/86400. Наименьшая доступная в Excel единица времени – 1 миллисекунда.

Аналогично датам, этот способ представления дает возможность осуществлять расчеты с временем. Правда, здесь одна вещь неудобна. После расчетов у нас получается часть суток, а не количество дней.

Операции со временем в Excel

На скриншоте указаны значения в числовом формате и формате «Время».

Операции со временем в Excel

Методика расчета времени аналогична дате. Нужно от более позднего времени отнять более раннее. В нашем случае это формула =B3-B2 .

Так как у ячейки B4 сперва был Общий формат, то по окончанию введения формулы он сразу меняется на «Время».

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


Формат дат и времени

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

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

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

Операции со временем в Excel

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

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

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

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

Операции со временем в Excel

Чтобы получить доступ к окну редактирования, необходимо открыть вкладку «Число», где найти опцию окно «Формат ячеек». В открывшемся диалоговом окне будет категория «Дата», в котором можно выбрать правильный формат дат.

Операции со временем в Excel

Для применения определенного варианта форматирования к ячейке, необходимо выбрать нужный формат и кликнуть «ОК». После этого результат применится. Если не хватает форматов, которые предлагает Excel, то можно найти категорию «Все форматы». Там тоже есть множество вариантов.

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

Использование функций при работе с датами и временем

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

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

Операции со временем в Excel

Дает возможность получить год, который соответствует определенной дате. Как вы уже знаете, это значение может быть в пределах от 1900 до 9999.

Операции со временем в Excel

В ячейке 1 видно дату, представленную в формате ДДДД ДД.ММ.ГГГГ чч:мм:cc. Это тот формат, который мы создали ранее. Давайте приведем в качестве примера формулу, которая определяет, сколько лет прошло между двумя датами.

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

МЕСЯЦ()

Операции со временем в Excel

С помощью этой функции можно выделить номер месяца, соответствующий определенной дате. Возвращает результат, колеблющийся в пределах от 1 до 12. Это число в свою очередь соответствует номеру месяца.

Операции со временем в Excel

Аналогично предыдущим функциям, эта выдает номер дня, в определенной дате. Результат вычислений может колебаться от 1 до 31.

Операции со временем в Excel

Как можно догадаться из названия, эта функция возвращает номер часа, который колеблется от 0 до 23.

МИНУТЫ()

СЕКУНДЫ()

Операции со временем в Excel

Эта функция возвращает такие же значения, как и предыдущая, за тем лишь исключением, что ею возвращаются секунды.

ДЕНЬНЕД()

Операции со временем в Excel

С помощью этой функции можно узнать номер дня недели, который используется в этой дате. Возможные значения от 1 до 7, но стоит учитывать, что отсчет начинается с воскресенья, а не понедельника, как у нас принято.

Операции со временем в Excel

При этом с помощью второго аргумента эта функция позволяет настроить формат. Например, если передать значение 2 в качестве второго параметра, то можно настроить формат, при котором число 1 означает понедельник, а не воскресенье. Это значительно удобнее для отечественного пользователя.

Операции со временем в Excel

Если во втором аргументе написать 2, то в нашем случае функция вернет значение 6, что соответствует субботе.

СЕГОДНЯ()

Операции со временем в Excel

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

ТДАТА()

Операции со временем в Excel

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

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

Например, такая формула может определить нынешнее время.

= ТДАТА()-СЕГОДНЯ()

Операции со временем в Excel

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

Операции со временем в Excel

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

Операции со временем в Excel

Аргумент «День» или «Месяц» можно делать как положительным, так и отрицательным. В первом случае дата увеличивается, а во втором – уменьшается.

Операции со временем в Excel

Также можно использовать математические операции в аргументах функции ДАТА. Например, эта формула позволяет добавить 1 год 5 месяцев и 17 дней к дате, указанной в ячейке A1.

Операции со временем в Excel

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

ВРЕМЯ()

Операции со временем в Excel

Точно так же, как и функция ДАТА() , в этой функции есть три обязательных параметра – часы, минуты и секунды. После того, как ее использовать, в результирующей ячейке появится десятичное число, но сама ячейка будет отформатирована в формат «Время», если до этого у нее был формат «Общий».

По своему принципу работы у функции ВРЕМЯ() и ДАТА() очень много чего схожего. Поэтому особого внимания на ней акцентировать нет смысла.

Операции со временем в Excel

Важно учесть, что эта функция не способна вернуть время, которое больше 23:59:59. Если получится больший, чем этот, результат, функция автоматически обнуляется.

Операции со временем в Excel

Функции ДАТА() и ВРЕМЯ() могут применяться вместе.

На этом скриншоте ячейка D1, в которой использовались обе эти функции, имеет формат даты и времени.

Функции вычисления даты и времени

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

ДАТАМЕС()

Операции со временем в Excel

С помощью этой функции можно узнать порядковый номер даты, отстающей на известное количество месяцев (или опережающей заданную). Эта функция принимает два аргумента: начальная дата и количество месяцев. Второй аргумент может быть как положительным, так и отрицательным. Первый вариант нужно указывать, если требуется вычислить будущую дату, а второй – если предыдущую.

КОНМЕСЯЦА()

Операции со временем в Excel

Эта функция дает возможность определить порядковый номер последнего дня месяца, отстающего или опережающего заданную дату. Имеет такие же аргументы, как и предыдущая.


РАБДЕНЬ()

Операции со временем в Excel

То же самое, что и функция ДАТАМЕС() , только отставание или опережение происходит на определенное количество рабочих дней. Синтаксис аналогичный.

Все эти три функции возвращают число. Чтобы увидеть дату, нужно сконвертировать ячейку в соответствующий формат.

ЧИСТРАБДНИ()

Операции со временем в Excel

Это простая функция определяет количество рабочих дней между датой 1 и датой 2.

Док разделите время с цифрой 1

Вот диапазон ячеек, в одном столбце перечислены записи времени, во втором столбце перечислены номера горячих линий, и теперь ваша задача - подсчитать, сколько горячих линий существует за один час, как показано на скриншоте ниже, есть ли у вас какие-нибудь быстрые трюки по разделению времени по этим числам в Excel?
Разделите время на число / расстояние с помощью формулы

Разделите одно и то же время на число / расстояние с помощью Kutools for Excel

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

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

Док разделите время с цифрой 2

1. Выберите пустую ячейку, например C2, и введите эту формулу. = B2 / A2 / 24 , A2 - это запись времени, B2 - это число, которое вы разделите, и перетащите дескриптор автозаполнения на ячейки, которые вы хотите применить к этой формуле. Смотрите скриншот:

Док разделите время с цифрой 3

2. Затем вы получите список времени и отформатируете данные времени в числа, выбрав Число из Формат номера выпадающий список в Число группа по Главная таб. Смотрите скриншот:

Разделите число / расстояние на одно и то же время с помощью Kutools for Excel

Док разделите время с цифрой 4

Например, столбец A представляет собой список расстояний, на которые различные автомобили проехали за последние 9 часов, и как вы можете рассчитать среднюю скорость этих транспортных средств в километрах в час, как показано на скриншоте ниже?

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

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

Док разделите время с цифрой 5

1. Выберите числа или записи о расстоянии и нажмите Kutools > операция. Смотрите скриншот:

Док разделите время с цифрой 6

2. в Инструменты для работы диалоговое окно, выберите Разделение от операция панели, перейдите в текстовое поле в Операнд раздел и введите запись времени, на которую вы хотите разделить, вы можете просмотреть результаты в диалоговом окне. Смотрите скриншот:

Док разделите время с цифрой 7

3. Нажмите Ok or Применить, отображается вся средняя скорость каждого автомобиля.

Чаевые: Вам лучше сохранить копию исходных записей перед применением операции.

дата разделения документа

Вы когда-нибудь пытались разбить ячейку даты на три столбца с отдельными днем, месяцем и годом, как показано ниже? Вы можете ввести день, месяц и год вручную, но если нужно разбить сотни дат, вы можете выбрать один из быстрых трюков, чтобы решить эту проблему в Excel из приведенного ниже руководства.
Разделить дату на три столбца - день, месяц и год с формулами
Разделить дату на три столбца - день, месяц и год с текстом в столбец
Быстро разделить дату на день, месяц, год с помощью Kutools for Excel
Преобразование даты только в месяц и год или только месяц и день с помощью Kutools for Excel

Разделить дату на три столбца - день, месяц и год с формулами

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

1. Выберите ячейку, например, C2, введите эту формулу = ДЕНЬ (A2) , Нажмите Enter, В день опорной ячейки извлекается.

дата разделения документа 1

дата разделения документа 2

2. И перейдите к следующей ячейке, например D2, введите эту формулу = МЕСЯЦ (A2) , Нажмите Enter чтобы извлечь месяц только из ссылочной ячейки.

дата разделения документа 3

дата разделения документа 4

3. Щелкните следующую ячейку, E2, введите эту формулу = ГОД (A2) , и нажмите Enter key извлекается год ссылочной ячейки.

дата разделения документа 5

дата разделения документа 6

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

дата разделения документа 7

Наконечник: В приведенных выше формулах A2 - это ячейка даты, которую вы хотите разделить на день, месяц и год.

Быстрое разделение одной ячейки на столбцы или строки на основе разделителя

Разделить дату на три столбца: день, месяц и год с текстом в столбец

В Excel вы также можете использовать функцию Text to Column, чтобы разделить дату столбца на три столбца с днем, месяцем и годом.

1. Выберите столбец даты, исключая заголовок, если он не имеет заголовка, и щелкните Данные > Текст в столбцы. Смотрите скриншот:

дата разделения документа 8

дата разделения документа 9

2. Проверьте разграниченный вариант в Мастер преобразования текста в столбцы - шаг 1 из 3, см. снимок экрана:

3. Нажмите Далее> идти на Шаг 2 из 3, и проверьте Другое вариант только в Разделители раздел и введите разделитель / в следующее текстовое поле. Смотрите скриншот:

дата разделения документа 10

4. Продолжайте нажимать Далее> , чтобы перейти к Шаг 3 из 3, и щелкните, чтобы выбрать ячейку для вывода разделенных данных.

дата разделения документа 11

5. Нажмите Завершить, а столбец даты разделен на три столбца с днем, месяцем и годом.

Быстро разделить дату на день, месяц, год с помощью Kutools for Excel

Если у вас есть Kutools for Excel, всего за 3 шага, вы можете быстро разделить ячейки даты на день, месяц и год в отдельной ячейке с его Разделить клетки утилита.

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

документ разделить ячейки 1

1. Выберите даты, которые хотите разделить, нажмите Kutools > Текст > Разделить клетки.

документ разделить ячейки 2

2. в Разделить клетки диалог, проверьте Разделить на столбцы флажок, затем установите флажок Другое in Разделить на раздел, тип / в следующее текстовое поле.

документ разделить ячейки 3

3. Нажмите Ok и выберите ячейку для размещения разделенных данных, затем щелкните OK.

документ разделить ячейки 4

Теперь даты разделены на день, месяц и год.

Чаевые: Если вы хотите разделить дату в порядке дня, месяца, года, вы можете сначала отформатировать ячейки как дд / мм / гггг, а затем применить утилиту «Разделить ячейки».

Преобразование даты только в месяц и год или только месяц и день с помощью Kutools for Excel

В другом случае, если вы хотите преобразовать дату только в месяц и год или в месяц и год, как показано на скриншотах ниже, вы можете использовать Kutools for ExcelАвтора Применить Дата Fорматинг утилита для быстрого выполнения этой работы.

Преобразование даты только в месяц и день Преобразование даты только в год и месяц

дата разделения документа 12

дата разделения документа 13

.

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

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

дата разделения документа 14

2. Затем в Применить форматирование даты диалоговое окно, выберите 03/2001 чтобы преобразовать дату только в месяц и год, и выберите 3/14 чтобы преобразовать дату только в месяц и день, и вы можете просмотреть результаты в предварительный просмотр панель. Смотрите скриншот:

дата разделения документа 15

3. Нажмите Ok or Применить, и все даты преобразуются в нужный вам формат.

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

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

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

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

Макрос вообще не нужен если формат ячейки поставить "Дата", а значения вводить: 25-06-1999 или 25/06/1999 или 25,06,1999. Если набрать 25/6 или 25-06 . то год подставится текущий. Так в том и фишка, чтобы лишних знаков препинания не вводить. Обалдеть, класс. Спасибо огромное автору.
И что поразительно у меня это работает. Не ставьте заранее для ячейки ввода формат даты. Иначе все введенное Excel автоматически преобразует в дату, а точнее - в свой специфический код даты. И макрос работает дальше уже с ним, а не с введенными вами цифрами. у меня не работает даже в скачанном примере. Если не менять формат ячейки, и ввести, к примеру, 110887, то ничего не меняется, цифры в таком формате и остаются. Если формат ячейки поменять на формат даты, то выдает 06.08.2203 Защита от макросов выключена? Файл - Параметры - Центр Управления Безопасностью - Параметры Центра Управления - Макросы - Разрешить все макросы. И перезагрузиться. Подскажите, пожалуйста, почему не работает на всю книгу? Если создаю для одного листа - все в порядке. Статью по созданию макросов прочитала, но все равно не получается. Потому, что этот макрос написан для листа и вставлять его надо в модули листов, а не в модуль ЭтаКнига. здравствуйте. макрос отличный на много сокращает количество нажатий кнопок на клавиатуре и соответственно времени рутины. при его использовании столкнулся с тем что при внесении даты(например 310113) если ошибочно внес не 6 знаков(например 3113), а другое количество выдает ошибку необходимости отладки кода макроса по 12 строке и макрос перестает работать.подскажите, что можно сделать ? В случае занесения не 6 символов ошибку выдавать не должно - в 10-й строке идет проверка на наличие именно 6 символов, и если количество введенных цифр не равно 6 - макрос заканчивает работу и ничего не происходит. Добрый день!
На работе этот макрос используем на нескольких компьтерах ошибка «runtimeerror ‘13’ typemismatch» появляется при ошибочном внесении например «1»или «131312».
После этого макрос перестает работать. Макрос включается только после перезапускаExcel.
Я не могу разобраться почему так происходит.
Подскажите,что нужно сделать что бы:
1. -макрос снова начинал работать без перезапуска Excel
2. - не появлялась на экране ошибка «runtimeerror ‘13’ typemismatch» которая приводит в панику некоторых пользователей.
3. - и посмотрите пожалуйста макрос предложенный Вами чуть чуть мной переделанный. Какие в нем недостатки. В VBA профан за ранее извеняюсь за назойливость .

;)

(файл в котором у меня ошибка прикрепить не могу не нахожу кнопки "прикрепить файл"

;)

А ее тут и нет - это комментарии к приему, а не форум. Лучше создайте тему на форуме и прикрепите ваш файл с макросом - а мы его покритикуем

А зависание макроса происходит, скорее всего, из за того, что вы в коде отключаете обработку событий Application.EnableEvents=False, а после возникновения ошибки она у вас обратно не включается.

Сразу Спасибо за сайт. оч помогает.

а как переделать макрос для времени, если вводится формат 21 . 15 (ну или любой другой знак, всякое бывает), ну а нужен обычный 21:15

dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Right(StrVal, 2))
12 строка подсвечивается для отладки, когда макрос перестаёт работать.

Это происходит, как я заметил, в случае:
1. Сортировки таблицы, несколько столбцов которой заполнены при помощи данного макроса датой и временем.
2. После ошибочного ввода в рабочем диапазоне макроса даты с разделителями, удаления ошибчной записи и последующей попытки заполнить ячейку не применяя разделители, при помощи макроса.

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

для даты:
в формате ячейки -> все форматы 00\.00\.0000
пример:
12122012 -> 12.12.2012

для времени -> все форматы 00\:00
пример:
1212 -> 12:12

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

Надеюсь Вам понравится такая идея.
если у кого будут вопросы или захотите сказать спасибо, я в facebook Parviz Ruziev

Добрый день, описанный вами прием всего лишь придаст форму но не изменит сути, Excel не будет воспринимать введенное значение как дату.

К сожалению, с отофрматированными вашим способом датами нельзя работать. Попробуйте вычесть из одной даты другую, чтобы посчитать количество дней - и получите ерунду. И ни одна функция из категории "Даты и время" с вашими "датами" работать не будет. Так что не советовал бы идти таким путем, при всем уважении.

Посмею предложить свой вариант. )))

В формате ячейки (у меня это D2) выставляем формат типа:
00"."00"."0000

На проверку вводимых данных задаем условия проверки:
тип данных – другой; и на соответствие формуле в соответствующей ячейке (у меня это R2).

;)

Формула такого вида:
=ЕСЛИ(ИЛИ(И(ДЛСТР(D2)=7;ДАТАЗНАЧ(ТЕКСТ(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;2;2);СЦЕПИТЬ("0";ЛЕВСИМВ(D2)));"ДД.ММ.ГГГГ";))>=25569;ДАТАЗНАЧ(ТЕКСТ(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;2;2);СЦЕПИТЬ("0";ЛЕВСИМВ(D2)));"ДД.ММ.ГГГГ";))<=44196;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;2;2);"00";))<=12);И(ДЛСТР(D2)=8;ДАТАЗНАЧ(ТЕКСТ(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;3;2);ЛЕВСИМВ(D2;2));"ДД.ММ.ГГГГ";))>=25569;ДАТАЗНАЧ(ТЕКСТ(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;3;2);ЛЕВСИМВ(D2;2));"ДД.ММ.ГГГГ";))<=44196;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))<=12;ИЛИ(ЕСЛИ(И(ИЛИ(ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=1;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=3;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=5;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=7;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=8;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=10;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=12;);ЗНАЧЕН(ТЕКСТ(ЛЕВСИМВ(D2;2);"00";))<=31);ИСТИНА;ЛОЖЬ);ЕСЛИ(И(ИЛИ(ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=4;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=6;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=9;ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=11);ЗНАЧЕН(ТЕКСТ(ЛЕВСИМВ(D2;2);"00";))<=30);ИСТИНА;ЛОЖЬ);ЕСЛИ(И(ЗНАЧЕН(ТЕКСТ(ПСТР(D2;3;2);"00";))=2;ЗНАЧЕН(ТЕКСТ(ЛЕВСИМВ(D2;2);"00";))<=29);ИСТИНА;ЛОЖЬ)));ИСТИНА;ЛОЖЬ)

Не пойму почему так отображает, в выше приведенной формуле смайлики заменить на ")" без кавычек естественно.

Соответственно дата вводится без каких-либо посторонних знаков, только цифры. Формула проверяет что бы введенный диапазон был между 01.01.1970 и 31.12.2020, при вводе большей или меньшей даты – выдает ошибку, при попытке ввести 13 и т.д. месяц – выдает ошибку, при попытке ввести более 31 дня (в январе, марте, мае, июле, августе, октябре, декабре) – выдает ошибку, при попытке ввести более 30 дней (в апреле, июне, сентябре, ноябре) – выдает ошибку, при попытке ввести более 29 дней в феврале – выдает ошибку. Осталось добить проверку високосных лет. )))))

Ну и перевести это все безобразие в дату тоже не проблема, у меня в ячейке I2 идет подсчет даты от введенной в ячейку D2 плюс 2 месяца вот такой формулой:
=ЕСЛИ(ЕПУСТО(D2);""; ЕСЛИ(ДЛСТР(D2)=7; ДАТАМЕС(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;2;2);(СЦЕПИТЬ("0";ЛЕВСИМВ(D2))));2); ДАТАМЕС(ДАТА(ПРАВСИМВ(D2;4);ПСТР(D2;3;2);ЛЕВСИМВ(D2;2));2)))

Сразу отвечу на вопрос зачем так все усложнять – просто задача стояла сделать без макросов.

а можно чтоб при вводе числа например 5 появлялась дата не текущего а конкретного месяца или хотябы прошлого месяца текущего года, я например делаю отчёт за прошлый месяц и чтоб не вводить значения года и месяца а только день А как сделать так чтобы дата и время было в одной ячейке Принес с работы файл созданный в офисе 2007 который работает хорошо (именно с этим макросом), но дома на офисе 2013 не хочет пишет Could not load an object because it is not available on this machine.(Не удалось загрузить объект, потому что он не доступен на этой машине.) В чем проблема? А как сделать чтобы выводился формат часы:минуты:секунды? Или просто минуты:секунды


Николай здравствуйте! Случайно наткнулся на ваш сайт и . был в восторге! Спасибо огромне за Вашу проделанную работу. Но у меня вопрос к вам, а как макрос будет выглядеть если надо ввести время так: 12:15-13:45 (это в одной ячейке). Заранее спасибо. =Будущий гуру Exel=
P.S. и год как убрать? Дмитрий, посмотрите вот эту статью - многое станет понятнее по датам и времени.




Подскажите пожалуйста, если мне нужно даты во многих столбцах (B; N;O; S) начиная с 3 строки указывать, как это прописать в макросе?


Доброго времени суток!
Прошу прощения за вопрос, в VBA новичок. К сожалению, нет времени чтобы изучить возникшую проблему, необходимо срочно сделать форму отчета кассира КМ-6 (форма типовая, скачана из альбома унифицированных форм в Консультанте). Проблема в том, что в этой форме графы "дата составления" и "время работы" представляют собой объединение нескольких ячеек и изменение диапазона указывает на неправильное событие, если я правильно поняла. Какой должен быть макрос, чтобы эта проблема была устранена?
К сожалению, не удается вставить скрин-шот для наглядности.
Заранее благодарна.

Добрый день. Скажите пожалуйста, как можно установить автоматический ввод даты и времени в нескольких столбцах сразу (с помощью макроса, функция Range("F3:F50200")

For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("F3:F50200" ) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub


Excel не распознает ввод даты на английском. Подскажите, что делаю не так ? )

Если ввожу 10янв14, преобразует в дату 10.01.2014 , формат ячейки становится Custom (все ОК)
Если ввожу 10Jan14, остается в формате General
Пробовал заранее ставить формат ячейки "Date", все равно остается текст 10Jan14


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


Добрый день, у некоторых пользователей при вводе данных в разные ячейки макрос выдает ошибку Compile erorr: Synteax erorr

Выскакивать окно Visual Basic при любом редактировании значений.
Дико неудобно, при введении каждого значения приходится закрывать окно VB, дважды нажимая на кнопки.
Один пользователь даже пробовал менять дистрибутивы винды и офиса, переустанавливать – везде одно и то же.

Судя по ошибке у стоит библиотека или скрипт, который позволяет выполнять эту процедуру.


Приветствую! Вопрос в следующем, подскажите, какой должен быть код, чтобы можно было редактировать в дальнейшем дату в введенной ячейке? Т.е я ввел 150216, он мне автоматом перевел в 15.02.2016, супер, но, если ошибся на день, пытаешься отредактировать на 14.02.2016, дата меняется на 20.04.1949 и в дальнейшем выскакивает ошибка "Run-time Error 13. Type mismatch". После этого код больше не работает и необходимо закрывать и открывать заново документ. Это первый момент.

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

Николай! Добрый вечер! Подскажите начинающему плиз. Мне нужно тоже самое, что и в Вашем примере, только формат не часы:минуты:секунды, а просто минуты (единицы минут, несколько):секунды. Всего 3 цифры. Например, 3:40. Никак не получается сделать. Моя конечная цель - автоматизация оценивания учеников по 5 бальной системе по результатам забегов на физкультуре. Может, как-то изменить макрос?


:)

Здравствуйте! Очень сильно стараюсь вычислить из двух результатов времени лучший, это для забегов спортсменов, т.е. 12:55:10 и 12:55:45, как определить с помощью формул в столбе №3 лучшее время (12:55:10) что бы сразу из двух результатов писался лучший. Где то я ошибаюсь в формул, что то ставлю лишнее или на оборот не до ставляю За ранее Спасибо большое.


Николай, добрый день! А почему после защиты листа, на котором применяется макрос, он перестает работать? Защита с ячеек, куда нужно вводить время, снята. Появляется ошибка Run-time error '1004': Нельзя установить свойство NumberFormat класса Range. Как устранить поломку? Спасибо заранее.


Здравствуйте, Николай. Подскажите, как правильно прописать этот макрос, чтоб он выставлял время (без даты) в определенных строках. Например E11:AI11, E12:AI12, E15:AI15, E16:AI16 и т.д.

Ребята или Николай, кто-нибудь в общем)) Помогите
Замечательный код, но вот вопрос:
Если я хочу внедрить этот код для подобного способа ввода даты в колонку где у меня уже был изначально какой-то формат ячеек к сожалению, и на какой бы другой формат я их не менял, результата нет положительного, тогда как я могу вернуть "никакой формат ячеек" или может мне что то в коде вашем поменять можно?

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

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

Диалоговое окно "Введите дату" - это как раз первый запрос - и мне она нужна не текущая, а та что я сам впишу, ибо это дэдлайн проекта. Текущая дата вводится автоматом в другом месте, это я уже благодаря кстати Николаю реализовал пару-тройку лет назад, за что большое спасибо и не только за это)) В общем мне пока приходится вводить дату полностью или писать типа "9 мая" чтобы быстрее было, но мне гораздо удобнее было бы все вводить на нампаде, раз 6 цифр ввел нажал Enter, вылазит следующее диалоговое окно "введите бюджет" ну и так далее, нампад - энтер, нампад-энтер — быстро и удобно, и не надо бегать по строке по разным ячейкам глазами выискивать, тем более риск ввести не туда, а колонок много и перепутать легко.
Это я для полной картины просто написал, чтобы понимали)) а то мало ли, может если способ ввода реализуется с помощью вот таких диалоговых окон, то этот ваш код для ввода даты не годится.

Заранее благодарю всех и Николая в особенности.

КСТАТИ! Раз у меня есть текущая дата, то может вместо ввода 6 цифр, можно было бы написать код таким образом чтобы при вводе например цифры 3 на столько увеличивалась текущая дата и вводилась бы как раз в ячейку дедлайна в виде даты? если так можно реализовать код, то это была бы просто бомба))

Например у меня есть текущая дата 6 мая в ячейке A22, вылазит диалоговое окно с просьбой ввести число на которое будет увеличена дата ячейки A22 и введена в ячейку K22 с учетом прибавления того числа что я ввел в диалоговое окно, например я ввел цифру 3 и в ячейке K22 появилась дата 9 мая, то есть код поссчитал 6+3=9 и ввел нужные данные в ячейку K22 в формате даты "9 мая" или "09.05.2017" - без разницы

Как считаете можно такое провернуть??


Подскажите пожалуйста как в строке 7 заменить Range("A2:A10") на динамический диапазон?


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

ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРН 310633031600071

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