При вводе даты в ячейку таблицы ms excel в качестве разделителя используют
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще. Меньше
Когда вы введите дату или время в ячейку, она отображается в формате даты и времени по умолчанию. Этот формат по умолчанию основан на региональных параметрах даты и времени, заданных на панели управления, и изменяется при их настройке на панели управления. Числа можно отобразить в нескольких других форматах даты и времени, на большинство из которых параметры панели управления не влияют.
В этой статье
Отображение чисел в качестве даты или времени
Вы можете форматирование даты и времени по мере их ввести. Например, если ввести в ячейку 2/2, Excel будет автоматически интерпретирован как дата и отобразит в ячейке 02.фев. Если это не то, что вам нужно (например, если вы хотите, чтобы в ячейке были 2 февраля 2009 г. или 02.02.09), в диалоговом окне Формат ячеек можно выбрать другой формат даты, как покажем в следующей процедуре. Аналогично, если ввести в ячейку 9:30 a или 9:30 p, Excel интерпретирует это как время и отображает 9:30 или 21:30. Вы также можете настроить способ времени в диалоговом окне Формат ячеек.
На вкладке Главная в группе Число нажмите кнопку вызова диалогового окна, расположенную рядом с надписью Число.
Вы также можете нажать CTRL+1, чтобы открыть диалоговое окно Формат ячеек.
В списке Категория выберите дата иливремя.
В списке Тип выберите нужный формат даты или времени.
Примечание: Форматы даты и времени, которые начинаются со звездочки (*), отвечают на изменения в региональных параметрах даты и времени, заданных на панели управления. На форматы без звездочки параметры, заданные на панели управления, не влияют.
Чтобы отобразить даты и время в формате других языков, выберите нужный язык в поле Языковой стандарт (расположение).
Число в активной ячейке выбранного на этом сайте отображается в поле Образец, чтобы можно было просмотреть выбранные параметры форматирования.
Создание пользовательского формата даты или времени
На вкладке Главная нажмите кнопку вызова диалогового окна рядом с именем группы Число.
Вы также можете нажать CTRL+1, чтобы открыть диалоговое окно Формат ячеек.
В поле Категория выберите дата или время ,а затем выберите числовом формате, наиболее близком по стилю к тому, который вы хотите создать. (При создании пользовательских числных форматов проще начать с существующего, чем с нуля.)
В списке Категория выберите пункт (все форматы). В поле Тип вы увидите код формата, совпадающий с форматом даты или времени, выбранным на шаге 3. Встроенный формат даты или времени нельзя изменить или удалить, поэтому не беспокойтесь о переописи.
В поле Тип введите необходимые изменения формата. Вы можете использовать любой из кодов в следующих таблицах:
Дни, месяцы и годы
Для отображения
Используйте код
Месяцев в виде чисел от 1 до 12
Месяцев в виде чисел от 01 до 12
Месяцев в виде "янв", . "дек"
Месяцев в виде "январь", . "декабрь"
Месяцев в виде первой буквы месяца
Дней в виде чисел от 1 до 31
Дней в виде чисел от 01 до 31
Дней в виде "Пн", . "Вс"
Дней в виде "понедельник", . "воскресенье"
Лет в виде чисел от 00 до 99
Лет в виде чисел от 1900 до 9999
Если вы используете "м" сразу после кода "ч" или "чч" или непосредственно перед кодом "сс", Excel отображает минуты вместо месяца.
Часы, минуты и секунды
Для отображения
Используйте код
Часы в качестве 0–23
Часы в качестве 00–23
Минуты в качестве 0–59
Минуты в качестве 00–59
Секунды в качестве 0–59
Секунды в качестве 00–59
Часы с 04:00 до 04:0
Время в 4:36:03 P
Заслон времени в часах; например, 25,02
Заслон времени в минутах; например, 63:46
За считанные секунды
AM и PM Если формат содержит am или PM, часы основаны на 12-часовом формате, где "AM" или "A" указывает время от полуночи до полудня, а "PM" или "P" — время от полудня до полуночи. В противном случае используется 24-часовой цикл. Код "м" или "мм" должен отображаться сразу после кода "ч" или "чч" или непосредственно перед кодом "сс"; в противном Excel отображается месяц, а не минуты.
Создавать пользовательские числовые форматы может быть непросто, если вы этого еще не сделали. Дополнительные сведения о создании пользовательских числных форматов см. в теме Создание и удаление пользовательских числов.
Советы для отображения дат и времени
При попытке отменить формат даты или времени с помощью выбора в списке Категория общего Excel отображает числовом коде. При повторном вводе даты или времени Excel формат даты или времени по умолчанию. Чтобы ввести определенный формат даты или времени, например январь 2010г., можно отформать его как текст, выбрав текст в списке Категория.
Чтобы быстро ввести текущую дату, выйдите из любой пустой ячейки и нажмите CTRL+; (точка с за semicolon) и при необходимости нажмите ввод. Чтобы вставить дату, которая будет обновляться до текущей даты при каждом повторном повторном пересчете или пересчете формулы, введите =СЕГОДНЯ() в пустую ячейку и нажмите ввод.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
В этой статье рассказывается об особенностях ввода различных данных (чисел, времени, дат, текста) и их редактировании.
Особенности ввода данных.
Для того чтобы в ячейку ввести какие-либо данные необходимо:
1) Щелкнуть по ячейке, чтобы выделить ее.
2) Ввести данные в выделенную ячейку с клавиатуры.
Текст отобразится как в самой ячейке, так и в строке формул.
3) Для завершения ввода, можно нажать клавишу Enter на клавиатуре или щелчком левой кнопки мыши по значку галочки в строке формул. Если вы ошиблись или передумали вводить данные, то для отмены можно нажать на клавишу Esc или щелкнуть по значку крестика в строке формул.
Ввод чисел
Следует помнить, что в русской версии Excel разделителем целой и дробной части является запятая, в английской - точка.
Числовые значения в ячейке могут содержать как цифры, так и специальные символы: + - Е е ( ) . , % /
Существуют некоторые особенности ввода чисел с использованием специальных символов:
1) Для ввода отрицательного числа перед числом ставится знак "-" (минус).
2) Число, которое заключено в скобки воспринимает программой как отрицательное. Т.е. (7) - для Excel означает -7.
3) Для отображения числа в экспоненциальном виде используется символ Е или е. Например, 7е2 означает 7*100, записывается в Excel как 7,00E+02 в экспоненциальном формате, а в числовом формате означает 700.
4) Для удобства ввода больших чисел, между разрядами можно ставить пробел (987 654,00). После нажатия клавиши Enter, в ячейке число отобразиться с пробелами, а в строке формул пробела не будет.
5) Знак процента используется для ввода процентного формата.
6) Для ввода дробных значений можно использовать знак Слеш (/). Если программа может распознать введенное число как дату, например 14/11, то в ячейке отразится дата - 14 ноября. Если надо представить это число как дробь, то перед вводимом числом необходимо ввести ноль - 0 14/11, и тогда в ячейке отобразится 1 и 3/11.
Число, которое Excel не может распознать как дату, например 14/28, будет представлено как дробь.
Ввод времени.
Для того чтобы в Excel ввести в ячейку время необходимо ввести часы, минуты и секунды, используя в качестве разделителя двоеточие. При вводе данных можно использовать как все три компонента, так и два (когда секунды не нужны). Если время было введено как часы и минуты, то в строке формул все равно время отобразиться с секундами.
Ввод даты.
Дата состоит из трех частей: день, месяц, год. В Excel используются следующие разделители: дефис ( - ), слеш ( / ), точка ( . ). Если ввести только день и месяц, то Excel автоматически поставит текущий год, а в строке формул дата будет отображаться полностью.
В Excel самая ранняя дата - 1 января 1900 года, начиная с нее всем датам присваивается порядковый номер от 1 и далее, так дате 01.01.2015 соответствует число 42005. Благодаря этому есть возможность выполнять вычисления между датами, узнать какая дата будет или была через определенное количество дней. Даты до 1900 года воспринимаются как текст.
Ввод текста.
В Excel можно записывать текст в несколько строк. Для этого нужно нажать клавиши Alt+Enter.
Если текст слишком длинный и не влезает в ячейку, можно воспользоваться командой Перенести текст. Для этого нужно:
1) Выделить ячейку с содержимым, которое не влезает
2) На вкладке Главная, в группе Выравнивание нажать кнопку Перенести текст
Обратите внимание, что в отличие от предыдущего случая, в строке формул текст остался написанным в одну строчку.
3) При необходимости можно изменить высоту строки или ширину столбца.
Для ввода символа, которого нет на клавиатуре, необходимо:
1) На вкладке Вставка, в группе Символы, выбрать команду Символ.
2) В открывшемся диалоговом окне можно выбрать нужный шрифт. Для облегчения поиска выбрать необходимый набор символов. Так же Excel показывает последние символы, которые вы использовали для вставки.
Для вставки выбранного символа нужно дважды щелкнуть по нему или нажать кнопку Вставить.
Редактирование данных.
Существует несколько способов редактирования данных в ячейке: редактирование непосредственно в ячейке или в строке формул.
Для редактирования в ячейке необходимо:
1) Дважды щелкнуть левой клавишей мыши по ячейке, которую вы собираетесь редактировать.
2) Внести необходимые изменения в ячейке.
3) Для сохранения изменений надо нажать клавишу Enter, для отмены - клавишу Esc
Для редактирования данных в строке формул:
1) Выделить ячейку, один раз щелкнув по ней левой кнопкой мыши.
2) В строке формул щелкнуть левой кнопкой мыши в месте редактирования.
3) Повторить действия пункта 2 и пункта 3 предыдущего способа.
Кроме того для сохранения и отмены внесенных изменений можно использовать клавишу Ввод и клавишу Отмена в строке формул.
Если Вам часто приходится вводить даты и время в ячейки, то Вам должна понравиться идея писать их сокращенно, без точек-дробей-двоеточий - просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 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" - без разницы
Как считаете можно такое провернуть??
А как доработать чтобы секунды можно было так же отобразить.
пробовал менять код, но не особо получается (
Думаю, из прошлого урока Вам уже известно, что даты и время в Excel хранятся в виде порядковых чисел, началом отсчета которых принято считать некое 0 января 1900 года. К счастью, в ячейках мы видим не эти числа, а привычные для нас даты и время, которые могут храниться в самых различных форматах. В этом уроке Вы узнаете, как вводить даты и время в Excel, чтобы получать требуемое форматирование.
Ввод дат и времени в Excel
Даты и время в Excel можно вводить в виде порядкового числа или доли суток, но как Вы сами понимаете, это не совсем удобно. К тому же при таком подходе к ячейке придется каждый раз применять определенный числовой формат.
Excel предлагает несколько форматов для ввода временных данных. Если Вы примените такой формат, Excel автоматически преобразует введенную дату (или время) в порядковое число (долю суток) и применит к ячейке формат Даты (или Времени), установленные по умолчанию.
На рисунке ниже представлена таблица вариантов ввода даты и времени, которые поддерживает Excel. В левой колонке показаны значения, которые нужно вводить в ячейку, а в правой — результат преобразования. Стоит отметить, что датам, вводимым без указания года, присваивается текущий год, а именно выставленный в настройках Вашей операционной системы.
Это не все возможные варианты, которые поддерживает Excel. Но даже этих вариантов Вам будет предостаточно.
Некоторые варианты отображения дат, представленные в правой колонке, могут отличаться. Это зависит от региональных настроек и формата отображения даты и времени в настройках операционной системы.
Формат даты и времени в Excel
Работая с ячейками в Microsoft Excel, которые содержат дату или время, Вы имеете возможность применять к ним различное форматирование. Например, Вы можете отображать в ячейке только день недели, или только месяц и год, или же только время.
Получить доступ ко всем возможным форматам Вы можете на вкладке Число диалогового окна Формат ячеек. В категории Дата приведены встроенные форматы дат:
А в категории Время – встроенные форматы времени:
Для того чтобы применить форматирование к ячейке, достаточно выбрать нужный формат в разделе Тип и нажать ОК. Нужное форматирование будет применено. Если встроенных числовых форматов Вам будет недостаточно, то можно воспользоваться категорией Все форматы. Здесь Вы также сможете найти много всего интересного.
Если ни один из вариантов Вас так и не устроил, то можно создать пользовательский числовой формат. Его создать достаточно легко, если в качестве образца использовать встроенные числовые форматы. Чтобы создать пользовательский числовой формат, выполните следующие действия:
Как видите все достаточно просто!
В этом уроке мы научились настраивать формат отображения дат и времени в Microsoft Excel, а также разобрали несколько полезных вариантов их ввода на рабочий лист. В следующем уроке мы поговорим о 7-ми функциях Excel, которые позволяют извлекать нужные параметры из значений дат и времени. На этом урок закончен. Всего Вам доброго и успехов в изучении Excel.
В профессиональной работе с электронными таблицами нередко приходится взаимодействовать с датой и временем. Без этого не получится обойтись. Поэтому научиться работать с данными этого типа сам Бог велел. Это поможет сэкономить огромное количество времени и предотвратить множество ошибок во время работы с электронными таблицами.
К сожалению, много новичков не знает, каким образом обрабатываются данные. Поэтому перед тем, как рассматривать этот класс операций, нужно провести более детальный ликбез.
Как представляется дата в Excel
Обработка информации о дате осуществляется, как о количестве суток с 0 января 1900 года. Да, вы не ошиблись. Действительно, с нулевого числа. Но это необходимо для того, чтобы была точка отсчета, чтобы уже 1 января считалось цифрой 1 и так далее. Максимально поддерживаемое значение, обозначающее дату – 2958465, что в свою очередь являет собой 31 декабря 9999 года.
Этот метод дает возможность использовать даты для расчетов и формул. Так, Excel дает возможность определить количество суток между датами. Схема проста: из одного числа вычитается второе, а потом полученное значение переводится в формат даты.
Для большей наглядности, вот таблица, где показаны даты с соответствующими им числовыми значениями.
Чтобы определить количество дней, которое прошло от даты А до даты B, необходимо от последней отнять первую. В нашем случае это формула =B3-B2 . После ее ввода результат оказывается следующий.
Важно обратить внимание, что значение представлено в днях, потому что мы выбрали для ячейки формат, отличающийся от даты. Если бы мы выбрали изначально формат «Дата», то результат был бы таким.
Важно обратить внимание на этот момент в своих расчетах.
То есть, для отображения правильного порядкового номера, полностью соответствующего дате, надо использовать какой-угодно формат, помимо даты. В свою очередь, для того, чтобы число превратить в дату, следует выставить соответствующий формат.
Как представляется время в Excel
То, как представляется время в Excel, немного отличается от даты. За основу берется день, а часы, минуты, секунды – это его дробные части. То есть, 24 часа – это 1, а любое более мелкое значение рассматривается, как ее доля. Так, 1 час – это 1/24 дня, 1 минута – 1/1140, а 1 секунда – 1/86400. Наименьшая доступная в Excel единица времени – 1 миллисекунда.
Аналогично датам, этот способ представления дает возможность осуществлять расчеты с временем. Правда, здесь одна вещь неудобна. После расчетов у нас получается часть суток, а не количество дней.
На скриншоте указаны значения в числовом формате и формате «Время».
Методика расчета времени аналогична дате. Нужно от более позднего времени отнять более раннее. В нашем случае это формула =B3-B2 .
Так как у ячейки B4 сперва был Общий формат, то по окончанию введения формулы он сразу меняется на «Время».
Excel в работе с временем выполняет обычные арифметические операции с числами, которые потом переводятся в знакомый нам временной формат.
Формат дат и времени
Насколько мы знаем, даты и время могут храниться в разных форматах. Поэтому нужно знать, как правильно вводить их, чтобы форматирование было правильным.
Конечно, можно использовать порядковый номер дня или часть суток при вводе даты и времени, но такой подход очень неудобный. Кроме этого, придется постоянно применять к ячейке определенный формат, что только усиливает дискомфорт.
Поэтому Excel дает возможность указывать время и дату разными способами. Если применить один из них, то программа сразу информацию конвертирует в соответствующее число и применяет к ячейке правильный формат.
В таблице ниже вы можете ознакомиться с перечнем способов ввода даты и времени, поддерживаемых Excel. В левой колонке перечислены возможные форматы, а в правой – как они будут отображаться в Excel после преобразования. Важно отметить, что если не указывается год, автоматически присваивается текущий, который выставлен в операционной системе.
На самом деле, способов отображения значительно больше. Но и этих достаточно. Также конкретный вариант записи даты может отличаться в зависимости от страны или региона, а также настроек операционной системы.
Произвольное форматирование
Во время работы с ячейками пользователь может сам определять, какой будет формат. Он может сделать так, чтобы отображалось только время, месяц день и так далее. Также есть возможность регулировать порядок формулирования даты, а также разделители.
Чтобы получить доступ к окну редактирования, необходимо открыть вкладку «Число», где найти опцию окно «Формат ячеек». В открывшемся диалоговом окне будет категория «Дата», в котором можно выбрать правильный формат дат.
Для применения определенного варианта форматирования к ячейке, необходимо выбрать нужный формат и кликнуть «ОК». После этого результат применится. Если не хватает форматов, которые предлагает Excel, то можно найти категорию «Все форматы». Там тоже есть множество вариантов.
Если никакой вариант не подходит, то всегда возможно создание своего собственного. Сделать это очень легко. Необходимо просто выбрать предустановленные форматы, как образец и выполнить такие действия:
Использование функций при работе с датами и временем
При работе с датами и временем пользователь может использовать более 20 самых разнообразных функций. И хотя кому-то этого количества может быть слишком много, все они могут использоваться для достижения определенных целей.
Чтобы получить доступ ко всем возможным функциям, необходимо перейти в категорию «Дата и время» группы «Библиотека функций». Мы же рассмотрим только некоторые основные функции, дающие возможность извлекать разные параметры из дат и времени.
Дает возможность получить год, который соответствует определенной дате. Как вы уже знаете, это значение может быть в пределах от 1900 до 9999.
В ячейке 1 видно дату, представленную в формате ДДДД ДД.ММ.ГГГГ чч:мм:cc. Это тот формат, который мы создали ранее. Давайте приведем в качестве примера формулу, которая определяет, сколько лет прошло между двумя датами.
При этом если более внимательно посмотреть, то окажется, что функция не вычислила полностью правильного результата. Причина кроется в том, что она использует только даты в своих вычислениях.
МЕСЯЦ()
С помощью этой функции можно выделить номер месяца, соответствующий определенной дате. Возвращает результат, колеблющийся в пределах от 1 до 12. Это число в свою очередь соответствует номеру месяца.
Аналогично предыдущим функциям, эта выдает номер дня, в определенной дате. Результат вычислений может колебаться от 1 до 31.
Как можно догадаться из названия, эта функция возвращает номер часа, который колеблется от 0 до 23.
МИНУТЫ()
СЕКУНДЫ()
Эта функция возвращает такие же значения, как и предыдущая, за тем лишь исключением, что ею возвращаются секунды.
ДЕНЬНЕД()
С помощью этой функции можно узнать номер дня недели, который используется в этой дате. Возможные значения от 1 до 7, но стоит учитывать, что отсчет начинается с воскресенья, а не понедельника, как у нас принято.
При этом с помощью второго аргумента эта функция позволяет настроить формат. Например, если передать значение 2 в качестве второго параметра, то можно настроить формат, при котором число 1 означает понедельник, а не воскресенье. Это значительно удобнее для отечественного пользователя.
Если во втором аргументе написать 2, то в нашем случае функция вернет значение 6, что соответствует субботе.
СЕГОДНЯ()
Эта функция очень проста: чтобы она работала, не требуется вводить никаких аргументов. Ею возвращается порядковый номер даты, которая выставлена на компьютере. Если ее применить к ячейке, для которой выставлен формат Общий, то автоматически он будет сконвертирован в формат «Дата».
ТДАТА()
Эта функция также не требует ввода аргументов. Действует таким же образом, как и предыдущая, только с датой и временем. Используется, если надо вставить в ячейку текущую дату и время, которые выставлены в компьютере. И точно так же, как и в предыдущей функции, при применении этой, ячейка автоматически конвертируется в формат даты и времени при условии, что до этого был выставлен формат «Общий».
Как предыдущая, так и эта функция при каждом пересчете листа автоматически изменяются, что дает возможность отображать самое актуальное время и дату.
Например, такая формула может определить нынешнее время.
= ТДАТА()-СЕГОДНЯ()
В этом случае формула определит долю суток в десятичном формате. Правда, придется к ячейке, в которую записывается формула, применить формат времени, если нужно отобразить именно время, а не число.
Эта функция имеет три аргумента, каждый из которых необходимо обязательно ввести. После расчетов этой функцией возвращается порядковый номер даты. Ячейка автоматически конвертируется в формат «Дата», если до этого у нее был «Общий» формат.
Аргумент «День» или «Месяц» можно делать как положительным, так и отрицательным. В первом случае дата увеличивается, а во втором – уменьшается.
Также можно использовать математические операции в аргументах функции ДАТА. Например, эта формула позволяет добавить 1 год 5 месяцев и 17 дней к дате, указанной в ячейке A1.
А такая формула дает возможность превратить текстовую строку в полноценную рабочую дату, которая может использоваться и в других функциях.
ВРЕМЯ()
Точно так же, как и функция ДАТА() , в этой функции есть три обязательных параметра – часы, минуты и секунды. После того, как ее использовать, в результирующей ячейке появится десятичное число, но сама ячейка будет отформатирована в формат «Время», если до этого у нее был формат «Общий».
По своему принципу работы у функции ВРЕМЯ() и ДАТА() очень много чего схожего. Поэтому особого внимания на ней акцентировать нет смысла.
Важно учесть, что эта функция не способна вернуть время, которое больше 23:59:59. Если получится больший, чем этот, результат, функция автоматически обнуляется.
Функции ДАТА() и ВРЕМЯ() могут применяться вместе.
На этом скриншоте ячейка D1, в которой использовались обе эти функции, имеет формат даты и времени.
Функции вычисления даты и времени
Всего есть 4 функции, позволяющие выполнять математические операции с датой и временем.
ДАТАМЕС()
С помощью этой функции можно узнать порядковый номер даты, отстающей на известное количество месяцев (или опережающей заданную). Эта функция принимает два аргумента: начальная дата и количество месяцев. Второй аргумент может быть как положительным, так и отрицательным. Первый вариант нужно указывать, если требуется вычислить будущую дату, а второй – если предыдущую.
КОНМЕСЯЦА()
Эта функция дает возможность определить порядковый номер последнего дня месяца, отстающего или опережающего заданную дату. Имеет такие же аргументы, как и предыдущая.
РАБДЕНЬ()
То же самое, что и функция ДАТАМЕС() , только отставание или опережение происходит на определенное количество рабочих дней. Синтаксис аналогичный.
Все эти три функции возвращают число. Чтобы увидеть дату, нужно сконвертировать ячейку в соответствующий формат.
ЧИСТРАБДНИ()
Это простая функция определяет количество рабочих дней между датой 1 и датой 2.
Подпишитесь к нам в дзен-канал, для получения свежих новостей it мира:
Читайте также: