Если при протягивании маркера автозаполнения вниз Excel вместо последовательности "понедельник, вторник..." выдает числа или повторяет один и тот же день, проблема в формате ячейки. По умолчанию программа воспринимает текстовые дни недели как пользовательский формат даты, а не как независимые строки. Чтобы протянуть дни по вертикали корректно, нужно либо предварительно отформатировать ячейки как текст, либо использовать специальные приемы — от ручного ввода с маркером до автоматизации через Power Query.
В 90% случаев ошибка возникает из-за того, что пользователь начинает протягивать с ячейки, где день недели записан как результат формулы (например, =ТЕКСТ(A1;"dddd")) или как дата в формате "dddd". В этом случае Excel продолжает серию дат, а не текстовую последовательность. Решение зависит от задачи: нужны ли дни как статический список или как динамические значения, привязанные к конкретной дате.
Способ 1: Ручной ввод с маркером автозаполнения
Самый простой метод — ввести первые два дня недели в соседние ячейки, а затем протянуть маркер автозаполнения. Ключевое условие: ячейки должны быть отформатированы как текст до начала работы.
- 📌 Выделите ячейку
A1, введитепонедельники нажмитеEnter. - 📌 В ячейку
A2введитевторник(обязательно с маленькой буквы, если хотите единообразие). - 📌 Выделите обе ячейки, наведите курсор на правый нижний угол выделения (появится черный крестик) и протяните вниз.
- 📌 Если вместо дней появляются даты, нажмите на значок автозаполнения (маленький квадратик справа) и выберите
Копировать ячейки.
Этот метод работает и для сокращенных названий ("пн", "вт"), но важно следить за регистром. Если в первой ячейке напишете "Понедельник" с заглавной, а во второй — "вторник" с маленькой, Excel не распознает последовательность.
Способ 2: Формулы для динамического списка
Если дни недели должны автоматически обновляться в зависимости от текущей даты или заданного числа, используйте формулы. Например, чтобы получить список дней, начиная с сегодняшнего:
=ТЕКСТ(ДАТА(2023;1;1)+СТРОКА(A1)-1;"dddd")
Разберем конструкцию:
- 📅
ДАТА(2023;1;1)— базовая дата (можно заменить наСЕГОДНЯ()для динамического списка). - 🔢
СТРОКА(A1)-1— смещение по строкам (вA1будет "понедельник", вA2— "вторник" и т.д.). - 📝
"dddd"— формат отображения полного названия дня недели.
Чтобы список начинался с конкретного дня (например, со среды), добавьте смещение:
=ТЕКСТ(ДАТА(2023;1;4)+СТРОКА(A1)-1;"dddd")
Здесь ДАТА(2023;1;4) — это среда, 4 января 2023 года.
Как сделать список сокращенных дней (пн, вт, ср)
Используйте формат "ddd" вместо "dddd":
=ТЕКСТ(ДАТА(2023;1;1)+СТРОКА(A1)-1;"ddd")
Для русскоязычных сокращений ("пн" вместо "пон") может потребоваться замена через =ПОДСТАВИТЬ() или пользовательский формат.
Способ 3: Power Query для гибких списков
Если нужно создать список дней недели с дополнительными параметрами (например, с указанием номера недели или квартала), используйте Power Query. Этот метод подходит для Excel 2016 и новее.
- 🔹 Перейдите на вкладку
Данные→Получить данные→Из других источников→Пустой запрос. - 🔹 В редакторе Power Query введите в строку формул:
= {"пн", "вт", "ср", "чт", "пт", "сб", "вс"} - 🔹 Нажмите
Готовои загрузите данные в таблицу.
Преимущество Power Query — возможность комбинировать дни с другими данными. Например, создать таблицу, где каждой дате соответствует день недели, номер недели и квартал:
| Дата | День недели | Неделя | Квартал |
|---|---|---|---|
| 01.01.2026 | понедельник | 1 | 1 |
| 02.01.2026 | вторник | 1 | 1 |
| 08.01.2026 | понедельник | 2 | 1 |
| 01.04.2026 | понедельник | 14 | 2 |
Ручной ввод с маркером|Формулы|Power Query|Макросы (VBA)|Не знаю, выберу после прочтения-->
Способ 4: Макросы для автоматизации
Если списки дней недели нужны регулярно, запишите простой макрос. Например, этот код создает вертикальный список с текущего дня:
Sub ДниНедели()
Dim i As Integer
For i = 0 To 6
Cells(i + 1, 1).Value = Format(Date + i, "dddd")
Next i
End Sub
Чтобы список начинался с понедельника независимо от текущей даты, модифицируйте код:
Sub ДниНеделиСПонедельника()
Dim i As Integer, StartDate As Date
StartDate = Date - Weekday(Date, vbMonday) + 1 ' Начало недели (понедельник)
For i = 0 To 6
Cells(i + 1, 1).Value = Format(StartDate + i, "dddd")
Next i
End Sub
Внимание на регионы! В русских версиях Excel названия дней выводятся на русском, но если у вас английская версия, используйте Format(Date + i, "dddd", vbMonday, vbUseSystemDayOfWeek) для корректного отображения.
Выделите ячейку, с которой должен начинаться список|Проверьте, что макросы разрешены (Файл → Параметры → Центр управления безопасностью)|Сохраните файл как .xlsm (с поддержкой макросов)|Запустите макрос через Alt+F8-->
Способ 5: Пользовательский формат для дат
Если исходные данные — это столбец с датами, а вам нужны только дни недели, примените пользовательский формат:
- 📅 Выделите ячейки с датами.
- 🔧 Нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - 📝 В разделе
Числовыберите(все форматы)и введите:ddddдля полного названия или
dddдля сокращенного.
⚠️ Внимание: Пользовательский формат только визуально отображает дни недели, но в строке формул остается исходная дата. Если скопировать такие ячейки в другой файл, они превратятся обратно в даты.
Чтобы преобразовать формат в реальные текстовые значения, используйте Специальная вставка:
- 📋 Скопируйте ячейки с форматом
dddd. - 🔄 Вставьте как
Значения(правая кнопка →Параметры вставки→Значения).
Ошибки и решения
Если при протягивании дней недели возникают проблемы, проверьте эти моменты:
| Проблема | Причина | Решение |
|---|---|---|
| Вместо дней — числа (1, 2, 3...) | Ячейки в формате "Общий" или "Числовой" | Установите формат "Текстовый" до ввода данных |
| Повторяется один день (например, 7 раз "понедельник") | Введена только одна ячейка перед протягиванием | Введите первые два дня (пн и вт), затем протягивайте |
| Дни на английском (Monday, Tuesday) | Язык системы или Excel не русский | Используйте формулы с =ПОДСТАВИТЬ() или измените языковые настройки |
| Список начинается не с понедельника | Формула или макрос привязан к текущей дате | Добавьте смещение (см. раздел про VBA) |
⚠️ Внимание: В Excel Online и мобильной версии нет поддержки макросов и Power Query. Для этих платформ используйте только ручной ввод или формулы.
Дополнительные возможности
Рассмотрим нестандартные задачи с днями недели:
- 🔄 Циклический список: Чтобы дни повторялись бесконечно (пн, вт, ср, пн, вт, ср...), используйте:
=ВЫБОР(ОСТАТ(СТРОКА(A1)-1;3)+1;"пн";"вт";"ср") - 📊 Подсчет дней недели: Чтобы узнать, сколько раз в месяце выпадает понедельник:
=СУММПРОИЗВ(--(ТЕКСТ(ДАТАМЕС(ДАТА(2026;1;1);СТРОКА(A1:A31)-1);"ddd")="пн")) - 🌐 Многоязычные списки: Для вывода дней на двух языках:
=ТЕКСТ(ДАТА(2023;1;1)+СТРОКА(A1)-1;"dddd") & " (" & TEXT(DATE(2023,1,1)+ROW(A1)-1,"dddd";"en-us") & ")"
Для визуализации распределения дней недели по датам используйте условное форматирование:
- 🎨 Выделите диапазон с датами.
- 🔧 Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - 📌 Используйте формулу
=ДЕНЬНЕД(А1)=2для выделения всех понедельников (2 — номер понедельника в функцииДЕНЬНЕД).
FAQ: Частые вопросы
Можно ли протянуть дни недели по вертикали в Google Таблицах?
Да, алгоритм аналогичен Excel:
- Введите в
A1понедельник, вA2—вторник. - Выделите обе ячейки и протяните маркер вниз.
- Если появляются даты, выберите в меню маркера
Копировать только формат.
Для формул используйте =ТЕКСТ(ДАТА(2023;1;1)+СТРОКА(A1)-1;"dddd") (синтаксис идентичен Excel).
Как сделать список дней недели с указанием "рабочий/выходной"?
Используйте формулу с проверкой:
=ТЕКСТ(ДАТА(2023;1;1)+СТРОКА(A1)-1;"dddd") & ЕСЛИ(ДЕНЬНЕД(ДАТА(2023;1;1)+СТРОКА(A1)-1)>5;" (выходной)";"")
Или примените условное форматирование для выделения субботы и воскресенья красным.
Почему при копировании списка дней в другой файл они превращаются в даты?
Это происходит, если дни были созданы через пользовательский формат (см. Способ 5). Решения:
- Скопируйте ячейки и вставьте как
Значения. - Используйте формулу
=ТЕКСТ(А1;"dddd")в новом файле.
Как протянуть дни недели в обратном порядке (с воскресенья по понедельник)?
Для ручного списка:
- Введите в
A1воскресенье, вA2—суббота. - Протяните маркер вниз.
Для формул:
=ТЕКСТ(ДАТА(2023;1;7)-СТРОКА(A1)+1;"dddd")
Здесь ДАТА(2023;1;7) — это воскресенье, 7 января 2023 года.