Как подтянуть последние значение по дате в эксель

Обновлено: 07.07.2024

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

Первый день месяца в Excel

Для формулы, преобразующей текущую или другую дату в первый день месяца, используем функции «ДАТА», «ГОД» и «МЕСЯЦ»:

  • Первый день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1)
  • Первый день прошлого месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())-1;1)
  • Первый день текущего месяца предыдущего года от текущей даты: =ДАТА(ГОД(СЕГОДНЯ())-1;МЕСЯЦ(СЕГОДНЯ());1)
  • Первый день месяца от произвольной даты, записанной в ячейку «A1»: =ДАТА(ГОД(A1);МЕСЯЦ(A1);1)

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

Последний день месяца в Excel

Для определения последнего месяца от текущей или произвольной даты в Excel, начиная с версии 2007 года, существует функция «КОНМЕСЯЦА» с двумя аргументами: «Начальная дата» и «Количество месяцев». Если «Количество месяцев» равно 0, то будет возвращен последний день того месяца, который содержится в аргументе «Начальная дата».

Примеры для Excel 2007-2016:

  • Последний день текущего месяца от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();0)
  • Последний день прошлого месяца от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();-1)
  • Последний день текущего месяца предыдущего года от текущей даты: =КОНМЕСЯЦА(СЕГОДНЯ();-12)
  • Последний день месяца от произвольной даты, записанной в ячейку «A1»: =КОНМЕСЯЦА(A1;0)

Функция «КОНМЕСЯЦА» возвращает значение в числовом виде, поэтому для правильного отображения последнего дня месяца следует к ячейке с формулой применить формат даты.

В версиях Excel по 2003 год функция «КОНМЕСЯЦА» по-умолчанию отсутствует, поэтому будем применять формулу, составленную, как и для первого дня месяца, из функций «ДАТА», «ГОД» и «МЕСЯЦ».

Примеры для Excel 2000-2003:

  • Последний день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;0)
  • Последний день прошлого месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());0)
  • Последний день текущего месяца предыдущего года от текущей даты: =ДАТА(ГОД(СЕГОДНЯ())-1;МЕСЯЦ(СЕГОДНЯ())+1;0)
  • Последний день месяца от произвольной даты, записанной в ячейку «A1»: =ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;0)

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

Как вариант, для определения последнего дня месяца можно использовать формулу, возвращающую первый день следующего месяца, из значения которой вычитается единица: =ДАТА(ГОД(A1);МЕСЯЦ(A1)+1;1)-1

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

Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.

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

Подсчет дат, когда критерий сформулирован в виде текста. На рис. 12.1 показан набор данных с датами в стандартном формате Excel, то есть в виде порядковых чисел. В тоже время, критерии заданы как число (год) и текст (месяц). Цель – подсчитать, сколько дат соответствуют критерию. Проблема в том, что у нас несоответствие формата данных: в столбце A даты как порядковые номера, а критерий – смесь чисел и текста. На рис. 12.1 приведено пять различных формул, которые можно использовать для достижения цели.

Рис. 12.1. Подсчет количества дат

Рис. 12.1. Подсчет количества дат (заданных порядковыми номерами) по двум критериям: году (число) и месяцу (текст)

Давайте подробнее изучим работу этих пяти формул.

  • Если вы можете позволить себе вспомогательный столбец, функция СЧЁТЕСЛИ будет самым простым решением.
  • Функция МЕСЯЦ возвращает число между 1 и 12, а функция ГОД – число (год).
  • Хотя Excel требует, чтобы аргумент функции МЕСЯЦ был представлен датой в числовом формате, этот аргумент может распознать и текст. Однако МЕСЯЦ(Окт) вернет ощибку, а вот если добавить к названию месяца любое число, например, 1, то Excel справится. Используйте, как в формуле выражение Окт1, заданное фрагментом F8&1, или 1Окт, заданное фрагментом 1&F8.
  • Формулы с вспомогательными столбцами как правило работают быстрее.
  • Если у вас Excel 2007 или более поздний, вы можете использовать функции СЧЁТЕСЛИМН и КОНМЕСЯЦА.
  • Вам даны год (в виде числа) и месяц (как текст). Это означает, что вы можете вычислить дату начала и конца месяца, а затем определить даты, попажающие между ними.
  • Месяц всегда начинается с первого числа, так что вы можете создать нижнюю границу диапазона конкатенацией: " >=1 " &F8&E8. Операции конкатенации возвращают текст, но это не страшно, т.к. функция СУММЕСЛИМН понимает даты в виде текста.
  • Вы используете функцию КОНМЕСЯЦА с аргументом число_месяцев равным нулю; это позволяет получить последнюю дату текущего месяца. Функция КОНМЕСЯЦА является динамической: она возвращает 28 или 29 для февраля и 30 или 31 для любого другого месяца.
  • Эта формула является самой быстрой, если вам нужно получить решение в одной ячейке.
  • Если у вас Excel версии младше 2007 г., вы можете использовать две функции СЧЁТЕСЛИ, одну – для верхнего диапазона, вторую – для нижнего. Фокус в том, чтобы сначала сосчитать все значения, которые равны или меньше верхней границы, а затем вычесть все значения, которые меньше нижней границы.
  • В Excel 2003 или более ранней, чтобы добавить функцию КОНМЕСЯЦА, вам нужно выбрать ИнструментыНадстройкиАнализ Данных.
  • Эта формула работает быстрее, чем формулы [4] и [5].
  • Функции МЕСЯЦ и ГОД возвращают числа, извлекая их из порядкового номера даты.
  • Далее сравниваются два фрагмента, каждый полкченный конкатенацией.
  • Функция ТЕКСТ используется для представления чисел в виде текста. Второй аргумент этой функции – формат – определяет, как будет представлено число. Вы может конвертировать весь столбец А в текст, состоящий из 7 символов: 3 буквы месяца и 4 цифры года.

Нахождение объема продаж за год. На рис. 12.4 показан пример несоответствие формата года в критерии Е6 (число) и формата дат в диапазоне А2:А6 (порядковый номер). Цель – найти сумму продаж за год. На рисунке представлены шесть вариантов формул, которые могут решить задачу. Обратите внимание, что в формулах [1] и [2] критерии начала и конца года жестко зашиты в коде, т.к. они не могут изменяться. Это 1/1 и 31/12). Формулы размещены на рисунке в порядка увеличения скорости работы.

Рис. 12.4. Формата года в критерии Е6 (число) не соответствует формату дат в диапазоне А2:А6 (порядковый номер)

Для работы с датами в Excel в разделе с функциями определена категория «Дата и время». Рассмотрим наиболее распространенные функции в этой категории.

Как Excel обрабатывает время

Программа Excel «воспринимает» дату и время как обычное число. Электронная таблица преобразует подобные данные, приравнивая сутки к единице. В результате значение времени представляет собой долю от единицы. К примеру, 12.00 – это 0,5.

Значение даты электронная таблица преобразует в число, равное количеству дней от 1 января 1900 года (так решили разработчики) до заданной даты. Например, при преобразовании даты 13.04.1987 получается число 31880. То есть от 1.01.1900 прошло 31 880 дней.

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

Пример функции ДАТА

Построение значение даты, составляя его из отдельных элементов-чисел.

Синтаксис: год; месяц, день.

Все аргументы обязательные. Их можно задать числами или ссылками на ячейки с соответствующими числовыми данными: для года – от 1900 до 9999; для месяца – от 1 до 12; для дня – от 1 до 31.

Если для аргумента «День» задать большее число (чем количество дней в указанном месяце), то лишние дни перейдут на следующий месяц. Например, указав для декабря 32 дня, получим в результате 1 января.

Пример использования функции:

ДАТА.

Зададим большее количество дней для июня:

Большее количество дней.

Примеры использования в качестве аргументов ссылок на ячейки:

Ссылки в аргументах.

Функция РАЗНДАТ в Excel

Возвращает разницу между двумя датами.

  • начальная дата;
  • конечная дата;
  • код, обозначающий единицы подсчета (дни, месяцы, годы и др.).

Способы измерения интервалов между заданными датами:

  • для отображения результата в днях – «d»;
  • в месяцах – «m»;
  • в годах – «y»;
  • в месяцах без учета лет – «ym»;
  • в днях без учета месяцев и лет – «md»;
  • в днях без учета лет – «yd».

В некоторых версиях Excel при использовании последних двух аргументов («md», «yd») функция может выдать ошибочное значение. Лучше применять альтернативные формулы.

Примеры действия функции РАЗНДАТ:

РАЗНДАТ.

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

Функция ГОД в Excel

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

Пример использования функции ГОД:

ГОД.

Функция МЕСЯЦ в Excel: пример

Возвращает месяц как целое число (от 1 до 12) для заданной в числовом формате даты. Аргумент – дата месяца, который необходимо отобразить, в числовом формате. Даты в текстовом формате функция обрабатывает неправильно.

Примеры использования функции МЕСЯЦ:

МЕСЯЦ.

Примеры функций ДЕНЬ, ДЕНЬНЕД и НОМНЕДЕЛИ в Excel

Возвращает день как целое число (от 1 до 31) для заданной в числовом формате даты. Аргумент – дата дня, который нужно найти, в числовом формате.

ДЕНЬ.

Чтобы вернуть порядковый номер дня недели для указанной даты, можно применить функцию ДЕНЬНЕД:

ДЕНЬНЕД.

По умолчанию функция считает воскресенье первым днем недели.

Для отображения порядкового номера недели для указанной даты применяется функция НОМНЕДЕЛИ:

НОМНЕДЕЛИ.

Дата 24.05.2015 приходится на 22 неделю в году. Неделя начинается с воскресенья (по умолчанию).

С понедельника.

В качестве второго аргумента указана цифра 2. Поэтому формула считает, что неделя начинается с понедельника (второй день недели).

Для указания текущей даты используется функция СЕГОДНЯ (не имеет аргументов). Чтобы отобразить текущее время и дату, применяется функция ТДАТА ().

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

Вставка фиксированного значения даты или времени в ячейку Excel

Фиксированное значение на листе не изменяется при пересчете или открытии листа. При нажатии клавиш CTRL+; для вставки текущей даты в ячейку Excel "делает снимок" текущей даты, который вставляется в ячейку. Так как значение этой ячейки не меняется, оно считается статическим.

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

Выполните одно из действий, указанных ниже.

Чтобы вставить текущую дату, нажмите клавиши CTRL+; (точка с запятой).

Чтобы вставить текущее время, нажмите клавиши CTRL+SHIFT+; (точка с запятой).

Чтобы вставить текущие дату и время, нажмите клавиши CTRL+; (точка с запятой), затем клавишу ПРОБЕЛ, а после этого — CTRL+SHIFT+; (точка с запятой).

Изменение формата даты и времени

Чтобы изменить формат даты или времени, щелкните ячейку правой кнопкой мыши и выберите формат ячеек. Затем в диалоговом окне Формат ячеек на вкладке Число в списке Категория выберитедата или время, а затем в списке Тип выберите тип и нажмите кнопку ОК.

Вставка фиксированного значения даты или времени в ячейку Excel

Фиксированное значение на листе не изменяется при пересчете или открытии листа. При нажатии клавиш CTRL+; для вставки текущей даты в ячейку Excel "делает снимок" текущей даты, который вставляется в ячейку. Так как значение этой ячейки не меняется, оно считается статическим.

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

Выполните одно из действий, указанных ниже.

Чтобы вставить текущую дату, нажмите клавиши CTRL+; (точка с запятой).

Чтобы вставить текущее время, нажмите + ; (точка с за semi-двоеточием).

Чтобы вставить текущие дату и время, нажмите CTRL+; (точка с за semi-двоеточием), затем нажмите пробел, а затем нажмите +; (точка с за semi-двоеточием).

Изменение формата даты и времени

Чтобы изменить формат даты или времени, щелкните ячейку правой кнопкой мыши и выберите формат ячеек. Затем в диалоговом окне Формат ячеек на вкладке Число в списке Категория выберитедата или время, а затем в списке Тип выберите тип и нажмите кнопку ОК.

Вставка фиксированного значения даты или времени в ячейку Excel

Фиксированное значение на листе не изменяется при пересчете или открытии листа. При нажатии клавиш CTRL+; для вставки текущей даты в ячейку Excel "делает снимок" текущей даты, который вставляется в ячейку. Так как значение этой ячейки не меняется, оно считается статическим.

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

Выполните одно из действий, указанных ниже.

Чтобы вставить дату, введите дату (например, 2/2) и щелкните Главная > числовом формате (на вкладке Число) >Краткий формат даты или Длинный формат даты.

Чтобы вставить время, введите время, а затем щелкните Главная > числовом формате (на вкладке Число) >время.

Изменение формата даты и времени

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

Вставка обновляемого значения даты или времени

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

Для вставки обновляемой текущей даты или времени используются функции СЕГОДНЯ и ТДАТА, как показано в приведенном ниже примере. Дополнительные сведения об использовании этих функций см. в статьях Функция СЕГОДНЯ и Функция ТДАТА

Описание (результат)

Текущая дата (значения могут быть разными)

Текущие дата и время (значения могут быть разными)

Выделите текст в таблице, приведенной выше, и нажмите клавиши CTRL+C.

На пустом листе щелкните ячейку A1 один раз и нажмите CTRL+V. Если вы работаете в Excel в Интернете, повторите копирование и в копирование для каждой ячейки в примере.

Важно: Чтобы пример правильно работал, его нужно вставить в ячейку A1.

Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите клавиши Ctrl+` (знак ударения) или на вкладке Формулы в группе Зависимости формул нажмите кнопку Показывать формулы.

Скопировав пример на пустой лист, можно настроить его в соответствии со своими потребностями.

Примечание: Результаты, возвращаемые функциями СЕГОДНЯ и ТДАТА, изменяются только при пересчете листа или при выполнении макроса, содержащего эту функцию. Постоянного обновления ячеек, содержащих эти функции, не происходит. В качестве значений даты и времени используются показания системных часов компьютера.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

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