Как рассчитать среднее значение по дням недели в Excel?
В Excel часто возникают ситуации, когда нужно рассчитать среднее значение списка чисел в зависимости от дня недели, связанного с каждой записью. Например, вы можете анализировать данные о продажах, чтобы определить среднее количество заказов по понедельникам, будням или выходным. Такая задача широко распространена в отчётах по продажам, мониторинге эффективности и любом другом временном анализе данных. Ниже приведены несколько практических решений для вычисления среднего значения по дням недели с помощью формул, кода VBA и сводных таблиц. Эти методы помогут вам получить ценные инсайты и глубже понять распределение ваших данных в контексте календарных закономерностей.

↳ Specific weekday (e.g., Monday)
↳ Рабочие дни (пн–пт)
↳ Выходные (сб–вс)
➤ Автоматизация расчёта среднего значения по День недели с помощью макроса VBA
➤ Сводная таблица: группировка и расчёт среднего по дням недели без формул
Вычисление среднего значения по День недели с помощью формул
Вычисление среднего значения по конкретному День недели
Чтобы рассчитать среднее значение показателей, относящихся к определённому дню недели — например, ко всем понедельникам, — воспользуйтесь формулами массива Excel или функцией SUMPRODUCT. Это особенно полезно для обобщения ежедневных тенденций и выявления повторяющихся паттернов. Например, если вам нужно найти среднее количество заказов именно по понедельникам в вашем наборе данных, примените следующий метод:
Введите следующую формулу в пустую ячейку:
=AVERAGE(IF(WEEKDAY(D2:D15)=2,E2:E15)) Затем одновременно нажмите клавиши Ctrl + Shift + Enter. Это подскажет Excel, что формула является формулой массива, и позволит обрабатывать каждую строку отдельно для получения правильного результата.

Примечания и пояснения:
- D2:D15 — это ваш список дат. Убедитесь, что они содержат корректные значения дат Excel.
- 2 обозначает понедельник. Числовые коды для дней недели следующие: воскресенье = 1, понедельник = 2, вторник = 3, среда = 4, четверг = 5, пятница = 6, суббота = 7.
- E2:E15 — это диапазон чисел, для которого вы хотите рассчитать среднее значение, например количество заказов, объём продаж или другие подобные метрики.
Советы:
- Если ваша версия Excel поддерживает формулы динамических массивов (Office 365 или новее), вы можете вводить формулу напрямую — без использования Ctrl + Shift + Enter.
- Проверьте, нет ли пустых ячеек или ячеек с недопустимыми датами, чтобы избежать ошибок в формулах.
В качестве альтернативы, предлагающей больше гибкости, используйте функцию SUMPRODUCT — она даёт тот же результат, не требует ввода как формула массива и отлично подходит для работы с большими наборами данных:
=SUMPRODUCT((WEEKDAY(D2:D15,2)=1)*E2:E15)/SUMPRODUCT((WEEKDAY(D2:D15,2)=1)*1) После ввода этой формулы в ячейку нажмите клавишу Enter. Здесь D2:D15 — это ваш диапазон дат, E2:E15 — ваш диапазон данных, а 1обозначает понедельник (при использовании второго аргумента функции WEEKDAY, равного 2, где понедельник = 1, вторник = 2, …, воскресенье = 7).
Вычисление среднего значения по рабочим дням
Чтобы вычислить среднее значение для рабочих дней (с понедельника по пятницу) в ваших данных, используйте следующую формулу массива:
=AVERAGE(IF(WEEKDAY(D2:D15,2)={1,2,3,4,5},E2:E15)) Введите эту формулу в пустую ячейку и подтвердите, нажав клавиши Ctrl + Shift + Enter.

Примечания и пояснения:
- Эта формула рассчитывает среднее значение только для строк, где дата приходится на рабочие дни — с понедельника по пятницу.
- Убедитесь, что значения дат в D2:D15 корректны — в противном случае функция WEEKDAY может вернуть неожиданные результаты.
Советы:
- Если вы хотите избежать ввода массива, воспользуйтесь приведённой ниже альтернативой с функцией SUMPRODUCT.
- Убедитесь, что столбец с датами содержит настоящие даты Excel, а не текст.
Другой способ достижения того же результата — использование формулы SUMPRODUCT:
=SUMPRODUCT((WEEKDAY(D2:D15,2)<,6)*E2:E15)/SUMPRODUCT((WEEKDAY(D2:D15,2)<6)*1) Просто введите эту формулу и нажмите клавишу Enter — она автоматически рассчитает среднее значение для строк, где номер дня недели меньше 6, то есть с понедельника по пятницу.
Вычисление среднего значения по выходным дням
Для вычисления среднего значения только по выходным (суббота и воскресенье) используйте следующую формулу массива:
=AVERAGE(IF(WEEKDAY(D2:D15,2)={6,7},E2:E15)) Введите её в пустую ячейку и подтвердите, нажав клавиши Ctrl + Shift + Enter.

Примечания и пояснения:
- Эта формула предназначена для дат, в которых функция WEEKDAY возвращает 6 или 7 (суббота или воскресенье) при значении второго аргумента, равном 2.
Советы:
- Для больших наборов данных альтернатива с использованием SUMPRODUCT может работать быстрее и не требует ввода в виде формулы массива.
- Убедитесь, что пустые строки и значения, не являющиеся датами, корректно обрабатываются, чтобы избежать искажения средних значений.
Более быстрый вариант с использованием SUMPRODUCT, который работает без ввода как формула массива:
=SUMPRODUCT((WEEKDAY(D2:D15,2)>,5)*E2:E15)/SUMPRODUCT((WEEKDAY(D2:D15,2)>5)*1) Как всегда, проверяйте корректность дат и отсутствие пустых ячеек, чтобы гарантировать точность результатов.
Код VBA — автоматизация вычисления среднего значения по День недели с помощью макроса
Для пользователей, которым нужен полностью автоматизированный подход — особенно при работе с большими объёмами данных или при частых обновлениях — можно использовать VBA для перебора данных, группировки записей по дням недели и расчёта средних значений для каждого дня. Этот метод идеально подходит, если вы хотите избежать ручной настройки формул и мгновенно получить сводку по дням недели.
Преимущества: Исключает ручные действия, формирует полную сводку и позволяет настраивать данные для дальнейшей обработки.
Недостатки: Требует включения макросов и базового знакомства с VBA; может не подойти для сильно динамичных или облачных таблиц.
Порядок действий:
1. Щелкните по пункту Инструменты разработчика > Visual Basic, чтобы открыть редактор VBA. В открывшемся окне выберите Вставка > Модуль и вставьте следующий код в новый модуль:
Sub AverageOrdersByWeekday()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim cell As Range
Dim ws As Worksheet
Dim datesRange As Range, valuesRange As Range
Dim i As Long, dayKey As String
Dim sumArr(1 To 7) As Double
Dim countArr(1 To 7) As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
Set datesRange = Application.InputBox("Select the date range", xTitleId, Selection.Address, Type:=8)
Set valuesRange = Application.InputBox("Select the corresponding values range", xTitleId, "", Type:=8)
For i = 1 To datesRange.Count
If IsDate(datesRange.Cells(i).Value) Then
Dim wd As Integer
wd = Weekday(datesRange.Cells(i).Value, 2)
sumArr(wd) = sumArr(wd) + valuesRange.Cells(i).Value
countArr(wd) = countArr(wd) + 1
End If
Next i
Dim resWs As Worksheet
Set resWs = Worksheets.Add
resWs.Name = "Weekday Averages"
resWs.Cells(1, 1).Value = "Weekday"
resWs.Cells(1, 2).Value = "Average"
Dim dayNames As Variant
dayNames = Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
For i = 1 To 7
resWs.Cells(i + 1, 1).Value = dayNames(i - 1)
If countArr(i) > 0 Then
resWs.Cells(i + 1, 2).Value = sumArr(i) / countArr(i)
Else
resWs.Cells(i + 1, 2).Value = "No data"
End If
Next i
End Sub 2. Чтобы запустить макрос, нажмите кнопку
или клавишу F5. Появится запрос на выбор диапазона дат (например, D2:D15) и соответствующего диапазона значений (например, E2:E15).
Макрос создаст новый лист со средними значениями для каждого дня недели. Для понедельника–воскресенья будет рассчитано значение «Среднее», а если данных для какого-либо дня недели нет — отобразится надпись «Нет данных».
Меры предосторожности и советы:
- Убедитесь, что оба диапазона — даты и значения — имеют одинаковый размер и выровнены по строкам.
- Макрос можно запускать только после сохранения книги в формате с поддержкой макросов (*.xlsm).
- Если возникает ошибка, убедитесь, что ваши диапазоны не содержат пустых или недопустимых записей.
- Вы можете изменить код, чтобы добавить фильтрацию по конкретным дням недели или расширить сводку.
Сводная таблица — используйте Сводная таблица для группировки дат по дням недели и вычисления средних значений без формул
Другой способ анализа и вычисления среднего значения ваших данных по неделям — использование сводной таблицы. Этот подход удобен, не требует ручного ввода формул или программирования и позволяет динамически группировать данные, мгновенно рассчитывать средние значения и автоматически обновлять результаты при изменении исходных данных.
Преимущества: Быстрая настройка, работа с большими наборами данных, автоматическое обновление при добавлении новых данных и поддержка дальнейшего анализа (например, фильтрации и сортировки).
Недостатки: Требует, чтобы данные были организованы в виде таблицы Excel или структурированного диапазона; возможности настройки ограничены по сравнению с решениями на основе VBA.
Шаги выполнения:
1.Добавьте вспомогательный столбец с названиями дней недели:
В пустом столбце (например,)F) введите в ячейку F2:
=TEXT(D2,"dddd") Скопируйте формулу вниз, чтобы она охватывала все строки с вашими данными. (Предполагается, что даты находятся в)D2:D15.)
2.Выделите исходный диапазон, включая вспомогательный столбец (например,)D2:F15). Для наилучших результатов преобразуйте его в таблицу Excel (Ctrl+T), оставив выделение активным.
3. Перейдите на вкладку Вставка > Сводная таблица. В диалоговом окне «Создание сводной таблицы» выберите место её размещения (рекомендуется — новый лист) и нажмите OK.
4. В области «Поля сводной таблицы»:
— Перетащите вспомогательное поле День недели (столбец F) в область Строки.
— Перетащите числовое поле (например,)Заказы из столбца E) в область Значения.
5. Измените агрегацию на среднее значение:
Нажмите раскрывающуюся стрелку в области Значения > Параметры поля > Среднее > OK.
6. (Необязательно) Отсортируйте дни недели от понедельника до воскресенья:
Щёлкните правой кнопкой мыши по любой метке дня недели > Сортировка > Другие параметры сортировки, либо добавьте небольшой вспомогательный столбец с числами от 1 до 7 для пользовательской сортировки и выполните сортировку по нему. Также можно задать числовой формат через Параметры поля — Настройки полей > Числовой формат.
7. Обновляйте при изменении данных:
После обновления исходной таблицы щёлкните в любом месте сводной таблицы и выберите Обновить(или)Данные > Обновить всё).
Советы и устранение неполадок:
- Убедитесь, что столбец с датами содержит корректные даты Excel (а не текст), иначе формула для определения дня недели может не сработать.
- Если средние значения кажутся некорректными, убедитесь, что поле Значения установлено в значение Среднее, а не Сумма.
- После изменения или добавления строки в исходной таблице используйте команду Обновить, чтобы сводная таблица пересчитала данные.
- Для региональных настроек, в которых используется точка с запятой, введите вместо этого
=TEXT(D2,"dddd").
Использование сводной таблицы для анализа по дням недели упрощает процесс и позволяет создавать интерактивные отчёты, идеально подходящие для презентаций и совместного использования аналитических данных.

Раскройте магию Excel с помощью KUTOOLS AI
- Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
- Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
- Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
- Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
- Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Связанные статьи:
Как рассчитать среднее значение между двумя датами в Excel?
Как вычислить среднее значение ячеек в Excel на основе нескольких условий?
Как найти среднее значение среди трёх наибольших или трёх наименьших чисел в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек