Excel все даты за период

Создание списка последовательных дат

Вы можете быстро создать список дат в последовательном порядке с помощью маркера заполнения Маркер заполнения или команды Заполнить.

Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Использование маркера заполнения

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

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

  3. Создание списка последовательных дат с помощью маркера заполнения

Использование команды «Заполнить»

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

  2. Выберите Заполнить > Прогрессия > Единицы. Выберите нужную единицу.

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

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

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

См. также

Автоматическое заполнение ячеек листа данными

Использование функций автозаполнения и мгновенного заполнения

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

Для работы с датами в 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. Поэтому формула считает, что неделя начинается с понедельника (второй день недели).

Скачать примеры функций для работы с датами

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

Содержание

  • Расчет количества дней
    • Способ 1: простое вычисление
    • Способ 2: функция РАЗНДАТ
    • Способ 3: вычисление количеств рабочих дней
  • Вопросы и ответы

Разность дат в Microsoft Excel

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

Расчет количества дней

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

  1. Выделяем пространство листа, на котором вы планируете производить вычисления. Кликаем правой кнопкой мыши по выделению. Активируется контекстное меню. В нём выбираем пункт «Формат ячейки…». Как вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+1.
  2. Переход в формат ячеек в Microsoft Excel

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

Форматирование как дата в Microsoft Excel

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

Способ 1: простое вычисление

Проще всего вычислить разность дней между датами с помощью обычной формулы.

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

  3. Выделяем ячейку, в которой будет выводиться результат. В ней должен быть установлен общий формат. Последнее условие очень важно, так как, если в этой ячейке стоит формат даты, то в таком случае и результат будет иметь вид «дд.мм.гг» или другой, соответствующий данному формату, что является некорректным итогом расчетов. Текущий формат ячейки или диапазона можно просмотреть, выделив его во вкладке «Главная». В блоке инструментов «Число» находится поле, в котором отображается данный показатель.
    Указание формата в Microsoft Excel

    Если в нем стоит значение, отличное от «Общий», то в таком случае, как и в предыдущий раз, с помощью контекстного меню запускаем окно форматирования. В нем во вкладке «Число» устанавливаем вид формата «Общий». Жмем на кнопку «OK».

  4. Установка общего формата в Microsoft Excel

  5. В отформатированную под общий формат ячейку ставим знак «=». Кликаем по ячейке, в которой расположена более поздняя из двух дат (конечная). Далее жмем на клавиатуре знак «-». После этого выделяем ячейку, в которой содержится более ранняя дата (начальная).
  6. Вычисление разности дат в Microsoft Excel

  7. Чтобы увидеть, сколько времени прошло между этими датами, жмем на кнопку Enter. Результат отобразится в ячейке, которая отформатирована под общий формат.

Результат вычисления разности дат в Microsoft Excel

Способ 2: функция РАЗНДАТ

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

=РАЗНДАТ(начальная_дата;конечная_дата;единица)

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

Lumpics.ru

  • «y» — полные года;
  • «m» — полные месяцы;
  • «d» — дни;
  • «YM» — разница в месяцах;
  • «MD» — разница в днях (месяцы и годы не учитываются);
  • «YD» — разница в днях (годы не учитываются).

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

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

  1. Записываем формулу в выбранную ячейку, согласно её синтаксису, описанному выше, и первичным данным в виде начальной и конечной даты.
  2. Функция РАЗНДАТ в Microsoft Excel

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

Результат функции РАЗНДАТ в Microsoft Excel

Способ 3: вычисление количеств рабочих дней

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

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

В этой функции основные аргументы, такие же, как и у оператора РАЗНДАТ – начальная и конечная дата. Кроме того, имеется необязательный аргумент «Праздники».

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

  1. Выделяем ячейку, в которой будет находиться итог вычисления. Кликаем по кнопке «Вставить функцию».
  2. Переход в Мастер функций в Microsoft Excel

  3. Открывается Мастер функций. В категории «Полный алфавитный перечень» или «Дата и время» ищем элемент «ЧИСТРАБДНИ». Выделяем его и жмем на кнопку «OK».
  4. Переход к аргументам функции ЧИСТОРАБДНИ в Microsoft Excel

  5. Открывается окно аргументов функции. Вводим в соответствующие поля дату начала и конца периода, а также даты праздничных дней, если таковые имеются. Жмем на кнопку «OK».

Аргументы функции ЧИСТОРАБДНИ в Microsoft Excel

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

Результат функции ЧИСТОРАБДНИ в Microsoft Excel

Урок: Мастер функций в Excel

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

Хитрости »

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


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

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

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


Представим ситуацию, что у нас есть таблица следующего вида:
Исходная таблица
В ней перечислены клиенты, которые подписались на наш продукт(условно клиент А и клиент В). В качестве дат указаны дата начала подписки и дата окончания. И нам необходимо построить что-то вроде диаграммы Ганта, на которой будет видно в хронологическом порядке активность клиентов
Результат - Диаграмма Ганта по каждому клиенту
Т.е. по сути нам нужно создать даты из двух таким образом, чтобы на каждый день подписки была одна дата. Например, для клиента «А» с подпиской на журнал «За рулем» у нас должно получиться 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, 405 скачиваний)

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


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

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


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



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

Видео

Как обычно, кому надо быстро — смотрим видео. Подробности и нюансы — в тексте ниже:

Как вводить даты и время в Excel

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

   «Классическая» форма

  3.10.2006

   Сокращенная форма

3.10.06

   С использованием дефисов

3-10-6

   С использованием дроби

   3/10/6

Внешний вид (отображение) даты в ячейке может быть очень разным (с годом или без, месяц числом или словом и т.д.) и задается через контекстное меню — правой кнопкой мыши по ячейке и далее Формат ячеек (Format Cells):

date1.png

Время вводится в ячейки с использованием двоеточия. Например

16:45

По желанию можно дополнительно уточнить количество секунд — вводя их также через двоеточие:

16:45:30

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

27.10.2012 16:45

Быстрый ввод дат и времени

Для ввода сегодняшней даты в текущую ячейку можно воспользоваться сочетанием клавиш Ctrl + Ж (или CTRL+SHIFT+4 если у вас другой системный язык по умолчанию).

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

date2.png

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

datepicker.jpg

Если нужно, чтобы в ячейке всегда была актуальная сегодняшняя дата — лучше воспользоваться функцией СЕГОДНЯ (TODAY):

date3.png

Как Excel на самом деле хранит и обрабатывает даты и время

Если выделить ячейку с датой и установить для нее Общий формат (правой кнопкой по ячейке Формат ячеек — вкладка ЧислоОбщий), то можно увидеть интересную картинку:

date4.png

То есть, с точки зрения Excel, 27.10.2012 15:42 = 41209,65417

На самом деле любую дату Excel хранит и обрабатывает именно так — как число с целой и дробной частью. Целая часть числа (41209) — это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0)

Из всех этих фактов следуют два чисто практических вывода:

  • Во-первых, Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года. Но это мы переживем!  ;)
  • Во-вторых, с датами и временем в Excel возможно выполнять любые математические операции. Именно потому, что на самом деле они — числа! А вот это уже раскрывает перед пользователем массу возможностей.

Количество дней между двумя датами

Считается простым вычитанием — из конечной даты вычитаем начальную и переводим результат в Общий (General) числовой формат, чтобы показать разницу в днях:

date5.png

Количество рабочих дней между двумя датами

Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (государственных праздников, больничных дней, отпусков, отгулов и т.д.):

date6.png

Примечание: Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более древних версиях сначала необходимо подключить надстройку Пакета анализа. Для этого идем в меню Сервис — Надстройки (Tools — Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak). После этого в Мастере функций в категории Дата и время появится необходимая нам функция ЧИСТРАБДНИ (NETWORKDAYS).

