Списки день месяца excel

Хитрости »

18 Октябрь 2021              6881 просмотров


Создать список дат(месяцев, кварталов, лет) на основании даты начала и окончания периода

Скачать файл, используемый в видеоуроке:

  Список дат при помощи Power Query.xlsx (72,7 KiB, 407 скачиваний)


Представим ситуацию, что у нас есть таблица следующего вида:
Исходная таблица
В ней перечислены клиенты, которые подписались на наш продукт(условно клиент А и клиент В). В качестве дат указаны дата начала подписки и дата окончания. И нам необходимо построить что-то вроде диаграммы Ганта, на которой будет видно в хронологическом порядке активность клиентов
Результат - Диаграмма Ганта по каждому клиенту
Т.е. по сути нам нужно создать даты из двух таким образом, чтобы на каждый день подписки была одна дата. Например, для клиента «А» с подпиской на журнал «За рулем» у нас должно получиться 115 строк дат, т.к. подписка длилась 115 дней(от 05.10.2020 до 27.01.2021). Проблема в том, что встроенных средств создания списка дат между двумя заданными датами в Power Query нет. Поэтому придется что-то изобретать.
Загружаем данные нашей таблицы в редактор Power Query: выделяем таблицу -вкладка Данные(Data)(или Power Query) —Получить и преобразовать данные(Get & Transform Data)Из таблицы(From Table/Range).
После того как загрузили таблицу в Power Query следует убедиться, что тип данных в столбцах «Дата подписки» и «Дата отказа» именно дата, а не дата и время или тем более не тип любой или текст. Для этого на каждом столбце щелкаем левой кнопкой мыши по значку слева от заголовка и выбираем «Дата»

(Date)

Сменить тип на дату
Или выделяем сразу оба столбца с датами -вкладка Главная(Home) -группа Преобразование(Transform) -раскрываем список Тип данных(Data type) и выбираем Дата(Data).
Далее, чтобы получить список дат для каждого клиента от одной даты до другой, необходимо использоваться функцию List. Идем на вкладку Добавление столбца(Add Column)Настраиваемый столбец(Custom column). В качестве имени запишем «Даты», а в качестве формулы следующее:

List.Dates([Дата подписки], Duration.Days(Duration.From([Дата отказа]-[Дата подписки])) +1, #duration(1, 0, 0, 0))

Формирование списка дат
Подробнее про создание вычисляемых столбцов и просмотр функций в PowerQuery можно ознакомиться в этой статье: Вычисления в PowerQuery
List.Dates – функция языка M, которая берет начальную дату и прибавляет к ней указанное кол-во дней, и все это выводит в виде списка(тип List). Для определения кол-ва дней мы используем обычное вычитание дат([Дата отказа]-[Дата продажи]), преобразуя при этом полученную разность в тип Длительность при помощи функции Duration.From, а далее в количество дней при помощи Duration.Days. Если этого не сделать, то можем получить ошибку несовпадения типов. После этого задаем шаг в днях, который нужно использовать для создания списка — #duration(1, 0, 0, 0). #duration(кол-во дней, кол-во часов, кол-во минут, кол-во секунд)
Будет добавлен новый столбец, в котором для каждого товара каждого клиента будет создан список дат использования продукта. Остается лишь щелкнуть левой кнопкой мыши на значке разнонаправленных стрелок в заголовке созданного столбца и выбрать Развернуть в новые строки(Expand to New Rows):
Развернуть в новые строки
Полученный столбец со всеми датами преобразуем в тип Дата(вкладка Главная(Home) -группа Преобразование(Transform) -раскрываем список Тип данных(Data type) и выбираем Дата(Data).
Если в дальнейшем мы планируем работать с результатом запроса в Excel через выгрузку в сводную таблицу(Главная(Home)Закрыть и загрузить(Close & Load)Отчет сводной таблицы(Pivot table report)), то на этом шаге можно сохранить и загрузить запрос и уже в сводной таблице просто поместить созданный столбец «Даты» в область Столбцов.
Но если мы хотим развернуть эти даты в столбцы непосредственно через PowerQuery, то для начала необходимо отсортировать столбец с датами по возрастанию: жмем на значок стрелки в правом верхнем углу столбца и из раскрывающегося списка выбираем Сортировка по возрастанию(Sort Ascending):
Сортировка дат по возрастанию
После чего используем столбец сведения: выделяем созданный столбец дат -вкладка Преобразование(Transform)Столбец сведения(Pivot Column). В качестве Столбца значений(Values column) указываем столбец Дата подписки. Нажимаем кнопку Расширенные параметры(Advanced options) и в качестве Функции агрегированного значения(Aggregate Value Function) указываем Количество(все)(Count (All))
Столбец сведения
После этого можно удалить лишние столбцы (например, столбец «Дата отказа») и останется выгрузить данные на лист: Главная(Home)Закрыть и загрузить(Close & Load)Таблица(Table). Созданная таблица выгрузится на лист.
В загруженном листе нам останется сделать форматирование, чтобы отметить только те ячейки, в которых у клиентов были активные подписки. Выделяем ячейки со значениями 0 и 1(те, что под датами) —Главная(Home)Условное форматирование(Conditional formatting)Правила выделения ячеек(Highlight Cells Rules)Равно(Equal To). Вписываем значение 1 и выбираем формат(если предустановленные форматы не подходят, то в раскрывающемся списке выбираем «Пользовательский формат»).
А чтобы нам единички и нули не портили картину, мы опять выделим все ячейки с нулями и единичками -Правая кнопка мыши —Формат ячеек(Format cells) -вкладка Число(Number). Идем в самый низ –(все форматы)(Custom). Выставляем в поле тип такой формат: ;;;
Теперь нули и единички видны не будут, а формат будет работать. В итоге добьемся нужного результата.


Но что делать, когда надо отследить подписку не по дням, а по месяцам? Самый большой тип длительности, который поддерживает функция duration – это дни. Поэтому придется хитрить. Здесь функция

List.Dates

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

List.Generate

. Она способна создавать практически любые списки.
Добавляем новый столбец(вкладка Добавление столбца(Add Column)Настраиваемый столбец(Custom column)). В качестве формулы запишем:

let 
        start = [Дата продажи],
        end = [Дата отказа]
in
        List.Generate(
                ()=>[day=start],
                each [day]<=end,
                each [day=Date.AddMonths([day], 1)],
                each [day]
            )

А дальше все так же: щелкнуть левой кнопкой мыши на значке разнонаправленных стрелок —Развернуть в новые строки(Expand to New Rows). И при необходимости все это «перевернуть» в столбцы(алгоритм точно такой же, как описан выше для списка дат).
Чуть подробнее про то, что мы записали в нашем созданном столбце:
Let – здесь мы задаем дату начала и окончания для каждой строки списка. Можно сказать просто запоминаем их для дальнейшего использования.
List.Generate – специальная функция, которой мы задаем начальное значение даты ( ()=>[day=start],); далее указываем условие по которому необходимо завершить цикл(each [day]<=end ) – т.е. на какой дате закончить создавать список; после этого указываем что именно делать внутри каждого шага цикла(each [day=Date.AddMonths([day], 1)]) – добавить один месяц и указываем, что проделывать это надо для каждого нового значения(each [day]).
Т.е. функция берет дату начала как точку отсчета([day=start]), прибавляет к ней указанный интервал(Date.AddMonths([day], 1)]) и так до тех пор, пока новая дата не станет меньше или равна конечной([day]<=end). И на каждом шаге новая дата добавляется в итоговый список.
На самом деле, для того, чтобы это использовать не надо особо вдумываться в процесс. Копи-паст никто не отменял 😊 Самое главное, на что здесь стоит обратить внимание, это функция Date.AddMonths. Она при каждом шаге цикла прибавляет к переменному значению day(которое начинается у нас с Даты продажи) по одному месяцу. Если нужен другой период(дни, недели, годы), то нужно просто подставить вместо AddMonths другую функцию. Вот возможные варианты:

  1. Date.AddDays – добавляет дни
  2. Date.AddWeeks – добавляет недели
  3. Date.AddMonths – добавляет месяцы(что мы и делали)
  4. Date.AddQuarters – добавляет кварталы
  5. Date.AddYears – добавляет годы

ВАЖНО: Что надо помнить, если используем создание списка не под дням, а, например, по месяцам. Даты для месяцев у нас могут быть разные (например, в примере выше дата начала для клиента «А» 10.09.2020, а дата окончания — 07.02.2021). Это может привести к тому, что в каких-то строках могут пропасть последние месяцы. Решается это довольно просто: сразу после того, как загрузили данные и изменили тип столбцов на тип Дата(второй шаг запроса — перед добавлением пользовательского столбца), необходимо щелкнуть правой кнопкой мыши по столбцу дат -выбрать пункт Преобразование(Transform)Месяц(Month)Начало месяца(Start of Month). Это заставит нашу функцию вычислять интервалы по месяцам корректно. Точно такой же алгоритм и для других периодов: лет, недель, кварталов.

Скачать файл:

  Список дат при помощи Power Query.xlsx (72,7 KiB, 407 скачиваний)

Так же см.:
Получить данные из файлов XML при помощи Power Query
Как перейти к определенной строке таблицы в Power Query
Относительный путь к данным PowerQuery
Курс валют при помощи Power Query


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

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

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

  • Первый день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());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.

На чтение 29 мин. Просмотров 40.9k.

Содержание

  1. Получить день
  2. Получить день недели
  3. Получить месяц
  4. Получить год с даты
  5. Извлечение даты с даты и времени
  6. Извлечение времени с даты и времени
  7. Получить возраст от дня рождения
  8. Получайте дни, часы и минуты между датами
  9. Получить финансовый квартал с даты
  10. Получить процент завершения года
  11. Получить квартал от даты
  12. Получить ту же дату в следующем месяце
  13. Получить ту же дату в следующем году
  14. Получить дату начала в соответствии с установленной датой
  15. Получить номер недели с даты

Получить день

Получить дату с номера дня

= ДАТА(год; 1; день)

Чтобы получить реальную дату из числа дня или «n-го числа года», вы можете использовать функцию ДАТА.

Получить дату с номера дня

В показанном примере формула в C5:

= ДАТА(2015;1; B5)

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

Например, ДАТА возвращает 9 апреля 2016 года со следующими аргументами:

= ДАТА(2016;1;100)

В январе нет 100-го дня, поэтому ДАТА просто продвигается на 100 дней вперед с 1 января, а цифры возвращают правильную дату.

Формула на этой странице использует эту механику. В этом случае предполагается, что в этом году 2015 год, поэтому 2015 год жестко закодирован в течение года, а 1 используется в течение месяца. Значение дня выводится из столбца B, а функция ДАТА рассчитывает дату, как объяснено выше.

Если у вас есть дата в формате Юлиан, например 10015, где используется формат «дддгг», вы можете изменить формулу следующим образом:

= ДАТА(ПРАВСИМВ(A1;2); 1; ЛЕВСИМВ(A1;3))

Здесь мы используем ПРАВСИМВ, чтобы извлечь 2 символа справа за год, и ЛЕВСИМВ, чтобы извлечь 3 символа слева в течение дня. Месяц представлен как 1, как в первом примере.

Получить день с даты

= ДЕНЬ(дата)

Если вам необходимо извлечь день из даты, вы можете использовать функцию ДЕНЬ. В общей форме приведенной выше формула дата должна быть в форме, которую Excel распознает как действительную дату.

Получить день с даты

Функция ДЕНЬ принимает только один аргумент — дату, из которой вы хотите извлечь день. В этом примере формула:

= ДЕНЬ (B3)

B4 содержит значение даты для 5 января 2016 года. Функция ДЕНЬ возвращает число 5, представляющее компонент дня даты.

Обратите внимание: вы можете использовать ДЕНЬ для извлечения дня из дня, введенного как текст:

= ДЕНЬ(«1/5/2016»)

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

Получить имя дня с даты

ТЕКСТ (B4; «дддд»)

Если вам необходимо получить имя дня (например, понедельник, вторник и т. д.) С даты, есть несколько вариантов в зависимости от ваших потребностей.

Получить имя дня с даты

Если вы хотите отображать имя дня, вам не нужна формула — вы можете использовать формат персонализированного номера. Выберите дату, затем перейдите к Форматирование ячеек (Ctrl + 1 или Cmd + 1)> Custom и введите один из этих настраиваемых форматов:

«ддд» // «сред»

«дддд» // «среда»

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

Если вы хотите преобразовать значение даты в текстовое значение, вы можете использовать функцию ТЕКСТ с настраиваемым числовым форматом, например, «ддд». Формула выглядит так:

= ТЕКСТ (B4; «ддд»)

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

Если вы не хотите использовать вспомогательную таблицу, вы также можете отобразить номер дня недели в название месяца непосредственно в функции ВЫБОР следующим образом:

= ВЫБОР (ДЕНЬНЕД(B4); «Вс»; «Пн»; «Вт»; «Ср»; «Чт»; «Пт»; «Сб»)

В этом случае введите имена дней недели, которые вы хотите вернуть (сокращенно или нет), в качестве значений в ВЫБОР после первого аргумента. ДЕНЬНЕД будет извлекать номер буднего дня, и ВЫБОР будет использовать это число для возврата n-го значения в списке. Это работает, потому что ДЕНЬНЕД возвращает число 1-7, соответствующее заданному дню недели. С настройками по умолчанию, воскресенье = 1 и суббота = 7. Смотрите ДЕНЬНЕД для получения дополнительной информации.

ВЫБОР — это больше работы по настройке, но она также более гибкая, так как позволяет привязать дату к любым требуемым значениям (т. е. Вы можете использовать значения, которые являются пользовательскими, сокращенными, не сокращенными, разными языками и т. д.).

Получить дни до даты

= дата-СЕГОДНЯ ()

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

Получить дни до даты

В примере D5 содержит эту формулу:

= B4-СЕГОДНЯ()

В Excel даты — это просто серийные номера. В стандартной системе дат для окон, основанной на 1900 году, где 1 января 1900 года является номером 1. Даты действительны до 9999, что является серийным номером 2 958 465. Это означает, что 1 января 2050 года серийный номер 54789.

В примере датой является 9 марта 2016 года, который является серийным номером 42 438. Так:

= B4-СЕГОДНЯ()

= 1 января 2050 — 27 апреля 2014 г.

= 54;789 — 42;438

= 12;351

Это означает, что до 1 января 2050 года, когда отсчитывается с 9 марта 2016 года, существует 13 033 дня.

Примечание: вам не нужно использовать функцию СЕГОДНЯ. Во втором примере формула в D6:

= B6-C6

В третьем примере одна и та же базовая формула используется вместе с оператором конкатенации (&) для встраивания вычисленных дней в простое текстовое сообщение:

= «Осталось всего» & B6-C6 & «дней!»

Поскольку между 10 декабря 2014 года и 25 декабря 2014 года существует 15 дней, результатом является следующее сообщение:

Осталось всего 15 дней!

Получить дни между датами

= Поздняя дата-Ранняя дата

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

В примере формула в ячейке D6 возвращает 365, поскольку между 1/1/1999 и 1/1/2000 есть 365 дней.

Даты в Excel — это просто серийные номера, которые начинаются 1 января 1900 года.

Получить дни между датами

В примере формула в ячейке D6 просто вычитает числовое значение 1/1/1999 (36161) из числового значения 1/1/2000 (36526), чтобы получить результат 365. Шаги выглядят так:

= C5-B5

= 1/1 / 1999-1 / 1/2000

= 36161-36526

= 365

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

= СЕГОДНЯ() – ранняя дата

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

= Поздняя дата-СЕГОДНЯ()

Обратите внимание, что СЕГОДНЯ будет пересчитываться на постоянной основе. Если вы откроете книгу позднее, значение, используемое для СЕГОДНЯ, обновится, и вы получите новый результат.

Функция ДНИ, введенная в Excel 2013, также вычисляет дни между двумя датами.

Получайте дни между датами, игнорируя годы

= РАЗНДАТ (нач_дата; кон_дата; «гд»)

Получайте дни между датами, игнорируя годы

Для вычисления дней между двумя датами, игнорируя значения года, используйте функцию РАЗНДАТ. В показанном примере формула в D5:

= РАЗНДАТ(B5; C5; «yd»)

Функция РАЗНДАТ может обрабатывать различные расчеты «разницы дат» для вычисления разницы между двумя датами в годах, месяцах и днях. РАЗНДАТ принимает 3 аргумента: начальную дату, конечную дату и единицу измерения, которая контролирует, какой результат будет возвращен.

В этом случае мы хотим, чтобы дни игнорировались годами, поэтому мы поставляем «yd» для единицы.

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

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

= Дата-ДЕНЬ(дата) +1

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

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

В показанном примере формула в ячейке B5:

= B5-ДЕНЬ(B5) +1

Функция ДЕНЬ возвращает значение дня для даты. В примере показано, что значение дня для даты в B5 (5 июня 2016 года) равно 5. Поскольку даты — это только порядковые номера в Excel, мы можем вычесть 5, а затем добавить 1, чтобы получить значение даты на 1 июня 2016 года.

Получить первый день предыдущего месяца

= КОНМЕСЯЦА(дата; -2) +1

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

Получить первый день предыдущего месяца

В показанном примере формула в ячейке B5:

= КОНМЕСЯЦА(B5; -2) +1

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

В показанном примере месяцев указываются как -2, что заставляет КОНМЕСЯЦА возвращаться 4/30/2015. Затем добавляется 1 день для получения 5/1/2015.

Получить последний день месяца

= КОНМЕСЯЦА(дата; 0)

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

Получить последний день месяца

В показанном примере формула в ячейке B5:

= КОНМЕСЯЦА(B5;0)

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

Чтобы получить последний день предыдущего месяца, используйте:

= КОНМЕСЯЦА(дата; -1)

Чтобы получить последний день следующего месяца, используйте:

= КОНМЕСЯЦА(дата; 1)

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

= ДАТА(ГОД (дата); МЕСЯЦ(дата) +1;0)

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

Получить последний рабочий день в месяц

=РАБДЕНЬ (КОНМЕСЯЦА(дата) + 1; -1)

Чтобы получить последний рабочий день в месяце, вы можете использовать функцию РАБДЕНЬ вместе с функцией КОНМЕСЯЦА.

Получить последний рабочий день в месяц

В примере формула в C5:

= РАБДЕНЬ (КОНМЕСЯЦА (B5;0) + 1; -1)

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

Эта дата переходит в функцию РАБДЕНЬ как «дата начала», а также -1 для «дней». Функция РАБДЕНЬ автоматически отступает на 1 день, принимая во внимание любые выходные. В результате будет последний рабочий день месяца.

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

= РАБДЕНЬ(КОНМЕСЯЦА(B5;0) + 1; -1; праздничные дни)

Функция РАБДЕНЬ предполагает, что выходные — это суббота и воскресенье. Если вам необходимо настроить выходные дни, вы можете использовать функцию РАБДЕНЬ.МЕЖД.

Получить n-ый день года

= Дата-ДАТА (ГОД (дата); 1;0)

Если вы хотите получить день года с даты (например, n-го числа года), вы можете использовать формулу, которая использует функции ДАТА и ГОД вместе.

Получить n-ый день года

Например, с датой «1 июня 2016 года» в ячейке B4 следующая формула вернет 153:

= B4-ДАТА(ГОД (B4); 1;0)

То есть 1 июня 2016 года — 153-й день этого года.

Эта формула использует тот факт, что даты — это просто порядковые номера в Excel. Он определяет последний день предыдущего года и вычитает его, начиная с исходной даты B4. Результат — n-й день года.

Обратите внимание, что аргумент день в ДАТА предоставляется как ноль. Хорошей особенностью функции ДАТА является то, что она может обрабатывать значения ДЕНЬ, которые находятся «вне диапазона», и соответствующим образом корректировать результат. Когда мы даем ДАТА год, 1 месяц и 0 дней, функция ДАТА возвращает последний день предыдущего года.

Чтобы настроить формулу для возврата n-го дня года для текущей даты, просто используйте функцию СЕГОДНЯ для даты:

= СЕГОДНЯ () — ДАТА (ГОД (СЕГОДНЯ ()); 1;0)

Получить день недели

Получить последний день недели

= Дата-ОСТАТ(дата-день; 7)

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

Формулы, в которых используется понятие «день недели», основаны на идее, что каждый день недели имеет определенное число. По умолчанию Excel назначает 1 на воскресенье и 7 на субботу.

Получить последний день недели

В примере формула B6 является датой 1/16/2015, а формула в C6:

= B6-ОСТАТ(B6-7;7)

Число 7 (числовой аргумент в функции ОСТАТ) представляет день недели (день), который вы хотите. Только помните, что 1 — это воскресенье, а 7 — суббота. Так принято в США.

Чтобы решить эту формулу, Excel сначала вычитает день (7 в данном случае) из даты, а затем передает результат в функцию ОСТАТ в качестве числа. ОСТАТ возвращает остаток от деления этого числа на 7, которое затем вычитается из даты.

= B6-ОСТАТ(B6-7;7)

= B6-ОСТАТ(42013;7)

= B6-6

= 42014

= 1/10 / 2015

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

= СЕГОДНЯ () — ОСТАТ(СЕГОДНЯ () — день; 7)

Примечание. Если дата имеет тот же день недели, дата будет возвращена.

Получить следующий день недели

= Дата + 7-ДЕНЬНЕД(дата + 7-день)

Получить следующий день недели

Если вы хотите найти следующий конкретный день недели (т.е. следующую среду, пятницу или понедельник) с определенной датой начала, вы можете использовать общую формулу, которая использует функцию ДЕНЬНЕД с чем-то, называемым «день недели» (день). С помощью этой формулы вы можете делать такие вещи:

  • Получить следующую пятницу
  • Получить следующую субботу
  • Получить следующий вторник

Формулы, в которых используется понятие «день недели», основаны на идее, что каждый день недели имеет определенное число. По умолчанию Excel назначает 1 на воскресенье и 7 на субботу. Таким образом, функция ДЕНЬНЕД при заданной дате возвращает число от 1 до 7. В двух словах эта формула сначала переводит дату вперед на 7 дней, а затем возвращается к правильной дате, вычитая результат вычисления, который использует функцию ДЕНЬНЕД.

В примере формула B6 является датой 1/16/2015, а формула в C6:

= B6 + 7-ДЕНЬНЕД(B6 + 7-2)

Число 2 представляет день недели (день), который вы хотите, в данном случае, понедельник.

Чтобы решить эту формулу, Excel сначала добавляет 7 к начальной дате в C6, а затем уменьшает B6 + 7-2 до 42025 (порядковый номер в системе даты Excel, который представляет 1/21/2015). Затем Excel вычисляет день недели для этой даты (4) и вычитает, что из исходной даты начала + 7 (42027 = 1/23/2015), чтобы получить окончательное значение даты 42013 = 1/9/2015

= B6 + 7-ДЕНЬНЕД(B6 + 7-2)

= 42027-ДЕНЬНЕД(42025)

= 42027-4

= 42023

= 1/9/2015

Если вы хотите получить следующий день недели с текущей даты, вы можете использовать функцию СЕГОДНЯ, например:

= СЕГОДНЯ () + 7-НЕДЕЛЯ (СЕГОДНЯ () + 7-день)

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

Получить n-й день недели в месяце

= Дата-ДЕНЬ(дата) + 1 + n * 7-ДЕНЬНЕД(дата-ДЕНЬ (дата) + 8-день)

Чтобы получить n-й день недели в месяце (т. е. первый вторник, третий вторник, четвертый четверг и т. д.), вы можете использовать формулу, основанную на функциях ДЕНЬ и НЕДЕЛЯ.

Получить n-й день недели в месяце

В показанном примере формула в E5:

= B5-ДЕНЬ(B5) + 1 + D5 * 7-ДЕНЬНЕД(B5-ДЕНЬ(B5) + 8-C5)

Во-первых, эта формула определяет «дату начала». «Первое число месяца» рассчитывается с помощью функции ДЕНЬ:

= B5-ДЕНЬ(B5) +1

Затем n * 7 дней до первого числа месяца, чтобы получить дату начала n недель с первого числа месяца. В общей форме формулы n представляет «n-ое».

Следующий шаг — рассчитать корректировку, необходимую для достижения конечного результата. Корректировка рассчитывается с использованием ДЕНЬНЕД и ДЕНЬ:

ДЕНЬНЕД(B5-ДЕНЬ(B5) + 8-C5)

В ДЕНЬНЕД снова вычисляется первое число месяца, затем добавляются 8 дней и вычитается значение для день (день недели).

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

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

Получить последний день недели за месяц

= КОНМЕСЯЦА(дата; 0) + 1-ДЕНЬНЕД (КОНМЕСЯЦА(дата; 0) + 1-день)

Чтобы получить последний день недели за месяц (то есть в прошлую субботу, последнюю пятницу, последний понедельник и т. Д.), Вы можете использовать формулу, основанную на функциях КОНМЕСЯЦА и ДЕНЬНЕД.

Получить последний день недели за месяц

В показанном примере формула в D5:

= КОНМЕСЯЦА(B5;0) + 1-ДЕНЬНЕД(КОНМЕСЯЦА(B5;0) + 1-C5)

Во-первых, эта формула определяет первый день следующего месяца * после * данной даты. Он делает это, используя КОНМЕСЯЦА, чтобы получить последний день месяца, а затем добавить один день:

= КОНМЕСЯЦА(B5;0) +1

Затем формула вычисляет количество дней, требуемых для «возврата назад» к последнему запрошенному буднему дню в предшествующем месяце (т. е. Месяце исходной даты):

ДЕНЬНЕД(КОНМЕСЯЦА(B5;0) + 1-C5)

В ДЕНЬНЕД КОНМЕСЯЦА снова используется для получения первого дня следующего месяца. С этой даты вычитается значение для дня недели, и результат вводится в ДЕНЬНЕД, который возвращает количество дней для отката.

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

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

Получить первый понедельник до любой даты

= Дата-ДЕНЬНЕД (дата-2)

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

Получить первый понедельник до любой даты

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

Понедельник 7

Вторник 1

Среда 2

Четверг 3

Пятница 4

Суббота 5

Воскресенье 6

Чтобы рассчитать эту корректировку динамически для любой даты, вы можете использовать тот факт, что понедельник — это второй день недели в схеме по умолчанию Excel. Просто вычислите день недели даты на 2 дня раньше и используйте этот результат для значения корректировки. Итак, при допущении даты 4 июня 2015 года (четверг) в ячейке A1 формула решается следующим образом:

= A1-ДЕНЬНЕД (A1-2)

= 4;2015 июня — ДЕНЬНЕД (4 июня015-2)

= 4;2015 июня — ДЕНЬНЕД(2 июня 2015 г.)

= 4 июня015-3

= Июнь 1;2015

Если вы считаете, что настройка дня недели запутанна и не интуитивна, вы используете альтернативную формулу, которая использует функцию ВЫБОР с жестко заданными значениями регулировки:

= A1-ВЫБОР(ДЕНЬНЕД(A1;2); 7;1;2;3;4;5;6)

В этой версии используется ДЕНЬНЕД, чтобы получить индекс для дня недели (с понедельника как 1), а затем ВЫБОР возвращает правильное количество дней для возврата.

Если вам нужно найти понедельник до сегодняшнего дня, просто используйте функцию СЕГОДНЯ на дату:

= СЕГОДНЯ () — ДЕНЬНЕД(СЕГОДНЯ () — 2)

Получить месяц

Получить месяц с даты

= МЕСЯЦ (дата)

Если вам необходимо извлечь месяц из даты, вы можете использовать функцию МЕСЯЦ. В общей форме приведенной выше формулы дата должна быть в форме, которую Excel распознает как действительную дату.

Получить месяц с даты

Функция МЕСЯЦ принимает только один аргумент — дату, из которой вы хотите извлечь месяц. В этом примере формула:

= МЕСЯЦ (B3)

B4 содержит значение даты на 5 января 2016 года. Функция МЕСЯЦ возвращает число 1, соответствующее месяцу (январю) даты.

Обратите внимание, что вы можете использовать МЕСЯЦ для извлечения месяца со дня, введенного как текст:

= МЕСЯЦ(«1/5/2016»)

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

Получить название месяца с даты

= ТЕКСТ (дата; «мммм»)

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

Если вы хотите отображать название месяца, вам не нужна формула — вы можете использовать формат персонализированного номера. Выберите дату и перейдите к Форматирование ячеек (Ctrl + 1 или Cmd +1), затем выберите Custom и введите один из этих настраиваемых форматов:

«Ммм» // «Янв»

«Мммм» // «Январь»

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

Если вы хотите преобразовать значение даты в текстовое значение, вы можете использовать функцию ТЕКСТ с настраиваемым числовым форматом, например «ммм».

= ТЕКСТ (B4; «мммм»)

Функция ТЕКСТ преобразует значения в текст с использованием формата чисел, который вы предоставляете. Обратите внимание, что дата теряется при преобразовании: остается только текст для названия месяца.

Если вы хотите максимальной гибкости, вы можете «сопоставить» название месяца с именем месяца непосредственно в функции ВЫБОР следующим образом:

= ВЫБОР (МЕСЯЦ (B4); «Янв»; «Фев»; «Мар»; «Апр»; «Май»; «Июн»; «Июл»; «Авг»; «Сен»; «Окт»; «Ноя» «;» Дек»)

Введите названия месяца, которые хотите вернуть (сокращенно или нет), в качестве значений в ВЫБОР после первого аргумента, который вводится как МЕСЯЦ (дата). МЕСЯЦ выведет номер месяца, и ВЫБОР будет использовать это число для возврата n-го значения в списке. Это работает, потому что МЕСЯЦ возвращает число 1-12, соответствующее имени месяца.

ВЫБОР — это больше работы по настройке, но она также более гибкая, так как позволяет сопоставлять дату с любыми требуемыми значениями (т. е. Вы можете использовать значения, которые являются обычаями, аббревиатурами, аббревиатурами на другом языке и т. д. ).

Получать месяцы между датами

= РАЗНДАТ (нач_дата; кон_дата; «м»)

Чтобы рассчитать месяцы между двумя датами как целые числа, вы можете использовать функцию РАЗНДАТ.

Получать месяцы между датами

В показанном примере формула в D5:

= РАЗНДАТ(B5; C5; «м»)

Обратите внимание, что РАЗНДАТ автоматически округляется вниз.

Функция РАЗНДАТ — это функция «совместимости», которая приходит из Лотос 1-2-3. По неизвестным причинам это документировано в Excel 2000, но вы можете использовать его в своих формулах во всех версиях Excel с того времени.

РАЗНДАТ принимает 3 аргумента: дата начала, дата окончания и единица измерения. В этом случае мы хотим месяцы, поэтому мы поставляем «м» для единицы.

РАЗНДАТ автоматически вычисляет и возвращает число в течение месяцев, округленное вниз.

РАЗНДАТ округляется по умолчанию. Если вы хотите рассчитать месяцы до ближайшего целого месяца, вы можете сделать простую корректировку формулы:

= РАЗНДАТ(нач_дата; кон_дата + 15; «м»)

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

Получить год с даты

= ГОД(дата)

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

Получить год с даты

Функция ГОД принимает только один аргумент — дату, из которой вы хотите извлечь год. В этом примере формула:

= ГОД(B3)

B4 содержит значение даты для 5 января 2016 года. Функция ГОД возвращает число 2016, представляющее год даты.

Обратите внимание, что вы можете использовать ГОД для извлечения года из дня, введенного как текст:

= ГОД(«1/5/2016»)

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

Извлечение даты с даты и времени

= ЦЕЛОЕ(дата)

Excel обрабатывает даты и время, используя схему, в которой даты — это серийные номера, а время — дробные значения. Например, 1 июня 2000 г. 12:00 PM представлено в Excel как число 36678,5, где 36678 — это дата, а 0,5 — время.

Извлечение даты с даты и времени

Если у вас есть даты со значениями времени, и вы хотите извлечь только часть даты, вы можете использовать формулу, которая использует функцию ЦЕЛОЕ. Итак, если A1 содержит дату и время, 1 июня 2000 г. 12:00, формула, приведенная ниже, возвращает только часть даты (36678):

= ЦЕЛОЕ(A1)

Временная часть значения (дробная часть) отбрасывается. Вы также можете использовать функцию ОТБР с тем же результатом:

= ОТБР (A1)

Заметки:

  1. При использовании любого из приведенных выше методов убедитесь, что вы используете формат даты для результата, который не включает время. В противном случае вы увидите время, отображаемое как 12:00 AM.
  2. Для дат и времени (которые должны быть положительными в Excel) нет разницы в использовании ЦЕЛОЕ и ОТБР для извлечения целого числа. Но ЦЕЛОЕ фактически округляет числа до ближайшего целого, что делает разницу, когда значения отрицательные.

Извлечение времени с даты и времени

= ОСТАТ(дата; 1)

Excel обрабатывает даты и время, используя схему, в которой даты — это серийные номера, а время — дробные значения. Например, 1 июня 2000 г. 12:00 PM представлено в Excel как число 36678,5, где 36678 — это дата, а .5 — время.

Извлечение времени с даты и времени

Если у вас есть даты со значениями времени, и вы хотите извлечь только часть времени (дробную часть), вы можете использовать формулу, которая использует функцию ОСТАТ. Если предположить, что A1 содержит дату и время 1 июня 2000 г. 12:00, формула, приведенная ниже, вернет только часть времени (0,5):

= ОСТАТ(A1;1)

Функция ОСТАТ возвращает остаток от деления. Первый аргумент — это число, а второй — делитель. Вот несколько примеров:

= ОСТАТ(5;2) // возвращает 1

= ОСТАТ(7;5) // возвращает 2

Таким образом, если вы используете ОСТАТ с делителем 1, результат будет дробной частью числа, если таковой имеется, потому что каждое целое число может быть равномерно разделено само по себе. Например:

= ОСТАТ(3.125;1) // возвращает 0.125

Короче говоря, = ОСТАТ(число, 1) возвращает только дробную часть числа, отбрасывая целую часть, поэтому это удобный способ извлечь время из даты и времени.

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

Получить возраст от дня рождения

= ЦЕЛОЕ(ДОЛЯГОДА (дата рождения; СЕГОДНЯ ()))

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

Получить возраст от дня рождения

В этом примере активная ячейка содержит эту формулу:

= ЦЕЛОЕ(ДОЛЯГОДА(D3; СЕГОДНЯ()))

ДОЛЯГОДА вычисляет десятичное число, представляющее долю года между двумя датами. Чтобы определить долю года в десятичном значении, Excel использует целые дни между двумя датами. Это просто в Excel, потому что все даты — это просто серийные номера.

Таким образом, в этом случае дата рождения предоставляется в качестве даты начала из ячейки D4, а сегодняшняя дата предоставляется в качестве конечной даты, с любезного разрешения функции СЕГОДНЯ.

Результатом ДОЛЯГОДА для Майкла Чанга, здесь в феврале 2016 года, является что-то вроде этого:

14.7333333333333

Затем функция ЦЕЛОЕ берет на себя и округляет это число до целочисленного значения, которое является числом 14. Хотя Майклу почти 15 лет, ему все еще только 14 по годам, так что это правильный результат.

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

Чтобы проверить день рождения и вернуть «Несовершеннолетний» или «Взрослый», вы можете обернуть формулу возраста в функции ЕСЛИ следующим образом:

= ЕСЛИ(ЦЕЛОЕ(ДОЛЯГОДА(A1; СЕГОДНЯ())) <18; «Несовершеннолетний»; «Взрослый»)

Вы можете заменить 18 любым возрастом, имеющим смысл для вашей ситуации.

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

= ЦЕЛОЕ(ДОЛЯГОДА(A1; ДАТА (2016;1;1)))

Где A1 содержит дату рождения.

Получайте дни, часы и минуты между датами

= ЦЕЛОЕ(конец-начало) & «дни» & ТЕКСТ(конец-начало; «ч» «часы» «м» «мин-ы» «»)

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

Получайте дни, часы и минуты между датами

В показанном примере формула в D5:

= ЦЕЛОЕ(C5-B5) &»дни»&ТЕКСТ(C5-B5; «ч» «часы» «м» «мин-ы» «»)

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

ТЕКСТ (C5-B5; «ч» «часы» «м» «мин-ы» «»)

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

Значение для дней вычисляется с помощью функции ЦЕЛОЕ, которая просто удаляет целую часть конечной даты минус дата начала:

ЦЕЛОЕ(C5-B5)

Хотя вы можете использовать «д» в настраиваемом числовом формате в течение нескольких дней, значение «перевернется» обратно к нулю, когда число дней больше 31.

Чтобы включить секунды, вы можете расширить формат пользовательских чисел следующим образом:

= ЦЕЛОЕ(C5-B5) & «дни» & ТЕКСТ(C5-B5; «ч» «часы» «м» «мин-ы» «с» «сек-ы» «»))

Получить финансовый квартал с даты

= ВЫБОР(МЕСЯЦ (дата); 1;1;1;2;2;2;3;3;3;4;4;4)

Если вы хотите рассчитать финансовый квартал от даты, а финансовый квартал начинается в месяце, отличном от января, вы можете использовать формулу, основанную на функции ВЫБОР.

Получить финансовый квартал с даты

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

В показанном примере формула в ячейке D5:

= ВЫБОР(МЕСЯЦ (B5); 4;4;4;1;1;1;2;2;2;3;3;3)

Эта формула возвращает число 1-4, которое соответствует четвертичной системе, которая начинается в апреле и заканчивается в марте.

Функция выбора использует первый аргумент для «выбора» оставшихся элементов. Например, в схеме, где 1 = маленький, 2 = средний и 3 = большой, эта формула «отобразит» число 2 на «среднее».

= ВЫБОР (2; «маленький»; «средний»; «большой»)

В случае фискальных кварталов мы можем использовать эту же идею для сопоставления любого входящего месяца (1-12) с одним из 4 квартальных значений. Нам просто нужно использовать функцию МЕСЯЦ, чтобы получить номер месяца в качестве первого аргумента, а затем предоставить 12 номеров (по одному на каждый месяц года), которые тщательно упорядочены, чтобы отразить желаемый финансовый год:

= ВЫБОР(МЕСЯЦ (B5); 1;1;1;2;2;2;3;3;3;4;4;4) // Начало январь

= ВЫБОР(МЕСЯЦ (B5); 4;4;4;1;1;1;2;2;2;3;3;3) // Начало апрель

= ВЫБОР (МЕСЯЦ (B5); 3;3;3;4;4;4;1;1;1;2;2;2) // Начало июль

Если вы хотите, чтобы номер квартала включал «К» со значением года, вы можете объединить его:

= «К» & ВЫБОР(МЕСЯЦ (дата); 1;1;1;2;2;2;3;3;3;4;4;4) & «-» & ГОД(дата)

Возвращает значения типа: «К1 — 2016», «К2 — 2016» и т. д.

Получить процент завершения года

= ДОЛЯГОДА(ДАТА (ГОД (дата); 1;1); дата)

Если вам необходимо вычислить процент, оставшийся в году, на основе данной даты, вы делаете это с помощью формулы, основанной на функции ДОЛЯГОДА.

Получить процент завершения года

В примере формула в C5, которая вычисляет процент оставшегося года, выглядит так:

= ДОЛЯГОДА(ДАТА(ГОД(B5); 1;1); B5)

Функция ДОЛЯГОДА принимает две даты, дату начала и дату окончания и вычисляет время между ними в дробных годах. В этом случае мы используем конечную дату как есть, но генерируем начальную дату, равную первому дню того же года, с этим битом кода:

ДАТА (ГОД (B5); 1;1)

Это извлекает значение года из даты в B5 и вставляет его в функцию ДАТА, а также 1 для месяца и дня.

В результате функция ДОЛЯГОДА возвращает десятичное значение, соответствующее доле года между двумя датами.

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

Чтобы вычислить процент оставшегося года, просто скорректируйте формулу, чтобы вычесть дробный год из 1. В примере D5 содержит эту формулу:

= 1-ДОЛЯГОДА(ДАТА(ГОД(B5); 1;1); B5)

Получить квартал от даты

= ОКРУГЛВВЕРХ (МЕСЯЦ (дата) / 3;0)

Если вы хотите рассчитать квартал (то есть 1,2,3,4) от даты, вы можете использовать функцию ОКРУГЛВВЕРХ вместе с МЕСЯЦ.

Получить квартал от даты

В показанном примере формула в ячейке C5:

= ОКРУГЛВВЕРХ(МЕСЯЦ (B5) / 3;0)

В этом случае формула сначала извлекает месяц как число от 1 до 12, а затем делит это число на 3. Затем результат округляется до ближайшего целого числа с помощью функции ОКРУГЛВВЕРХ.

Функция ОКРУГЛВВЕРХ работает так же, как функция ОКРУГЛ, за исключением того, что ОКРУГЛВВЕРХ всегда округляет цифры от 1 до 9 до заданного количества цифр.

Если вы хотите, чтобы номер четверти включал «Ч», вы можете конкатенировать. Формула в D5:

= «Ч» & ОКРУГЛВВЕРХ(МЕСЯЦ (B5) / 3;0)

Результатом является буква «Ч», добавленная к номеру квартала.

Получить ту же дату в следующем месяце

= ДАТАМЕС(дата; 1)

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

Получить ту же дату в следующем месяце

В показанном примере формула в ячейке B5:

=ДАТАМЕС (B5;1)

ДАТАМЕС может получить «ту же дату» в будущем или в прошлом, исходя из количества предоставленных месяцев. Когда 1 дается месяцами, ДАТАМЕС получает ту же дату в следующем месяце.

Чтобы получить ту же дату за предыдущий месяц, используйте -1:

= ДАТАМЕС(дата; -1) // предыдущий месяц

Получить ту же дату в следующем году

=ДАТАМЕС (дата; 12)

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

Получить ту же дату в следующем году

В показанном примере формула в ячейке B5:

= ДАТАМЕС(B5;12)

ДАТАМЕС может получить «ту же дату» в будущем или в прошлом, исходя из количества предоставленных месяцев. Когда 12 дается на месяцы, ДАТАМЕС получает ту же дату в следующем году.

Чтобы получить ту же дату за предыдущий месяц, используйте -12:

= ДАТАМЕС(дата; -12) // предыдущий год

Получить дату начала в соответствии с установленной датой

= РАБДЕНЬ(цель; дни; праздники)

Чтобы рассчитать требуемую дату начала в соответствии с установленной датой запуска / запуска / завершения, за исключением нерабочих дней, таких как выходные и праздничные дни, вы можете использовать функцию РАБДЕНЬ.

Получить дату начала в соответствии с установленной датой

В показанном примере формула в D6:

= РАБДЕНЬ(B6; C6; B9: B11)

Начиная с даты окончания Пт, 06-Янв-2015, функция РАБДЕНЬ отсчитывает назад 10 рабочих дней (исключая выходные и праздничные дни) и возвращает Вт, 18-дек-2014. Это необходимая дата начала активности, для которой требуется 10 рабочих дней.

Функция РАБДЕНЬ принимает три аргумента: дата начала, дни и (необязательно) праздники. Затем он добавляет дни к дате, автоматически исключая выходные и праздничные дни (если они предусмотрены).

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

При отрицательном значении дня РАБДЕНЬ вычитает дни с даты начала, принимая во внимание выходные и праздничные дни.

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

Если в вашем расписании пользовательские выходные дни (то есть что-то отличается от субботы и воскресенья), используйте функцию РАБДЕНЬ.МЕЖД вместо РАБДЕНЬ.

Получить номер недели с даты

= НОМНЕДЕЛИ (дата)

Если вам необходимо получить номер недели со дня с даты, вы можете использовать функцию НОМНЕДЕЛИ. Дата должна быть в формате, который Excel распознает как действительную дату.

Получить номер недели с даты

Функция НОМНЕДЕЛИ принимает два аргумента, дату и, необязательно, аргумент с именем Тип возвращаемого значения, который управляет схемой, используемой для вычисления номера недели.

В этом примере формула:

= НОМНЕДЕЛИ (B5)

B4 содержит значение даты для 5 января 2016 года. Функция ДЕНЬ возвращает число 2, представляющее число вычисляемой недели.

Обратите внимание, что по умолчанию функция НОМНЕДЕЛИ использует схему, где неделя 1 начинается 1 января, а неделя 2 начинается в следующее воскресенье (когда аргумент Тип возвращаемого значения опущен или поставлен как 1).

При значении Тип возвращаемого значения 2 неделя 1 начинается 1 января, а неделя 2 начинается в следующий понедельник.

С номерами недель в неделю неделя 1 начинается в понедельник первой недели в году с четверга. Это означает, что первый день года для недель ISO — это всегда понедельник в период с 29 января по 4 января.

Начиная с Excel 2010 для Windows и Excel 2011 для Mac, вы можете сгенерировать номер недели ISO, используя 21 как Тип возвращаемого значения:

= НОМНЕДЕЛИ(дата; 21)

В Excel 2013 появилась новая функция НОМНЕДЕЛИ.ISO.

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


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

В следующих примерах показано, как на практике выполнять автозаполнение дат в Excel.

Пример 1: дни автозаполнения в Excel

Чтобы автоматически заполнить список дней в Excel, просто введите одну дату для начала:

Затем наведите указатель мыши на правый нижний угол ячейки, пока не появится крошечный « + ».

Затем щелкните и перетащите вниз на любое количество ячеек в одном столбце:

Результатом является список последовательных дней.

Пример 2: Недели автозаполнения в Excel

Чтобы автоматически заполнить список недель в Excel, просто введите две даты с разницей ровно в одну неделю:

Выделите ячейки A2 и A3.Затем наведите указатель мыши на правый нижний угол ячейки A3 , пока не появится крошечный « + ».

Затем щелкните и перетащите вниз на любое количество ячеек в одном столбце:

Результатом является список последовательных недель.

Пример 3: Автозаполнение месяцев в Excel

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

Выделите ячейки A2 и A3.Затем наведите указатель мыши на правый нижний угол ячейки A3 , пока не появится крошечный « + ».

Затем щелкните и перетащите вниз на любое количество ячеек в одном столбце:

Результатом является список последовательных месяцев.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции с датами в Excel:

Как использовать СЧЁТЕСЛИМН с диапазоном дат в Excel
Как рассчитать среднее значение между двумя датами в Excel
Как рассчитать разницу между двумя датами в 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.

Описание

Возвращает количество рабочих дней между датами «нач_дата» и «кон_дата». Праздники и выходные в это число не включаются. Функцию ЧИСТРАБДНИ можно использовать для вычисления заработной платы работника на основе количества дней, отработанных в указанный период.

Совет:  Чтобы вычислить количество полных рабочих дней между двумя датами с использованием параметров, определяющих количество выходных в неделе и то, какие это дни, используйте функцию ЧИСТРАБДНИ.МЕЖД.

Синтаксис

ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])

Аргументы функции ЧИСТРАБДНИ описаны ниже.

  • нач_дата    — обязательный аргумент. Начальная дата.

  • кон_дата    Обязательный. Конечная дата.

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

Важно:  Даты должны быть введены с использованием функции ДАТА или как результат вычисления других формул и функций. Например, для указания даты 23 мая 2012 г. воспользуйтесь выражением ДАТА(2012,5,23). Если ввести даты как текст, это может привести к возникновению проблем.

Замечания

  • В приложении Microsoft Excel даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию 1 января 1900 г. имеет порядковый номер 1, а 1 января 2012 г. — 40909, так как от 1 января 1900 г. он отс0 до 40 909 дней.

  • Если какой-либо из аргументов не является допустимой датой, networkDAYS возвращает #VALUE! значение ошибки #ЗНАЧ!.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Дата

Описание

01.10.2012

Дата начала проекта

01.03.2013

Дата окончания проекта

22.11.2012

Праздник

04.12.2012

Праздник

21.01.2012

Праздник

Формула

Описание

Результат

=ЧИСТРАБДНИ(A2;A3)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013).

110

=ЧИСТРАБДНИ(A2;A3;A4)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013) с вычетом праздничного дня 22.11.2012 как выходного.

109

=ЧИСТРАБДНИ(A2;A3;A4:A6)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013) с вычетом трех праздничных дней.

107

К началу страницы

Нужна дополнительная помощь?

Понравилась статья? Поделить с друзьями:
  • Списки данных в excel это процедура
  • Списки в тексте word бывают
  • Списки встроены в excel
  • Списки в среде excel
  • Списки види списків word