Как подсчитать количество вхождений по годам/кварталам/месяцам/неделям в Excel?
В повседневной работе анализ данных часто требует суммирования количества записей или событий по временным периодам, например, подсчета того, сколько продаж произошло в каждом месяце, отслеживание частоты действий по неделям или анализ сезонных трендов по кварталам. Хотя функция СЧЁТЕСЛИ часто используется для подсчета данных на основе определенных критериев в Excel, это может быть не всегда очевидно, если вы хотите группировать и подсчитывать даты по году, месяцу, кварталу или неделе непосредственно. Чтобы решить эти проблемы, эта статья представляет несколько практических и легких в применении методов для подсчета вхождений по различным временным периодам (год, квартал, месяц, неделя) в Excel, помогая эффективно обобщать и анализировать данные, основанные на времени, и избегать ошибок при ручном подсчете.
- Подсчет количества вхождений по годам/месяцам с помощью формул
- Подсчет количества вхождений по годам/месяцам/будням/дням с помощью Kutools для Excel
- Подсчет количества вхождений по годам/месяцам/кварталам/часам с помощью сводной таблицы
- Макрос VBA: Подсчет вхождений по годам/кварталам/месяцам/неделям с автоматизированным сводом
- Подсчет количества вхождений по неделям с помощью формулы НОМНЕДЕЛИ
Подсчет количества вхождений по годам/месяцам с помощью формул
Когда вам нужно быстро узнать, сколько раз определенное событие произошло в конкретном году или месяце, формулы предлагают гибкий и динамический подход. Используя встроенные функции дат вместе с СУММПРОИЗВ, вы можете напрямую рассчитать количество по годам, месяцам или любой их комбинации, делая ваше сводное значение точным и автоматически обновляемым при изменении исходных данных. Этот подход хорошо работает в большинстве обычных задач анализа для небольших и средних наборов данных.
Выберите пустую ячейку, где вы хотите отобразить результат подсчета, затем введите следующую формулу:
=СУММПРОИЗВ((МЕСЯЦ($A$2:$A$24)=F2)*(ГОД($A$2:$A$24)=$E$2))
После ввода формулы перетащите маркер автозаполнения ячейки вниз, чтобы применить формулу к другим строкам по мере необходимости. Как показано ниже:
Примечания и советы:
- В формуле
МЕСЯЦ($A$2:$A$24)=F2
иГОД($A$2:$A$24)=$E$2
являются критериями, которые соответствуют указанному месяцу в F2 и году в E2. Обновите диапазоны и ссылки (например, A2:A24, E2, F2) в соответствии с вашей структурой данных. - Для подсчета только по месяцам, игнорируя год, используйте:
=СУММПРОИЗВ(1*(МЕСЯЦ($A$2:$A$24)=F2)) - Убедитесь, что столбец дат содержит реальные значения дат Excel, а не текстовые даты, чтобы избежать ошибок или несоответствий. Если ваша формула возвращает неожиданные результаты, дважды проверьте форматирование дат.
- Если ваш набор данных большой, рассмотрите использование сводных таблиц или VBA для производительности и более простого обслуживания.
Этот метод подходит для большинства сценариев, требующих быстрой статистики дат, и когда вы хотите, чтобы результаты автоматически обновлялись при изменении данных. Однако работа с несколькими условиями группировки может сделать формулы сложными и трудно обслуживаемыми.
Подсчет количества вхождений по годам/месяцам/будням/дням с помощью Kutools для Excel
Если у вас установлен Kutools для Excel, вы можете воспользоваться его интуитивными утилитами для группировки и подсчета количества вхождений по годам, месяцам, будням, дням или дальнейшим комбинациям, таким как год и месяц или месяц и день, без необходимости создания сложных формул. Этот подход особенно эффективен для пользователей, ищущих визуальное, управляемое меню решение.
1. Выберите столбец, содержащий ваши даты, и нажмите Kutools > Формат > Применить формат даты. Появится следующее диалоговое окно:
2. В диалоговом окне Применить формат даты выберите стиль форматирования, соответствующий вашему требованию подсчета (например, месяц, год, будний день, день и т.д.), и затем нажмите OK. Например, выберите "Мар" для подсчета по месяцу.
3. Пока столбец дат все еще выбран, нажмите Kutools > К фактическим. Этот шаг преобразует все даты в отображаемые значения (например, названия месяцев) для более легкой группировки на последующих шагах.
4. Далее выберите диапазон, содержащий ваши преобразованные имена групп и связанные данные (например, столбцы Количество или Категория). Перейдите к Kutools > Текст > Расширенное объединение строк. Вы увидите следующий интерфейс:
5. В диалоговом окне Расширенное объединение строк:
(1) Установите свой столбец дат как Основной ключ , чтобы группировать по нему.
(2) Для столбца, который вы хотите подсчитать (например, Количество), установите расчет на Количество.
(3) Вы можете выбрать другие методы агрегации или комбинации для других столбцов (например, объединить названия фруктов запятой).
(4) Нажмите OK для обработки.
Теперь ваши данные будут отображать количество записей за выбранный период. Смотрите скриншот ниже:
Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас
По сравнению с ручными формулами, Kutools упрощает процесс, снижает человеческие ошибки и отлично подходит для пользователей, которые часто выполняют групповой подсчет и хотят избежать сложности формул. Это хорошо работает как для маленьких, так и для больших наборов данных. Не забудьте создать резервную копию ваших данных перед массовым преобразованием или объединением строк.
Подсчет количества вхождений по годам/месяцам/кварталам/часам с помощью сводной таблицы
Сводные таблицы предлагают мощный и интерактивный способ анализа больших наборов данных и суммирования вхождений по одному или нескольким временным измерениям — год, месяц, квартал, час и т.д. — со всем этим легко управляемым через интерфейс с точечным кликом. Сводные таблицы также позволяют быстро перенастраивать и фильтровать, что делает их идеальными для исследования моделей данных или подготовки управленческих отчетов.
1. Выберите свою таблицу данных, затем перейдите к Вставить > Сводная таблица. Появится диалоговое окно Создание сводной таблицы.
2. В диалоговом окне укажите, куда поместить сводную таблицу (новый лист или существующее расположение, например, ячейка E1), затем нажмите OK.
3. В панели Полей сводной таблицы перетащите поле Дата в секцию Строки и поле Количество (или целевое поле) в секцию Значения. По умолчанию значения могут быть просуммированы.
Сводная таблица появится, как на скриншоте ниже:
4. Измените расчет значений на подсчет, щелкнув правой кнопкой мыши заголовок столбца значений (например, Сумма по Количество), затем выберите Суммировать значения по > Количество.
5. Чтобы сгруппировать по дополнительным периодам (например, месяцам, годам или кварталам), щелкните правой кнопкой мыши любую ячейку в столбце Метки строк, выберите Группа, и из диалогового окна выберите критерии группировки (например, Месяцы, Года или Кварталы), затем нажмите OK.
Теперь ваша таблица отображает подсчеты по выбранным периодам:
Примечание: Группировка по нескольким периодам (например, месяц и год) добавит дополнительные уровни в Метках строк. Вы можете переупорядочить поля группировки (например, переместить Года ниже Дата) в панели Полей сводной таблицы для настройки вашего сводного представления.
Этот подход лучше всего подходит для больших и динамических наборов данных, требующих периодической группировки, сравнения и сводки. Он менее подходит для быстрых, случайных вычислений на уровне ячеек или для пользователей, незнакомых с функциями сводной таблицы.
Макрос VBA: Подсчет вхождений по годам/кварталам/месяцам/неделям с автоматизированным сводом
Когда вам нужно повторно генерировать сводные подсчеты, сгруппированные по различным временным периодам, или вы хотите автоматизировать процесс подсчета для повышения эффективности — особенно в больших наборах данных — настраиваемый макрос VBA может быть эффективным решением. Этот метод особенно подходит, если вы обрабатываете данные регулярно, создаете периодические сводные таблицы или нуждаетесь в специальных группировках (например, финансовые кварталы или недели), которые сложно обработать формулами или сводными таблицами.
Полные шаги операции:
- Сделайте резервную копию книги перед первым запуском любого макроса.
- Нажмите Разработчик > Visual Basic, чтобы открыть редактор VBA.
- Нажмите Вставка > Модуль, затем скопируйте и вставьте код ниже в окно Модуль.
Sub CountOccurrencesByPeriod()
Dim lastRow As Long
Dim ws As Worksheet, summaryWs As Worksheet
Dim periodType As String
Dim dict As Object, key As Variant
Dim dateRange As Range, cell As Range
Dim outputRow As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
Set dateRange = Application.InputBox("Select date range:", xTitleId, Selection.Address, Type:=8)
periodType = Application.InputBox("Count by (Year/Quarter/Month/Week):", xTitleId, "Month", Type:=2)
If dateRange Is Nothing Or periodType = "" Then Exit Sub
Set dict = CreateObject("Scripting.Dictionary")
For Each cell In dateRange
If IsDate(cell.Value) Then
Select Case LCase(periodType)
Case "year"
key = Year(cell.Value)
Case "quarter"
key = "Q" & WorksheetFunction.RoundUp(Month(cell.Value) / 3, 0) & " " & Year(cell.Value)
Case "month"
key = Format(cell.Value, "yyyy-mm")
Case "week"
key = "W" & WorksheetFunction.WeekNum(cell.Value) & " " & Year(cell.Value)
Case Else
key = Format(cell.Value, "yyyy-mm")
End Select
If dict.Exists(key) Then
dict(key) = dict(key) + 1
Else
dict.Add key, 1
End If
End If
Next cell
Set summaryWs = Worksheets.Add(After:=ws)
summaryWs.Name = "Occurrence_Summary"
summaryWs.Range("A1").Value = "Period"
summaryWs.Range("B1").Value = "Occurrences"
outputRow = 2
For Each key In dict.Keys
summaryWs.Cells(outputRow, 1).Value = key
summaryWs.Cells(outputRow, 2).Value = dict(key)
outputRow = outputRow + 1
Next key
MsgBox "Summary completed in sheet 'Occurrence_Summary'.", vbInformation
End Sub
После ввода кода:
- Вернитесь в Excel и нажмите Alt+F8, выберите CountOccurrencesByPeriod, и нажмите Выполнить.
- Появится запрос, предлагающий выбрать диапазон дат для анализа. Выберите соответствующий столбец или диапазон, содержащий ваши даты.
- Второй запрос спрашивает, по какому периоду группировать: введите «Год», «Квартал», «Месяц» или «Неделя» (регистр не важен).
- Макрос создаст новый лист под названием Occurrence_Summary, содержащий каждый период и количество вхождений в нем.
Устранение неполадок и советы:
- Если вы столкнулись с предупреждением о безопасности макросов, настройте параметры макросов в Файл > Параметры > Центр доверия > Параметры макросов.
- Убедитесь, что ваш столбец дат содержит действительные значения дат Excel; текстовые строки или смешанные форматы могут привести к неточным подсчетам или ошибкам.
- Макрос гибкий — введите «Квартал», чтобы быстро группировать подсчеты по году и кварталу, или «Неделя», чтобы суммировать на еженедельной основе.
- Если вы хотите настроить вывод (например, добавить больше деталей), вы можете изменить макрос для обработки дополнительных столбцов или правил расчета.
Это решение надежно для пакетной отчетности или периодического анализа, но предполагает базовое знакомство с VBA и правильным управлением книгой. Если вы хотите совместить визуализацию сводки, рассмотрите использование сводных таблиц и VBA вместе.
Подсчет количества вхождений по неделям с помощью формулы НОМНЕДЕЛИ
Подсчет частоты записей или событий по неделям является распространенной потребностью в отслеживании продаж, управлении проектами и распределении ресурсов. Excel предоставляет функцию НОМНЕДЕЛИ, которая возвращает номер недели заданной даты в году, что позволяет легко группировать данные на еженедельной основе с помощью формул.
Применимый сценарий: У вас есть список дат (например, данные о продажах или посещаемости), и вы хотите подсчитать, сколько записей попадает в каждую неделю года. Этот метод хорошо работает для текущего анализа и когда ваши данные часто меняются, так как подсчет обновляется автоматически.
1. В пустом столбце (например, B2) введите следующую формулу для расчета номера недели для каждой даты в столбце A:
=WEEKNUM(A2,1)
Второй аргумент («1») указывает, что недели начинаются в воскресенье (измените на «2», если хотите, чтобы недели начинались в понедельник). Скопируйте эту формулу вниз для всех строк ваших данных дат.
2. Создайте список номеров недель, которые вы хотите суммировать (например, 1, 2, 3, …). В другой пустой ячейке (например, D2) используйте следующую формулу для подсчета вхождений для конкретного номера недели (предполагая, что B2:B24 содержит номера недель, а D2 содержит неделю для поиска):
=COUNTIF($B$2:$B$24, D2)
После нажатия Enter перетащите эту формулу вниз для вашего списка номеров недель. Каждый результат показывает количество вхождений для этой недели.
Советы и предостережения:
- Если вы хотите подсчитывать как по году, так и по неделе, чтобы различать записи за разные годы, используйте:
=SUMPRODUCT((YEAR($A$2:$A$24)=$F$2)*(WEEKNUM($A$2:$A$24,1)=G2))
Где F2 — целевой год, а G2 — целевой номер недели. Настройте диапазоны столбцов и ссылки по мере необходимости. - Номер недели в функции НОМНЕДЕЛИ может отличаться в зависимости от настройки (система, США/ISO, выбранный вами день начала).
- Если используется ISO номер недели (европейский стандарт, недели начинаются в понедельник, а первая неделя — это неделя с первым четвергом), используйте
=ISOWEEKNUM(A2)
(для Excel 2013 и выше). - Всегда убедитесь, что все ваши значения дат находятся в допустимом формате дат 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-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек