Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как подсчитать количество вхождений по годам/кварталам/месяцам/неделям в Excel?

Author Kelly Last modified

В повседневной работе анализ данных часто требует суммирования количества записей или событий по временным периодам, например, подсчета того, сколько продаж произошло в каждом месяце, отслеживание частоты действий по неделям или анализ сезонных трендов по кварталам. Хотя функция СЧЁТЕСЛИ часто используется для подсчета данных на основе определенных критериев в Excel, это может быть не всегда очевидно, если вы хотите группировать и подсчитывать даты по году, месяцу, кварталу или неделе непосредственно. Чтобы решить эти проблемы, эта статья представляет несколько практических и легких в применении методов для подсчета вхождений по различным временным периодам (год, квартал, месяц, неделя) в Excel, помогая эффективно обобщать и анализировать данные, основанные на времени, и избегать ошибок при ручном подсчете.


Подсчет количества вхождений по годам/месяцам с помощью формул

Когда вам нужно быстро узнать, сколько раз определенное событие произошло в конкретном году или месяце, формулы предлагают гибкий и динамический подход. Используя встроенные функции дат вместе с СУММПРОИЗВ, вы можете напрямую рассчитать количество по годам, месяцам или любой их комбинации, делая ваше сводное значение точным и автоматически обновляемым при изменении исходных данных. Этот подход хорошо работает в большинстве обычных задач анализа для небольших и средних наборов данных.

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

=СУММПРОИЗВ((МЕСЯЦ($A$2:$A$24)=F2)*(ГОД($A$2:$A$24)=$E$2))

После ввода формулы перетащите маркер автозаполнения ячейки вниз, чтобы применить формулу к другим строкам по мере необходимости. Как показано ниже:
apply a formual to count the number of occurrences per year and month

Примечания и советы:

  • В формуле МЕСЯЦ($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, вы можете воспользоваться его интуитивными утилитами для группировки и подсчета количества вхождений по годам, месяцам, будням, дням или дальнейшим комбинациям, таким как год и месяц или месяц и день, без необходимости создания сложных формул. Этот подход особенно эффективен для пользователей, ищущих визуальное, управляемое меню решение.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

1. Выберите столбец, содержащий ваши даты, и нажмите Kutools > Формат > Применить формат даты. Появится следующее диалоговое окно:
go to the Apply Date Formatting dialog and set the options

2. В диалоговом окне Применить формат даты выберите стиль форматирования, соответствующий вашему требованию подсчета (например, месяц, год, будний день, день и т.д.), и затем нажмите OK. Например, выберите "Мар" для подсчета по месяцу.

3. Пока столбец дат все еще выбран, нажмите Kutools > К фактическим. Этот шаг преобразует все даты в отображаемые значения (например, названия месяцев) для более легкой группировки на последующих шагах.
clcik To Actual to convert dates to the month names

4. Далее выберите диапазон, содержащий ваши преобразованные имена групп и связанные данные (например, столбцы Количество или Категория). Перейдите к Kutools > Текст > Расширенное объединение строк. Вы увидите следующий интерфейс:
go to the Advanced Combine Rows feature and set options

5. В диалоговом окне Расширенное объединение строк:
(1) Установите свой столбец дат как Основной ключ , чтобы группировать по нему.
(2) Для столбца, который вы хотите подсчитать (например, Количество), установите расчет на Количество.
(3) Вы можете выбрать другие методы агрегации или комбинации для других столбцов (например, объединить названия фруктов запятой).
(4) Нажмите OK для обработки.

Теперь ваши данные будут отображать количество записей за выбранный период. Смотрите скриншот ниже:
the number of occurrences per month is counted

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас

По сравнению с ручными формулами, Kutools упрощает процесс, снижает человеческие ошибки и отлично подходит для пользователей, которые часто выполняют групповой подсчет и хотят избежать сложности формул. Это хорошо работает как для маленьких, так и для больших наборов данных. Не забудьте создать резервную копию ваших данных перед массовым преобразованием или объединением строк.

Подсчет количества вхождений по годам/месяцам/кварталам/часам с помощью сводной таблицы

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

1. Выберите свою таблицу данных, затем перейдите к Вставить > Сводная таблица. Появится диалоговое окно Создание сводной таблицы.
screenshot of clicking Insert > PivotTable

2. В диалоговом окне укажите, куда поместить сводную таблицу (новый лист или существующее расположение, например, ячейка E1), затем нажмите OK.
set options in the Create PivotTable dialog box

3. В панели Полей сводной таблицы перетащите поле Дата в секцию Строки и поле Количество (или целевое поле) в секцию Значения. По умолчанию значения могут быть просуммированы.

Сводная таблица появится, как на скриншоте ниже:
drag the column names to the corresponding fields

4. Измените расчет значений на подсчет, щелкнув правой кнопкой мыши заголовок столбца значений (например, Сумма по Количество), затем выберите Суммировать значения по > Количество.
select Summarize Values By > Count from the right-clicking menu

5. Чтобы сгруппировать по дополнительным периодам (например, месяцам, годам или кварталам), щелкните правой кнопкой мыши любую ячейку в столбце Метки строк, выберите Группа, и из диалогового окна выберите критерии группировки (например, Месяцы, Года или Кварталы), затем нажмите OK.
select Group from the right-clicking menu and choose month and year

Теперь ваша таблица отображает подсчеты по выбранным периодам:
the number of occurrences per year and month is counted

Примечание: Группировка по нескольким периодам (например, месяц и год) добавит дополнительные уровни в Метках строк. Вы можете переупорядочить поля группировки (например, переместить Года ниже Дата) в панели Полей сводной таблицы для настройки вашего сводного представления.
The count of monthly records is calculated by grouping them by month and year.

Этот подход лучше всего подходит для больших и динамических наборов данных, требующих периодической группировки, сравнения и сводки. Он менее подходит для быстрых, случайных вычислений на уровне ячеек или для пользователей, незнакомых с функциями сводной таблицы.


Макрос 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 для получения точных результатов.

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


Демонстрация: Подсчет количества вхождений по годам/месяцам/будням/дням

 

Связанные статьи:

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в 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 Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек