Оглавление
В учебнике показано, как можно использовать новую функцию SEQUENCE для быстрого создания списка дат в Excel и использовать функцию автозаполнения для заполнения столбца датами, рабочими днями, месяцами или годами.
До недавнего времени существовал только один простой способ создания дат в Excel - функция автозаполнения. С появлением новой функции динамического массива SEQUENCE появилась возможность создавать серии дат с помощью формулы. В этом учебнике подробно рассматриваются оба метода, чтобы вы могли выбрать наиболее подходящий для вас.
Как заполнить серию дат в Excel
Когда вам нужно заполнить столбец датами в Excel, самый быстрый способ - использовать функцию автозаполнения.
Автоматическое заполнение серии дат в Excel
Заполнить столбец или строку датами, которые увеличиваются на один день, очень просто:
- Введите начальную дату в первую ячейку.
- Выберите ячейку с начальной датой и перетащите ручку заливки (маленький зеленый квадрат в правом нижнем углу) вниз или вправо.
Excel немедленно создаст серию дат в том же формате, что и первая дата, которую вы ввели вручную.
Заполните столбец днями недели, месяцами или годами
Чтобы создать серию рабочих дней, месяцев или лет, выполните одно из следующих действий:
- Заполните столбец последовательными датами, как описано выше. После этого нажмите кнопку Параметры автозаполнения и выберите нужную опцию, например Месяцы наполнения :
- Или вы можете ввести первую дату, щелкнуть правой кнопкой мыши на ручке заливки, удерживать и перетаскивать через необходимое количество ячеек. Когда вы отпустите кнопку мыши, появится контекстное меню, позволяющее выбрать нужную опцию, Годы наполнения в нашем случае:
Заполнить серию дат с инкрементом в N дней
Для автоматической генерации серии дней, дней недели, месяцев или лет с помощью функции конкретный шаг Вот что вам нужно сделать:
- Введите начальную дату в первую ячейку.
- Выберите эту ячейку, щелкните правой кнопкой мыши ручку заливки, перетащите ее через необходимое количество ячеек, а затем отпустите.
- Во всплывающем меню выберите Серия (последний пункт).
- В Серия В диалоговом окне выберите Дата единица интерес и установить Значение шага .
- Нажмите OK.
Дополнительные примеры см. в разделе Как вставлять и автозаполнять даты в Excel.
Как сделать последовательность дат в Excel с помощью формулы
В одном из предыдущих уроков мы рассмотрели, как использовать новую функцию динамического массива SEQUENCE для создания последовательности чисел. Поскольку внутри Excel даты хранятся в виде порядковых номеров, функция может легко создавать и ряд дат. Все, что вам нужно сделать, это правильно настроить аргументы, как объясняется в следующих примерах.
Примечание. Все формулы, рассмотренные здесь, работают только в последних версиях Excel 365, поддерживающих динамические массивы. В додинамических Excel 2019, Excel 2016 и Excel 2013 используйте функцию автозаполнения, как показано в первой части этого руководства.
Создание серии дат в Excel
Чтобы создать последовательность дат в Excel, задайте следующие аргументы функции SEQUENCE:
SEQUENCE(rows, [columns], [start], [step])- Строки - количество строк для заполнения датами.
- Колонки - количество столбцов для заполнения датами.
- Начало - начальную дату в формате, понятном Excel, например, "8/1/2020" или "1-Aug-2020". Чтобы избежать ошибок, можно указать дату с помощью функции DATE, например, DATE(2020, 8, 1).
- Шаг - приращение для каждой последующей даты в последовательности.
Например, чтобы составить список из 10 дат, начинающихся с 1 августа 2020 года и увеличивающихся на 1 день, используется следующая формула:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(10, 1, "8/1/2020", 1)
или
= ПОСЛЕДОВАТЕЛЬНОСТЬ(10, 1, ДАТА(2020, 8, 1), 1)
В качестве альтернативы вы можете ввести количество дат (B1), дату начала (B2) и шаг (B3) в предопределенные ячейки и сослаться на эти ячейки в вашей формуле. Поскольку мы создаем список, номер столбца (1) является жестко заданным:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(B1, 1, B2, B3)
Введите приведенную ниже формулу в самую верхнюю ячейку (в нашем случае A6), нажмите клавишу Enter, и результаты автоматически распространятся на указанное количество строк и столбцов.
Примечание. По умолчанию Общий чтобы они отображались правильно, обязательно примените формат Дата ко всем ячейкам в диапазоне разлива.
Составьте серию рабочих дней в Excel
Чтобы получить серию только рабочих дней, оберните SEQUENCE в функцию WORKDAY или WORKDAY.INTL таким образом:
РАБОЧИЙ ДЕНЬ( дата начала -1, SEQUENCE( количество_дней ))Поскольку функция WORKDAY добавляет к начальной дате количество дней, указанное во втором аргументе, мы вычитаем из нее 1, чтобы в результаты была включена сама начальная дата.
Например, для создания последовательности рабочих дней, начинающихся с даты в B2, формула выглядит следующим образом:
= РАБОЧИЙ ДЕНЬ(B2-1, ПОСЛЕДОВАТЕЛЬНОСТЬ(B1))
Где B1 - размер последовательности.
Советы и примечания:
- Если дата начала приходится на субботу или воскресенье, серия начнется на следующий рабочий день.
- Функция Excel WORKDAY предполагает, что суббота и воскресенье являются выходными днями. Чтобы настроить пользовательские выходные и праздничные дни, используйте вместо этого функцию WORKDAY.INTL.
Создание последовательности месяцев в Excel
Чтобы создать серию дат, увеличенную на один месяц, можно использовать эту общую формулу:
ДАТА( год , ПОСЛЕДОВАТЕЛЬНОСТЬ(12), день )В данном случае вы помещаете целевой год в 1-й аргумент и день в 3-й аргумент. Для 2-го аргумента функция SEQUENCE возвращает последовательные числа от 1 до 12. На основе вышеуказанных параметров функция DATE создает серию дат, как показано в левой части скриншота ниже:
= ДАТА(2020, ПОСЛЕДОВАТЕЛЬНОСТЬ(12), 1)
Чтобы отобразить только названия месяцев установите один из перечисленных ниже пользовательских форматов даты для диапазона разлива:
- ммм - краткая форма типа Ян , Февраль , Мар , и т.д.
- мммм - полная форма как Январь , Февраль , Март , и т.д.
В результате в ячейках появятся только названия месяцев, но базовые значения по-прежнему будут полными датами. В обеих сериях на скриншоте ниже обратите внимание на правое выравнивание по умолчанию, характерное для чисел и дат в Excel:
Чтобы сгенерировать последовательность дат, увеличивающуюся на один месяц и начинается с определенной даты , используйте функцию SEQUENCE вместе с EDATE:
EDATE( дата начала , SEQUENCE(12, 1, 0))Функция EDATE возвращает дату, которая находится на указанное количество месяцев раньше или позже начальной даты. А функция SEQUENCE создает массив из 12 чисел (или столько, сколько вы укажете), чтобы заставить EDATE двигаться вперед с шагом в один месяц. Обратите внимание на то, что запустить аргумент установлен в 0, чтобы дата начала была включена в результаты.
С начальной датой в B1 формула принимает следующий вид:
=EDATE(B1, SEQUENCE(12, 1, 0))
Примечание. После заполнения формулы не забудьте применить соответствующий формат даты к результатам, чтобы они отображались правильно.
Создание последовательности лет в Excel
Чтобы создать серию дат, инкрементированных по годам, используйте эту общую формулу:
DATE(SEQUENCE( n , 1, ГОД( дата начала )), МЕСЯЦ( дата начала ), DAY( дата начала ))Где n это количество дат, которые вы хотите сгенерировать.
В этом случае функция DATE(год, месяц, день) строит дату таким образом:
- Год возвращается функцией SEQUENCE, которая настроена на создание n массив чисел из строк по 1 столбцу, начиная со значения года из дата начала .
- Месяц и день значения извлекаются непосредственно из начальной даты.
Например, если вы введете начальную дату в B1, следующая формула выведет серию из 10 дат с шагом в один год:
=DATE(SEQUENCE(10, 1, YEAR(B1)), MONTH(B1), DAY(B1))
После форматирования в виде дат результаты будут выглядеть следующим образом:
Создание временной последовательности в Excel
Поскольку время хранится в Excel в виде десятичных чисел, представляющих собой доли дня, функция SEQUENCE может работать с временем напрямую.
Предполагая, что время начала в B1, вы можете использовать одну из следующих формул для получения серии из 10 раз. Разница только в шаг Аргумент. Поскольку в сутках 24 часа, используйте 1/24 для увеличения на час, 1/48 для увеличения на 30 минут и так далее.
С интервалом в 30 минут:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(10, 1, B1, 1/48)
С разницей в 1 час:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(10, 1, B1, 1/24)
С разницей в 2 часа:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(10, 1, B1, 1/12)
На скриншоте ниже показаны результаты:
Если вы не хотите возиться с расчетом шага вручную, вы можете задать его с помощью функции ВРЕМЯ:
SEQUENCE(rows, columns, start, TIME( час , минута , второй ))Для этого примера мы введем все переменные в отдельные ячейки, как показано на скриншоте ниже. Затем вы можете использовать приведенную ниже формулу для создания временного ряда с любым заданным вами размером шага приращения в ячейках E2 (часы), E3 (минуты) и E4 (секунды):
= ПОСЛЕДОВАТЕЛЬНОСТЬ(B2, B3, B4, TIME(E2, E3, E4))
Как создать ежемесячный календарь в Excel
В этом последнем примере мы будем использовать функцию SEQUENCE вместе с DATEVALUE и WEEKDAY для создания ежемесячного календаря, который будет автоматически обновляться на основе указанного вами года и месяца.
Формула в A5 выглядит следующим образом:
=SEQUENCE(6, 7, DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1, 1)
Как работает эта формула:
Вы используете функцию SEQUENCE для создания массива дат в 6 строк (максимально возможное количество недель в месяце) на 7 столбцов (количество дней в неделе) с увеличением на 1 день. Следовательно, функция строки , колонки и шаг аргументы не вызывают вопросов.
Самая сложная часть в запустить Аргумент. Мы не можем начать наш календарь с 1-го дня целевого месяца, потому что не знаем, какой это день недели. Поэтому мы используем следующую формулу, чтобы найти первое воскресенье перед 1-м днем указанного месяца и года:
DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1
Первая функция DATEVALUE возвращает порядковый номер, который во внутренней системе Excel представляет собой 1-й день месяца в B2 и год в B1. В нашем случае это 44044, соответствующий 1 августа 2020 г. На данный момент мы имеем:
44044 - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1
Функция WEEKDAY возвращает день недели, соответствующий 1-му дню целевого месяца, в виде числа от 1 (воскресенье) до 7 (суббота). В нашем случае это 7, потому что 1 августа 2020 года - суббота. И наша формула сводится к:
44044 - 7 + 1
44044 - 7 - это 4403, что соответствует субботе, 25 июля 2020 г. Поскольку нам нужно воскресенье, добавляем поправку +1.
Таким образом, мы получаем простую формулу, которая выводит массив серийных номеров, начинающихся с 4404:
= ПОСЛЕДОВАТЕЛЬНОСТЬ(6, 7, 4404, 1)
Отформатируйте результаты как даты, и вы получите календарь, показанный на скриншоте выше. Например, вы можете использовать один из следующих форматов дат:
- d-mmm-yy для отображения дат, например 1-авг-20
- ммм д для отображения месяца и дня, например 20 августа
- d для отображения только дня
Подождите, но мы же хотим создать месячный календарь. Почему отображаются некоторые даты предыдущего и следующего месяца? Чтобы скрыть эти неактуальные даты, настройте правило условного форматирования с помощью приведенной ниже формулы и примените к ней формулу белый шрифт цвет:
=MONTH(A5)MONTH(DATEVALUE($B$2 & "1"))
Где A5 - крайняя левая ячейка вашего календаря, а B2 - целевой месяц.
Подробные шаги см. в статье Как создать правило условного форматирования на основе формулы в Excel.
Вот как можно создать последовательность дат в Excel. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Рабочая тетрадь для тренировок для скачивания
Последовательность дат в Excel - примеры формул (файл.xlsx)