Основные принципы работы с датами и временем в Excel
11405
27.10.2012
Скачать пример
Видео
Как обычно, кому надо быстро – смотрим видео. Подробности и нюансы – в тексте ниже:
Как вводить даты и время в Excel
Если иметь ввиду российские региональные настройки, то Excel позволяет вводить дату очень разными способами – и понимает их все:
“Классическая” форма
|
3.10.2006
|
Сокращенная форма
|
3.10.06
|
С использованием дефисов
|
3-10-6
|
С использованием дроби
|
3/10/6
|
Внешний вид (отображение) даты в ячейке может быть очень разным (с годом или без, месяц числом или словом и т. д.) и задается через контекстное меню – правой кнопкой мыши по ячейке и далее Формат ячеек (Format Cells):
Время вводится в ячейки с использованием двоеточия. Например
16:45
По желанию можно дополнительно уточнить количество секунд – вводя их также через двоеточие:
16:45:30
И, наконец, никто не запрещает указывать дату и время сразу вместе через пробел, то есть
27.10.2012 16:45
Быстрый ввод дат и времени
Для ввода сегодняшней даты в текущую ячейку можно воспользоваться сочетанием клавиш Ctrl + Ж (или CTRL+SHIFT+4 если у вас другой системный язык по умолчанию).
Если скопировать ячейку с датой (протянуть за правый нижний угол ячейки), удерживая правую кнопку мыши, то можно выбрать – как именно копировать выделенную дату:
Если Вам часто приходится вводить различные даты в ячейки листа, то гораздо удобнее это делать с помощью всплывающего календаря:
Если нужно, чтобы в ячейке всегда была актуальная сегодняшняя дата – лучше воспользоваться функцией СЕГОДНЯ (TODAY):
Как Excel на самом деле хранит и обрабатывает даты и время
Если выделить ячейку с датой и установить для нее Общий формат (правой кнопкой по ячейке Формат ячеек – вкладка Число – Общий), то можно увидеть интересную картинку:
То есть, с точки зрения Excel, 27. 10.2012 15:42 = 41209,65417
На самом деле любую дату Excel хранит и обрабатывает именно так – как число с целой и дробной частью. Целая часть числа (41209) – это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0)
Из всех этих фактов следуют два чисто практических вывода:
- Во-первых, Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года. Но это мы переживем! 😉
- Во-вторых, с датами и временем в Excel возможно выполнять любые математические операции. Именно потому, что на самом деле они – числа! А вот это уже раскрывает перед пользователем массу возможностей.
Количество дней между двумя датами
Считается простым вычитанием – из конечной даты вычитаем начальную и переводим результат в Общий (General) числовой формат, чтобы показать разницу в днях:
Количество рабочих дней между двумя датами
Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (государственных праздников, больничных дней, отпусков, отгулов и т.д.):
Примечание: Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более древних версиях сначала необходимо подключить надстройку Пакета анализа. Для этого идем в меню Сервис – Надстройки (Tools – Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak). После этого в Мастере функций в категории Дата и время появится необходимая нам функция ЧИСТРАБДНИ (NETWORKDAYS).
Количество полных лет, месяцев и дней между датами. Возраст в годах. Стаж.
Про то, как это правильно вычислять, лучше почитать тут.
Сдвиг даты на заданное количество дней
Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.
Сдвиг даты на заданное количество рабочих дней
Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY). Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ (NETWORKDAYS) описанной выше.
Вычисление дня недели
Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время.
Первый аргумент этой функции – ячейка с датой, второй – тип отсчета дней недели (самый удобный – 2).
Вычисление временных интервалов
Поскольку время в Excel, как было сказано выше, такое же число, как дата, но только дробная его часть, то с временем также возможны любые математические операции, как и с датой – сложение, вычитание и т. д.
Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55:
Ссылки по теме
- Как вычислять возраст (стаж) в полных годах-месяцах-днях
- Как сделать выпадающий календарь для быстрого ввода любой даты в любую ячейку.
- Автоматическое добавление текущей даты в ячейку при вводе данных.
- Как вычислить дату второго воскресенья февраля 2007 года и т.п.
Вставка текущей даты в документ Word
Word для Microsoft 365 Word 2021 Word 2019 Word 2016 Word 2013 Word 2010 Word 2007 Еще…Меньше
Вы можете вставить в документ Word текущую дату или другое значение даты и времени как обычный текст или как поле, которое обновляется автоматически.
Вставка текущей даты
Если вы не хотите, чтобы дата обновлялась автоматически, вставьте ее как текст.
-
На вкладке Вставка в группе Текст нажмите кнопку Дата и время.
-
В диалоговом окне Дата и время выберите нужный формат и нажмите кнопку ОК.
Дата вставляется как текст.
Вставка автоматически обновляемой даты
Если вы хотите, чтобы дата обновлялась при каждом открытии документа, вы можете вставить ее как поле.
- org/ListItem”>
-
В диалоговом окне Дата и время выберите нужный формат.
-
Установите флажок Обновлять автоматически.
Дата будет вставлена в автоматически обновляемое поле.
На вкладке Вставка в группе Текст нажмите кнопку Дата и время.
Вставка или обновление поля даты
Если вы установили флажок Обновлять автоматически при вставке даты, при наведении на нее указателя будет выводиться светло-серый прямоугольник. Это означает, что вы вставили поле, которое можно изменять или обновлять.
-
Чтобы изменить дату, щелкните серое поле, введите новую дату и щелкните за пределами прямоугольника.
-
Чтобы вернуть текущую дату, щелкните поле и выберите команду Обновить.
Примечание: Если изменить дату вручную, сохранить и закрыть документ, при следующем его открытии отобразится текущая дата.
функция СЕГОДНЯ
Excel
Формулы и функции
Дополнительные функции
Дополнительные функции
Функция СЕГОДНЯ
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Дополнительно. .. Меньше
В этой статье описаны синтаксис формулы и использование функции СЕГОДНЯ
в Microsoft Excel.
Описание
Возвращает порядковый номер текущей даты. Серийный номер — это код даты и времени, используемый Excel для расчета даты и времени. Если до ввода функции формат ячейки был Общий , Excel меняет формат ячейки на Дата . Если вы хотите просмотреть серийный номер, вы должны изменить формат ячейки на Общий или Номер .
Функция СЕГОДНЯ полезна, когда вам нужно, чтобы текущая дата отображалась на листе, независимо от того, когда вы открываете книгу. Это также полезно для расчета интервалов. Например, если вы знаете, что кто-то родился в 1963 году, вы можете использовать следующую формулу, чтобы найти возраст этого человека на день рождения в этом году:
.
=
ГОД(
СЕГОДНЯ())-1963
Эта формула использует функцию СЕГОДНЯ в качестве аргумента функции ГОД для получения текущего года, а затем вычитает 1963, возвращая возраст человека.
Примечание: Если функция СЕГОДНЯ не обновляет дату, как вы ожидаете, вам может потребоваться изменить настройки, управляющие пересчетом книги или листа. Вкладка Файл щелкните Параметры , а затем в категории Формулы в разделе Параметры расчета убедитесь, что выбрано Автоматически .
Синтаксис
СЕГОДНЯ()
Синтаксис функции СЕГОДНЯ не имеет аргументов.
Примечание. Excel хранит даты в виде последовательных порядковых номеров, чтобы их можно было использовать в вычислениях. По умолчанию 1 января 19 г.00 — это порядковый номер 1, а 1 января 2008 года — порядковый номер 39448, потому что это 39 447 дней после 1 января 1900 года.
Пример
Скопируйте данные примера из следующей таблицы и вставьте их в ячейку A1 нового рабочего листа Excel. Чтобы формулы отображали результаты, выберите их, нажмите F2, а затем нажмите клавишу ВВОД. При необходимости вы можете настроить ширину столбцов, чтобы увидеть все данные.
Формула | Описание | Результат |
=СЕГОДНЯ() | Возвращает текущую дату. | 01.12.2011 |
=СЕГОДНЯ()+5 | Возвращает текущую дату плюс 5 дней. Например, если текущая дата — 01.01.2012, эта формула возвращает 06.01.2012. | 06.12.2011 |
=ДАТАЗНАЧ(“1/1/2030”)-СЕГОДНЯ() | Возвращает количество дней между текущей датой и 01.01.2030. Обратите внимание, что ячейка A4 должна быть отформатирована как «Общий» или «Число», чтобы результат отображался правильно. | 31.01.1918 |
=ДЕНЬ(СЕГОДНЯ()) | Возвращает текущий день месяца (1–31). | 1 |
=МЕСЯЦ(СЕГОДНЯ()) | Возвращает текущий месяц года (от 1 до 12). Например, если текущий месяц — май, эта формула возвращает 5, . | 12 |
функция – форматирование ДАТА-ВРЕМЯ В COBOL
спросил
Изменено
4 года, 9 месяцев назад
Просмотрено
16 тысяч раз
я хочу отформатировать ФУНКЦИЮ ДАТА-ВРЕМЯ. У меня есть
MOVE FUNCTION CURRENT-DATE TO WS-CURRENT-DATE-DATA. ДИСПЛЕЙ WS-ТЕКУЩАЯ-ДАТА-ДАННЫЕ
и я попробовал использовать наполнитель
01 WS-ТЕКУЩАЯ ДАТА-ДАННЫЕ. 05 WS-ТЕКУЩАЯ ДАТА. 10 WS-ТЕКУЩИЙ ГОД РИСУНОК 9(04). 10 РИСУНОК ЗАПОЛНИТЕЛЯ X(01) ЗНАЧЕНИЕ "-". 10 WS-ТЕКУЩИЙ МЕСЯЦ РИСУНОК 9(02). 10 WS-ТЕКУЩИЙ ДЕНЬ РИСУНОК 9(02). 05 WS-ТЕКУЩЕЕ ВРЕМЯ. 10 WS-ТЕКУЩИЕ ЧАСЫ PIC 9(02). 10 WS-ТЕКУЩАЯ-МИНУТА PIC 9(02). 10 WS-CURRENT-SECOND PIC 9(02). 10 WS-CURRENT-MILLISECONDS PIC 9(02).
то, что я получаю, это результат с дефисом сзади, например
2017122818242863-
но я хочу, возможно, это
2017-12-28-18:24:28:63
Помогите пожалуйста. Заранее спасибо
- функция
- datetime
- кобол
1
Как уже сказал Джо, если вы перемещаете что-то в элемент группы, вы получаете данные без преобразования, поэтому либо перемещайте подполя, либо (если ваш компилятор поддерживает это – вы пропустили, чтобы указать, какой из них вы использовали) использовать ФОРМАТИРОВАТЬ ФУНКЦИЮ-ДАТАВРЕМЯ
.
Причина, по которой вы видите этот дефис в конце then, заключается в том, что это определение фактических данных. FUNCTION CURRENT-DATE
ожидает:
05 WS-CURRENT-DATE-TIME. 10 WS-ТЕКУЩАЯ ДАТА. 15 WS-ТЕКУЩИЙ ГОД РИСУНОК 9(4). 15 WS-ТЕКУЩИЙ МЕСЯЦ РИСУНОК 9(2). 15 WS-ТЕКУЩИЙ ДЕНЬ РИСУНОК 9(2). 10 WS-ТЕКУЩЕЕ ВРЕМЯ. 15 WS-ТЕКУЩИЙ ЧАС РИСУНОК 9(2). 15 WS-CURRENT-MIN РИСУНОК 9(2). 15 WS-CURRENT-SEC PIC 9(2). 15 WS-CURRENT-MS PIC 9(2). 10 WS-DIFF-GMT PIC S9(4).
Вы заметили, что в конце у меня есть дополнительное поле для разницы во времени по Гринвичу. Кроме того, вы не можете просто добавить наполнитель к своему определению и ожидать, что эта функция будет знать, что с ним делать. В основном происходит то, что дефис, который вы вводите (в предложении изображения), перезаписывается данными, переданными из функции, что вам нужно, это 2 места в рабочем хранилище. Один для хранения возврата из функции, а другой для хранения отформатированного значения, что-то вроде этого:
01 WS-TEMP-DT. 05 WS-TEMP-ДАТА-ВРЕМЯ. 10 WS-ТЕМП-ДАТА. 15 WS-TEMP-YEAR PIC 9(4). 15 WS-TEMP-MONTH PIC 9(2). 15 WS-TEMP-DAY PIC 9(2). 10 WS-ТЕМП-ВРЕМЯ. 15 WS-TEMP-HOUR PIC 9(2). 15 WS-TEMP-MIN PIC 9(2). 15 WS-TEMP-SEC PIC 9(2). 15 WS-TEMP-MS PIC 9(2). 10 WS-DIFF-GMT PIC S9(4). 01 WS-ФОРМАТ-DT. 05 WS-ФОРМАТ-ДАТА-ВРЕМЯ. 15 WS-ФОРМАТ-ГОД РИСУНОК 9(4). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'. 15 WS-ФОРМАТ-МЕСЯЦ РИСУНОК 9(2). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'. 15 WS-ФОРМАТ-ДЕНЬ РИСУНОК 9(2). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'. 15 WS-ФОРМАТ-ЧАС РИСУНОК 9(2). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'. 15 WS-ФОРМАТ-МИН. РИСУНОК 9(2). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'. 15 WS-FORMATTED-SEC PIC 9(2). 15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'. 15 WS-ФОРМАТ-MS РИСУНОК 9(2). ПЕРЕМЕСТИТЬ ФУНКЦИЮ CURRENT-DATE В WS-TEMP-DATE-TIME ПЕРЕМЕСТИТЬ WS-TEMP-YEAR В WS-FORMATTED-YEAR ПЕРЕМЕСТИТЬ WS-TEMP-MONTH В WS-FORMATTED-MONTH ПЕРЕМЕСТИТЬ WS-TEMP-DAY В WS-FORMATTED-DAY ПЕРЕМЕСТИТЬ WS-TEMP-HOUR В WS-FORMATTED-HOUR ПЕРЕМЕСТИТЬ WS-TEMP-MIN В WS-FORMATTED-MIN ПЕРЕМЕСТИТЕ WS-TEMP-SEC В WS-FORMATTED-SEC ПЕРЕМЕСТИТЬ WS-TEMP-MS В WS-FORMATTED-MS ДИСПЛЕЙ WS-ФОРМАТ-ДАТА-ВРЕМЯ
1
CURRENT-DATE — поле из 21 символа с датой, временем и смещением от GMT. «Дефис сзади» на самом деле является первой позицией смещения от GMT.
Оператор UNSTRING может использоваться для перемещения отдельных частей CURRENT-DATE.
ФУНКЦИЯ УДАЛЕНИЯ СТРОКИ ТЕКУЩАЯ ДАТА INTO WS-ТЕКУЩИЙ ГОД WS-ТЕКУЩИЙ МЕСЯЦ WS-ТЕКУЩИЙ ДЕНЬ WS-ТЕКУЩИЕ ЧАСЫ WS-ТЕКУЩИЕ МИНУТЫ WS-CURRENT-SECOND WS-CURRENT-MILLISECONDS END-UNSTRING ДИСПЛЕЙ WS-ТЕКУЩАЯ-ДАТА-ДАННЫЕ
Вам нужно будет определить подполя в WS-CURRENT-DATE-DATA, чтобы выделить гг, мм, дд, чч, мин, сс, мс, а затем переместить их по отдельности в поля в WS-CURRENT-DATE и WS-CURRENT -ВРЕМЯ, чтобы правильно отображались символы «-» и «:».
0
Ответ SaggingRufus был информативным. Я попытался получить ожидаемый результат, используя модификацию ссылки.
ИДЕНТИФИКАЦИОННЫЙ ОТДЕЛ.
ID ПРОГРАММЫ. ПРИВЕТ, МИР.
ОТДЕЛ ДАННЫХ.
РАБОЧЕ-ХРАНИТЕЛЬНАЯ СЕКЦИЯ.
01 WS-DATETIME PIC X(21).
01 WS-ФОРМАТ-DT.
05 WS-ФОРМАТИРОВАННЫЙ-DTE-TME.
15 WS-ФОРМАТ-ГОД РИСУНОК 9(4).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'.
15 WS-ФОРМАТ-МЕСЯЦ РИСУНОК 9(2).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'.
15 WS-FORMATTED-DY РИСУНОК 9(2).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ '-'.
15 WS-ФОРМАТ-ЧАС РИСУНОК 9(2).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'.
15 WS-ФОРМАТ-МИН. РИСУНОК 9(2).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'.
15 WS-FORMATTED-SEC PIC 9(2).
15 ИЗОБРАЖЕНИЕ ЗАПОЛНИТЕЛЯ X ЗНАЧЕНИЕ ':'.
15 WS-ФОРМАТ-MS РИСУНОК 9(2).
ПРОЦЕДУРНЫЙ ОТДЕЛ.
ПЕРЕМЕСТИТЕ ФУНКЦИЮ CURRENT-DATE В WS-DATETIME.
ПЕРЕМЕСТИТЕ WS-DATETIME(1:4) В WS-FORMATTED-YEAR.
ПЕРЕМЕСТИТЕ WS-DATETIME(5:2) В WS-FORMATTED-MONTH.
ПЕРЕМЕСТИТЕ WS-DATETIME(7:2) В WS-FORMATTED-DY.
ПЕРЕМЕЩЕНИЕ WS-DATETIME(9:2) В WS-ФОРМАТ-ЧАС.
ПЕРЕМЕСТИТЕ WS-DATETIME(11:2) В WS-FORMATTED-MINS.
ПЕРЕМЕСТИТЕ WS-DATETIME(13:2) В WS-FORMATTED-SEC.
ПЕРЕМЕСТИТЕ WS-DATETIME(15:2) В WS-FORMATTED-MS.