Por ejemplo, si Assumptions!$B$3 contiene 9/1/2026, esta fórmula cuenta las reservas de septiembre en un modelo anual con ingresos de 4,2 millones de USD:
=COUNTIFS(
'Bookings'!$B$2:$B, ">=" & Assumptions!$B$3,
'Bookings'!$B$2:$B, "<" & EDATE(Assumptions!$B$3, 1),
'Bookings'!$F$2:$F, "Cerrada ganada"
)
El límite < del mes siguiente es importante. Incluye registros como 9/30/2026 23:59:59 sin depender de una hora específica al final del día. Así evitas excluir registros del CRM capturados durante las últimas horas del mes.
Google documenta COUNTIF como una función de conteo basada en un solo criterio y COUNTIFS como su equivalente para múltiples criterios. También explica que ARRAYFORMULA expande resultados en varias celdas, pero no convierte automáticamente cualquier función de agregación en un cálculo independiente por fila. La documentación de COUNTIF de Google y la documentación de COUNTIFS explican esta diferencia.
Por qué COUNTIF y ARRAYFORMULA no resuelven un rango mensual
Una fórmula tentadora sería:
=ARRAYFORMULA(COUNTIF('Bookings'!$B$2:$B, ">=" & B$4))
Devuelve un número, pero no define dónde termina el mes. Además, envolver COUNTIF en ARRAYFORMULA no hace que calcule una respuesta distinta para cada mes de B4:M4. En realidad, estás pidiendo que una función de agregación devuelva varios conteos mensuales. Google Sheets puede entregar un solo resultado o uno que parece correcto hasta que comparas el reporte trimestral.
Un mes es un rango, no un criterio único. Necesita ambos límites:
">=" & month_start
"<" & EDATE(month_start, 1)
Usa EOMONTH(month_start, 0) únicamente cuando tengas la certeza de que la columna de origen contiene fechas sin horas. En datos operativos exportados desde un CRM, Stripe, nómina o un ERP, las marcas de tiempo son comunes. El límite del mes siguiente es más seguro.
Cuándo sí funciona COUNTIF ARRAYFORMULA para un rango mensual
COUNTIF junto con ARRAYFORMULA funciona cuando la tarea no consiste en agregar datos por mes, sino en crear una clasificación por fila. Puedes generar una bandera mensual en la pestaña de origen y sumar los resultados en otro lugar.
Supón que Bookings!B:B contiene las fechas de cierre y Assumptions!$B$3 representa el inicio del mes. Esta fórmula devuelve 1 para cada reserva de septiembre con estado “Cerrada ganada” y 0 en los demás casos:
=ARRAYFORMULA(
IF(
B2:B="",
,
--(
(B2:B>=Assumptions!$B$3) *
(B2:B<EDATE(Assumptions!$B$3,1)) *
(F2:F="Cerrada ganada")
)
)
)
Este enfoque es útil cuando el modelo necesita una columna auxiliar auditable para un análisis de margen por SKU o una extracción de datos para un modelo de flujo de caja descontado. Sin embargo, no es la forma más limpia de producir las celdas mensuales de un reporte.
La documentación de ARRAYFORMULA de Google la describe como una forma de mostrar resultados en varias filas o columnas. Eso es exactamente lo que hace el enfoque de la columna auxiliar.
La fórmula confiable para COUNTIF ARRAYFORMULA y rangos mensuales
Si tienes encabezados con meses calendario en Returns Analysis!C$4:N$4, usa esta fórmula en C18 y cópiala hacia la derecha:
=COUNTIFS(
'P&L Detail'!$C$2:$C, ">=" & C$4,
'P&L Detail'!$C$2:$C, "<" & EDATE(C$4, 1),
'P&L Detail'!$G$2:$G, $B18
)
Si B18 contiene Enterprise, la fórmula devuelve el conteo mensual de ese segmento. El mismo límite de fechas puede servir para sumar ingresos:
=SUMIFS(
'P&L'!C:C,
'P&L'!B:B, ">=" & Assumptions!$B$3,
'P&L'!B:B, "<" & EDATE(Assumptions!$B$3,1)
)
El conteo no calcula los ingresos, pero puede servir como control cuando una variación inesperada en el EBITDA coincide con un filtro de fechas modificado.
COUNTIFS frente a columnas auxiliares y QUERY
| Enfoque | Mejor uso | Punto débil | Regla práctica |
|---|---|---|---|
COUNTIFS con límites de fecha | Tablas mensuales, pestañas de KPI y reportes para el consejo | Repite los criterios en cada celda de salida | Opción predeterminada para modelos con varios periodos |
Columna auxiliar con ARRAYFORMULA | Rastro de auditoría, clasificación por fila y SUMIFS posteriores | Agrega una columna en la pestaña de origen | Úsala cuando los revisores necesiten saber por qué calificó una fila |
QUERY con meses agrupados | Resúmenes ad hoc de transacciones o tablas mensuales nuevas | El formato de fechas y la estructura de salida pueden ser frágiles | Úsala para análisis, no como base de estados financieros vinculados |
COUNTIF con ARRAYFORMULA | Una condición contra un rango expandido | No expresa por sí sola una ventana mensual confiable | Evítala para reportes basados en rangos mensuales |
El punto menos obvio es el mantenimiento del modelo. QUERY puede generar una tabla mensual ordenada, pero una fila de COUNTIFS vinculada a los encabezados del periodo suele resistir mejor la incorporación de nuevos periodos de pronóstico, la copia de un escenario o un cambio en el calendario contable.
En modelos con muchas filas, limita los rangos al volumen esperado, por ejemplo $B$2:$B$50000, en lugar de recalcular una columna completa cada vez que alguien cambia una suposición.
Una trampa del calendario que cambia el resultado
Si C$4 muestra Sep-26, pero en realidad es texto y no una fecha válida, la fórmula puede devolver 0 sin mostrar un error evidente. Compruébalo con:
=ISNUMBER(C$4)
El resultado debe ser TRUE. Mejor aún, establece los encabezados mensuales con una fórmula como esta:
=EDATE(Assumptions!$B$3, COLUMN()-COLUMN($C$4))
Después, aplica el formato mmm-yy. Así tendrás fechas reales que controlan las ventanas mensuales, no etiquetas que solo parecen fechas.
A septiembre de 2026, este sigue siendo el patrón más claro para contar datos por fecha y mes en Google Sheets: fechas reales de inicio de mes, >= para el límite inicial y < EDATE(month_start,1) para el límite final. También se traslada fácilmente de un reporte trimestral a un análisis de sensibilidad del flujo de caja, porque ambos dependen de periodos consistentes entre pestañas.
Si heredas un modelo donde la lógica de fechas está distribuida entre resultados financieros, flujo de caja y una exportación de datos sin procesar del CRM, prueba ModelMonkey gratis durante 14 días para inspeccionar los rangos vinculados y detectar filtros mensuales inconsistentes.
Preguntas frecuentes
¿Funciona COUNTIF con ARRAYFORMULA para un rango mensual?
No como solución completa para varias ventanas mensuales. ARRAYFORMULA puede expandir cálculos por fila, pero COUNTIF normalmente devuelve un conteo agregado. Para contar registros dentro de un mes, usa COUNTIFS con una fecha inicial y el primer día del mes siguiente.
¿Qué fórmula debo usar para contar un mes completo?
Usa esta estructura:
=COUNTIFS(
rango_fechas, ">=" & fecha_inicio,
rango_fechas, "<" & EDATE(fecha_inicio, 1)
)
El límite inferior incluye el primer día del mes y el límite superior excluye el primer día del mes siguiente. Esto también funciona cuando las fechas incluyen horas.
¿Cuándo conviene usar ARRAYFORMULA?
Usa ARRAYFORMULA cuando necesites aplicar una clasificación o una condición a muchas filas al mismo tiempo. Por ejemplo, puede devolver 1 o 0 según si cada registro pertenece a un mes determinado. Después puedes sumar esa columna auxiliar con SUMIFS u otra función de agregación.
¿Por qué mi fórmula mensual devuelve cero?
Las causas más comunes son que el encabezado mensual sea texto, que las fechas de origen estén almacenadas como texto o que el criterio de estado no coincida exactamente. Comprueba el encabezado con ISNUMBER, revisa el formato de las fechas y confirma que el texto del estado sea idéntico al valor de la columna de origen.