Количество полных лет, месяцев и дней между датами. Возраст в годах. Стаж.

Про то, как это правильно вычислять, лучше почитать тут.

Сдвиг даты на заданное количество дней

Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.

Сдвиг даты на заданное количество рабочих дней

Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY). Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ (NETWORKDAYS) описанной выше.

Вычисление дня недели

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время.

date7.png

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

Вычисление временных интервалов

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55:

date8.png

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

  • Как вычислять возраст (стаж) в полных годах-месяцах-днях
  • Как сделать выпадающий календарь для быстрого ввода любой даты в любую ячейку.
  • Автоматическое добавление текущей даты в ячейку при вводе данных.
  • Как вычислить дату второго воскресенья февраля 2007 года и т.п.

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

Список всех дат между двумя датами по формулам

Перечислить все даты между двумя датами по VBA

Перечислите все даты между двумя датами по Kutools for Excel хорошая идея3


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

1. Введите даты начала и окончания в две ячейки, здесь я ввожу их в ячейки A1 и A2. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-1

2. Затем перейдите в ячейку C1 и введите эту формулу. = A1 + 1 в него, затем нажмите Enter ключ. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-2

3. Затем в ячейке C2 введите эту формулу =IF($A$1+ROW(A1)>=$A$2-1,»»,C1+1) в него, затем перетащите дескриптор автозаполнения вниз к ячейкам, пока не появится пустая ячейка. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-3       документ-список-все-даты-между-двумя-датами-4

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

Примечание:

В приведенных выше формулах A1 — это дата начала, A2 — дата окончания, а C1 — первая дата в диапазоне дат.


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

1. Введите дату начала и дату окончания в две ячейки, здесь я ввожу ячейки A1 и B1. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-6

2. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.

3. Затем нажмите Вставить > Модули и скопируйте и вставьте ниже кода VBA во всплывающий Модули окно.

VBA: перечислить все даты между двумя датами.

Sub WriteDates()
	'Updateby20150305
	Dim rng As Range
	Dim StartRng As Range
	Dim EndRng As Range
	Dim OutRng As Range
	Dim StartValue As Variant
	Dim EndValue As Variant
	xTitleId     = "KutoolsforExcel"
	Set StartRng = Application.Selection
	Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type: = 8)
	Set EndRng   = Application.InputBox("End Range (single cell):", xTitleId, Type: = 8)
	Set OutRng   = Application.InputBox("Out put to (single cell):", xTitleId, Type: = 8)
	Set OutRng   = OutRng.Range("A1")
	StartValue   = StartRng.Range("A1").Value
	EndValue     = EndRng.Range("A1").Value
	If EndValue - StartValue <= 0 Then
		Exit Sub
		End If
		ColIndex = 0
		For i = StartValue To EndValue
			OutRng.Offset(ColIndex, 0) = i
			ColIndex = ColIndex + 1
		Next
	End Sub

4. Нажмите Run or F5 для запуска VBA, и появится диалоговое окно, в котором вы можете выбрать дату начала, затем нажмите OK, затем выберите дату окончания во втором диалоговом окне. Смотрите скриншот:

документ-список-все-даты-между-двумя-датами-7          документ-список-все-даты-между-двумя-датами-8

5. Нажмите OK, затем выберите ячейку для отображения дат и нажмите OK. Теперь вы можете видеть, что перечислены все даты между двумя датами. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-9         документ-список-все-даты-между-двумя-датами-10

Внимание: Список, созданный этим VBA, включает дату начала и дату окончания.


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

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

1. Выберите столбец, в котором должны быть указаны даты между двумя датами, и щелкните Кутулс > Вставить > Вставить случайные данные. Смотрите скриншот:
документ вставить случайные данные 1

2. Затем в Вставить случайные данные диалоговое окно, нажмите Время вкладка, затем выберите начальную и конечную даты из от и To список, затем не забудьте проверить Рабочий день, Выходные и Уникальные ценности флажки. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-12

3. Нажмите Ok чтобы закрыть диалог, а другой Kutools for Excel появляется диалоговое окно, просто нажмите Да. Затем вы можете увидеть даты между датой начала и датой окончания. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-13           документ-список-все-даты-между-двумя-датами-14

4. Теперь вам нужно отсортировать список дат в нужном вам порядке. Нажмите Данные > Сортировать от старых к новым. Затем вы можете увидеть, что даты отсортированы от самой старой к самой новой. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-15          документ-список-все-даты-между-двумя-датами-16

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


Относительные статьи:

  • Создать динамический список имен рабочих листов


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Download PC Repair Tool to quickly find & fix Windows errors automatically

Imagine a situation in which you need to create a date-wise table. For example, you are creating a schedule where you need to mention a date-wise list of activities. In such a case, you would need a list of dates. Obviously, no list is unlimited, so your list would have a starting and ending date.

For such cases, you could use the method explained in this article to obtain the list of dates between two dates as a list in a column. You have two ways of proceeding:

  1. Create a list of sequential dates in Excel using the Fill handle
  2. Obtain a list of all dates between two given dates in Excel using formula.

1] Create a list of sequential dates in Excel using the Fill handle

Create a list of sequential dates in Excel using the Fill handle

Microsoft Excel has a Fill handle, which makes it easy to create a list of sequential dates. While it doesn’t exactly help with dates between two given dates, using this option is much easier than using the formula.

Simply Enter the date in say cell A1 and click anywhere outside the cell. Then click on the cell again to activate the Fill handle.

Pull the Fill handle down to create a list of sequential dates in Excel.

Obtain a list of all dates between two given dates in Excel using formula

The formula to obtain a list of all dates between two given dates in Excel is a little complicated. We will explain it using an example:

Let us suppose the starting date is mentioned in cell A1, and the ending date is mentioned in cell A2. You need to obtain the list in column C. The procedure for finding the list of dates would be as follows:

First, enter the formula and press Enter:

=A1+1 in cell C1

It will display the date next to the starting date in cell C1.

List all dates between two dates in Excel

Now, type the following date in cell C2:

=IF($A$1+ROW(A1)>=$A$2-1,"",C1+1)

Enter the formula in C1

Click anywhere outside cell C2 and then back on C2 to highlight the option to pull the formula down. Pull the formula down till you start getting blank results on the cells. Hit Enter to display the results.

End result

The problem with this formula is that it would be hard to define the syntax or modify it. Furthermore, the dates aren’t exactly in order. The first and last dates remain in cells A1 and A2. The dates in column C are the ones between these dates.

The resolution to this problem could involve a bit of dragging, cutting, and pasting.

Hope this helps.

Ezoic

Karan is a B.Tech, with several years of experience as an IT Analyst. He is a passionate Windows user who loves troubleshooting problems and writing about Microsoft technologies.

Выборка из списка дат и событий за период

forall

Дата: Вторник, 28.02.2017, 20:19 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Доброго времени!
Подскажите пожалуйста как сделать формулами выборку из списка дат и соответствующих событий за период в X дней (допустим 10 дней).
В примере — над чтобы в желтом поле отображались события и соответствующие даты из таблицы слева только за период в десять дней до заданной даты (синяя ячейка).

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

К сообщению приложен файл:

333.xlsx
(10.2 Kb)

Сообщение отредактировал forallВторник, 28.02.2017, 20:24

 

Ответить

Karataev

Дата: Вторник, 28.02.2017, 20:30 |
Сообщение № 2

Группа: Проверенные

Ранг: Старожил

Сообщений: 1330


Репутация:

528

±

Замечаний:
0% ±


Excel

Решение с использование допстолбца «I» и формулы массива:

Код

=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(($J$1-$B$2:$B$13)<=10;СТРОКА($B$2:$B$13);»»);СТРОКА(XFD1));»»)

Завершайте ввод формулы не клавишей Enter, а сочетанием клавиш Ctrl+Shift+Enter.
И обычные формулы в столбцах G:H.

К сообщению приложен файл:

1703705.xlsx
(11.8 Kb)


Киви-кошелек: 9166309108

 

Ответить

bmv98rus

Дата: Вторник, 28.02.2017, 20:37 |
Сообщение № 3

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

All in one. для не последовательных событий

но я б через MSQuery сделал бы


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Nic70y

Дата: Вторник, 28.02.2017, 20:41 |
Сообщение № 4

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

Код

=ЕСЛИОШИБКА(ИНДЕКС(A$1:A$13;СУММПРОИЗВ(НАИМЕНЬШИЙ((H2=B$2:B$13)*СТРОКА(B$2:B$13);СЧЁТЕСЛИ(H$2:H2;H2)+СЧЁТЕСЛИ(B$2:B$13;»<>»&H2))));»»)

Код

=ЕСЛИОШИБКА(НАИБОЛЬШИЙ(B$2:B$13;СЧЁТЕСЛИ(B$2:B$13;»>=»&J$1-10)-СЧЁТЕСЛИ(B$2:B$13;»>»&J$1)-СТРОКА(H1)+1);»»)

К сообщению приложен файл:

5098584.xlsx
(11.6 Kb)


ЮMoney 41001841029809

 

Ответить

forall

Дата: Вторник, 28.02.2017, 20:48 |
Сообщение № 5

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Nic70y, работает только от текущей даты (сегодняшней), если поставить прошлую дату не то выдает..

 

Ответить

bmv98rus

Дата: Вторник, 28.02.2017, 20:58 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

forall,
Зачем вы Today() запихнули, реально это меня сбило. Через MS Query тоже сделал. Обиделся, посмотреть не дам :-)


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

forall

Дата: Вторник, 28.02.2017, 21:00 |
Сообщение № 7

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Спасибо всем! Лучше всего подходит вариант с доп. столбцом.

 

Ответить

HoBU4OK

Дата: Вторник, 28.02.2017, 21:04 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 307


Репутация:

14

±

Замечаний:
0% ±


Excel 2010

[offtop] bmv98rus, …шах и мат… :) [/offtop]


Я думал, ты остроглазый лев, а ты слепая собака :-)

 

Ответить

Nic70y

Дата: Вторник, 28.02.2017, 21:05 |
Сообщение № 9

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

да, ошибся малость

Код

=ЕСЛИ(СТРОКА(H1)>СЧЁТЕСЛИ(B$2:B$13;»>=»&J$1-10)-СЧЁТЕСЛИ(B$2:B$13;»>»&J$1);»»;НАИБОЛЬШИЙ(B$2:B$13;СЧЁТЕСЛИ(B$2:B$13;»>=»&J$1-10)-СТРОКА(H1)+1))

К сообщению приложен файл:

6072759.xlsx
(11.6 Kb)


ЮMoney 41001841029809

 

Ответить

forall

Дата: Вторник, 28.02.2017, 21:06 |
Сообщение № 10

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

bmv98rus, ).. даж не знаю что это, msquery — О_о..

 

Ответить

forall

Дата: Вторник, 28.02.2017, 21:10 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Nic70y, specool

 

Ответить

bmv98rus

Дата: Вторник, 28.02.2017, 21:49 |
Сообщение № 12

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

MS Query — один из полезнейших инструментов.

К сообщению приложен файл:

0248543.xlsx
(12.4 Kb)


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

forall

Дата: Вторник, 28.02.2017, 22:57 |
Сообщение № 13

Группа: Пользователи

Ранг: Участник

Сообщений: 66


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

сводная таблица?

 

Ответить

bmv98rus

Дата: Вторник, 28.02.2017, 23:34 |
Сообщение № 14

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

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


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Excel все данные пропали
  • Excel все данные попали в таблицу
  • Excel все данные по условию
  • Excel все данные в одну колонку
  • Excel все границы толстые