¿Cómo contar el número de ocurrencias por año, trimestre, mes o semana en Excel?
En el trabajo diario, el análisis de datos suele requerir resumir el número de registros o eventos por períodos temporales, como contar cuántas ventas se produjeron cada mes, hacer un seguimiento de la frecuencia de actividades por semana o analizar tendencias estacionales por trimestre. Aunque la función CONTAR.SI se utiliza comúnmente para contar datos según criterios específicos en Excel, no siempre resulta sencillo agrupar y contar fechas directamente por año, mes, trimestre o semana. Para abordar estos retos, este artículo presenta varios métodos prácticos y fáciles de aplicar para contar ocurrencias por distintos períodos temporales (año, trimestre, mes, semana, día laborable) en Excel, ayudándole a resumir y analizar eficazmente datos basados en el tiempo y a evitar errores manuales en los recuentos.
- Recuento del número de ocurrencias por año/mes con fórmulas
- Recuento del número de ocurrencias por año/mes/día de la semana/día con Kutools para Excel
- Recuento del número de ocurrencias por año/mes/trimestre/hora con tabla dinámica
- Macro VBA: Recuento de ocurrencias por año/trimestre/mes/semana con resumen automatizado
- Recuento del número de ocurrencias por semana con una fórmula de NUM.DE.SEMANA
Recuento del número de ocurrencias por año/mes con fórmulas
Cuando necesite averiguar rápidamente cuántas veces ocurrió un determinado evento en un año o mes concreto, las fórmulas ofrecen un enfoque flexible y dinámico. Al combinar funciones integradas de fecha con SUMAPRODUCTO, podrá calcular directamente los recuentos por año, mes o cualquier combinación de ambos, obteniendo un resumen preciso que se actualiza automáticamente al modificar los datos de origen. Este método es ideal para la mayoría de las tareas habituales de análisis con conjuntos de datos pequeños o medianos.
Seleccione una celda vacía donde desee mostrar el resultado del recuento e introduzca la siguiente fórmula:
=SUMAPRODUCTO((MES($A$2:$A$24)=F2)*(AÑO($A$2:$A$24)=$E$2))
Tras introducir la fórmula, arrastre el controlador de autorrelleno de la celda hacia abajo para aplicarla a las demás filas según sea necesario, tal como se muestra a continuación:
Notas y consejos:
- En la fórmula
MONTH($A$2:$A$24)=F2yYEAR($A$2:$A$24)=$E$2, se definen los criterios que coinciden con el mes indicado en F2 y el año en E2. Actualice los rangos y referencias (como)A2:A24, E2 y F2) para adaptarlos a la estructura de sus datos. - Para un recuento solo por mes, ignorando el año, utilice:
=SUMAPRODUCTO(1*(MES($A$2:$A$24)=F2)) - Asegúrese de que la columna de fechas contenga valores reales de fecha de Excel y no fechas con formato de texto, para evitar errores o discrepancias. Si su fórmula devuelve resultados inesperados, revise nuevamente el formato de las fechas.
- Si su conjunto de datos es grande, considere usar tablas dinámicas o VBA para optimizar el rendimiento y simplificar el mantenimiento.
Este método es ideal para la mayoría de los escenarios que requieren estadísticas rápidas sobre fechas y en los que se desea que los resultados se actualicen automáticamente al modificar los datos. No obstante, al trabajar con múltiples condiciones de agrupación, las fórmulas pueden volverse complejas y más difíciles de mantener.
Contar el número de ocurrencias por año/mes/día laborable/día con Kutools para Excel
Si tiene instalado Kutools para Excel, podrá aprovechar sus herramientas intuitivas para agrupar y contar el número de ocurrencias por año, mes, día de la semana, día o combinaciones adicionales como año y mes, o mes y día, sin necesidad de crear fórmulas complejas. Este enfoque resulta especialmente eficiente para usuarios que buscan una solución visual basada en menús.
1. Seleccione la columna que contiene sus fechas y haga clic en Kutools > Formato > Aplicar formato de fecha. Aparecerá el siguiente cuadro de diálogo:
2. En el cuadro de diálogo Aplicar formato de fecha, elija el estilo de formato que se ajuste a su necesidad de recuento (por ejemplo, mes, año, día de la semana, día, etc.) y, a continuación, haga clic en Aceptar. Por ejemplo, seleccione «Mar» para contar por mes.
3. Mientras la columna de fechas siga seleccionada, haga clic en Kutools > A valor real. Este paso convierte todas las fechas al valor de visualización (por ejemplo, nombres de meses) para facilitar su agrupación en pasos posteriores.
4. A continuación, seleccione el rango que contiene sus nombres de grupo convertidos y los datos asociados (como las columnas de importe o categoría). Vaya a Kutools > Contenido > Combinar filas avanzado. Verá la siguiente interfaz:
5. En el cuadro de diálogo Combinar filas avanzado:
(1) Establezca su columna de fechas como Clave principal para agrupar por ella.
(2) Para la columna que desea contar (por ejemplo, Importe), establezca el cálculo en Contar.
(3) Puede elegir otros métodos de agregación o combinación para otras columnas (por ejemplo, combinar nombres de frutas con una coma).
(4) Haga clic en Aceptar para procesar.
Sus datos mostrarán ahora el recuento de registros correspondiente al período seleccionado. Consulte la siguiente captura de pantalla:
Kutools para Excel: potencie Excel con más de 300 herramientas esenciales, agilice y simplifique su trabajo, y aproveche las funciones de IA para un procesamiento de datos más inteligente y una mayor productividad.Consígalo ahora
En comparación con las fórmulas manuales, Kutools simplifica el proceso, reduce los errores humanos y resulta muy adecuado para usuarios que realizan frecuentemente recuentos agrupados y desean evitar la complejidad de las fórmulas. Funciona bien tanto con conjuntos de datos pequeños como grandes. Recuerde hacer una copia de seguridad de sus datos antes de convertir o combinar filas en bloque.
Recuento del número de ocurrencias por año/mes/trimestre/hora con tabla dinámica
Las tablas dinámicas ofrecen una forma potente e interactiva de analizar grandes volúmenes de datos y resumir ocurrencias según una o varias dimensiones temporales —año, mes, trimestre, hora, etc.— todo ello a través de una interfaz intuitiva basada en clics. Además, permiten reconfigurar y filtrar los datos al instante, lo que las convierte en la herramienta ideal para descubrir patrones o preparar informes gerenciales con agilidad.
1. Seleccione su tabla de datos y vaya a Insertar > Tabla dinámica. Aparecerá el cuadro de diálogo Crear tabla dinámica.
2. En el cuadro de diálogo, indica dónde colocar la tabla dinámica (en una hoja de cálculo nueva o en una ubicación existente, como la celda E1) y, a continuación, haz clic en Aceptar.
3. En el panel Campos de tabla dinámica, arrastre el campo Fecha a la sección Filas y el campo Importe (o el campo objetivo) a la sección Valores. De forma predeterminada, los valores se sumarán.
La tabla dinámica aparecerá como en la captura de pantalla siguiente:
4. Cambie el cálculo del valor a un recuento haciendo clic con el botón derecho en el título de la columna de valores (por ejemplo, Suma de Importe) y seleccionando Resumir valores por > Recuento.
5. Para agrupar por períodos adicionales (como mes, año o trimestre), haz clic con el botón derecho en cualquier celda de la columna Etiquetas de fila, selecciona Agrupar y, en el cuadro de diálogo, elige los criterios de agrupación (por ejemplo, Meses, Años o Trimestres). A continuación, haz clic en Aceptar.
Su tabla muestra ahora los recuentos por el/los período(s) seleccionado(s):
Nota:Agrupar por varios períodos (por ejemplo, mes y año) añade niveles adicionales en las etiquetas de fila. Puede reorganizar los campos de agrupación (por ejemplo, mover)Años debajo de Fecha) en el panel Campos de tabla dinámica para ajustar su vista resumen.
Este enfoque es ideal para conjuntos de datos grandes y dinámicos que requieren agrupación, comparación y resumen periódicos. Sin embargo, no es tan adecuado para cálculos rápidos y puntuales a nivel de celda ni para usuarios poco familiarizados con las funciones de tablas dinámicas.
Macro VBA: Recuento de ocurrencias por año/trimestre/mes/semana con resumen automatizado
Cuando necesite generar repetidamente resúmenes de frecuencias agrupados por distintos períodos temporales o automatizar el recuento para ganar eficiencia —especialmente con grandes volúmenes de datos—, una macro personalizada en VBA puede ser la solución ideal. Este enfoque resulta especialmente útil si procesa datos de forma regular, elabora tablas resumen periódicas o requiere agrupaciones personalizadas —como trimestres fiscales o semanas— que no se gestionan fácilmente mediante fórmulas o tablas dinámicas.
Pasos completos de la operación:
- Haga una copia de seguridad de su libro antes de ejecutar cualquier macro por primera vez.
- Haga clic en Desarrollador > Visual Basic para abrir el editor de VBA.
- Haga clic en Insertar > Módulo y, a continuación, copie y pegue el código siguiente en la ventana del módulo.
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 Después de introducir el código:
- Vuelva a Excel y pulse Alt+F8, seleccione CountOccurrencesByPeriod y haga clic en Ejecutar.
- Aparecerá un cuadro de diálogo en el que deberá seleccionar el rango de fechas que desea analizar. Elija la columna o el rango correspondiente que contenga sus fechas.
- Un segundo cuadro de diálogo le preguntará por el período en el que desea agrupar: introduzca «Año», «Trimestre», «Mes» o «Semana» (sin distinción entre mayúsculas y minúsculas).
- La macro generará una hoja de cálculo nueva llamada Occurrence_Summary que enumera cada período y el número de ocurrencias dentro del mismo.
Solución de problemas y consejos:
- Si aparece una advertencia de seguridad de macros, ajuste la configuración de macros en Archivo > Opciones > Centro de confianza > Configuración de macros.
- Asegúrese de que su columna de fechas contenga valores de fecha válidos en Excel; las cadenas de texto o los formatos mixtos pueden provocar recuentos inexactos o errores.
- La macro es flexible: introduzca «Trimestre» para agrupar rápidamente los recuentos por año y trimestre, o «Semana» para resumirlos semanalmente.
- Si desea personalizar la salida (por ejemplo, incluir más detalles), puede ajustar la macro para procesar columnas adicionales o aplicar reglas de cálculo específicas.
Esta solución es ideal para informes masivos o análisis periódicos, aunque requiere una familiaridad básica con VBA y una gestión adecuada del libro de trabajo. Si busca combinar resúmenes visuales, considere utilizar tanto tablas dinámicas como VBA.
Recuento del número de ocurrencias por semana con una fórmula de NUM.DE.SEMANA
Contar la frecuencia de entradas o eventos por semana es una necesidad habitual en el seguimiento de ventas, la gestión de proyectos y la asignación de recursos. Excel ofrece la función NÚM.DE.SEMANA, que devuelve el número de semana de una fecha dada dentro de un año, facilitando así la agrupación semanal de los datos mediante fórmulas.
Escenario aplicable: Dispone de una lista de fechas (por ejemplo, datos de ventas o asistencia) y desea contar cuántas entradas corresponden a cada semana del año. Este método es ideal para análisis continuos y cuando sus datos cambian con frecuencia, ya que el recuento se actualiza automáticamente.
1. En una columna vacía (por ejemplo, B2), introduce la siguiente fórmula para calcular el número de semana correspondiente a cada fecha de la columna A:
=WEEKNUM(A2,1) El segundo argumento («1») indica que las semanas comienzan el domingo (cámbielo a «2» si prefiere que empiecen el lunes). Copie esta fórmula hacia abajo en todas las filas de sus datos de fechas.
2. Elabore una lista de los números de semana que desee resumir (por ejemplo, 1, 2, 3…). En otra celda vacía (por ejemplo, D2), utilice la siguiente fórmula para contar las ocurrencias de un número de semana específico (suponiendo que B2:B24 contiene los números de semana y que D2 incluye la semana que desea buscar):
=COUNTIF($B$2:$B$24, D2) Tras pulsar Intro, arrastre esta fórmula hacia abajo por toda su lista de Número de semana. Cada resultado mostrará el número de ocurrencias correspondientes a esa semana.
Consejos y precauciones:
- Si desea contar por año y semana simultáneamente, para distinguir entradas de distintos años, utilice:
=SUMPRODUCT((YEAR($A$2:$A$24)=$F$2)*(WEEKNUM($A$2:$A$24,1)=G2))Donde F2 es el año objetivo y G2 es el número de semana objetivo. Ajuste los rangos de columnas y las referencias según sea necesario. - La función NUM.DE.SEMANA puede variar según la configuración (sistema, estándar EE. UU./ISO o día de inicio elegido).
- Si utiliza el estándar ISO de número de semana (norma europea, con semanas que comienzan el lunes y cuya primera semana es la que contiene el primer jueves), use
=NUM.DE.SEMANA.ISO(A2)(para Excel 2013 y versiones posteriores). - Asegúrese siempre de que todos sus valores de fecha estén en un formato de fecha válido de Excel para obtener resultados precisos.
Este método es flexible para tablas de datos dinámicas y puede adaptarse a paneles de control, resúmenes periódicos y situaciones en las que desee cruzar recuentos por semana sin recurrir a tablas dinámicas ni complementos adicionales.
Demostración: Contar el número de ocurrencias por año/mes/día laborable/día
Artículos relacionados:
Contar el número de fines de semana/días laborables entre dos fechas en Excel
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos