Por exemplo, se Assumptions!$B$3 contiver 01/09/2026, esta fórmula conta os bookings de setembro em um modelo de plano anual:
=COUNTIFS(
'Bookings'!$B$2:$B, ">=" & Assumptions!$B$3,
'Bookings'!$B$2:$B, "<" & EDATE(Assumptions!$B$3, 1),
'Bookings'!$F$2:$F, "Closed Won"
)
O limite < para o mês seguinte é importante. Ele inclui registros como 30/09/2026 23:59:59 sem depender de um horário final do dia. Esse é um ponto em que fórmulas aparentemente corretas acabam excluindo registros do CRM feitos no fim do expediente.
O Google documenta COUNTIF como uma função de contagem com um único critério e COUNTIFS como sua equivalente para múltiplos critérios. O Google também explica que ARRAYFORMULA expande resultados para várias células, mas não transforma automaticamente toda função de agregação em um cálculo linha a linha. A documentação do Google para COUNTIF e a documentação para COUNTIFS deixam essa diferença clara.
Por que Google Sheets COUNTIF ARRAYFORMULA para intervalo mensal falha
A fórmula mais tentadora costuma ser algo como:
=ARRAYFORMULA(COUNTIF('Bookings'!$B$2:$B, ">=" & B$4))
Ela retorna um número, mas não define o fim do mês. Além disso, envolver COUNTIF com ARRAYFORMULA não faz com que a função calcule uma resposta separada para cada mês em B4:M4. Nesse caso, você tem uma única função de agregação tentando gerar 12 agregações. O Google Sheets geralmente retorna uma resposta única ou um resultado que parece correto até chegar o momento de fechar o relatório trimestral.
Um mês é um intervalo, não apenas um critério. Ele precisa de dois limites:
">=" & month_start
"<" & EDATE(month_start, 1)
Use EOMONTH(month_start, 0) somente quando tiver certeza de que a coluna de origem armazena datas sem horários. Em dados operacionais extraídos do HubSpot, Stripe, folha de pagamento ou ERP, timestamps são comuns. O limite no primeiro dia do mês seguinte é mais seguro.
Quando Google Sheets COUNTIF ARRAYFORMULA funciona
COUNTIF com ARRAYFORMULA funciona quando a tarefa não é uma agregação mensal, mas uma classificação linha a linha. Nesse caso, você cria um indicador de inclusão mensal na aba de origem e soma os resultados em outro lugar.
Suponha que Bookings!B:B contenha as datas de fechamento e que Assumptions!$B$3 seja o início do mês. A fórmula abaixo retorna 1 para cada booking fechado como ganho em setembro e 0 nos demais casos:
=ARRAYFORMULA(
IF(
B2:B="",
,
--(
(B2:B>=Assumptions!$B$3) *
(B2:B<EDATE(Assumptions!$B$3,1)) *
(F2:F="Closed Won")
)
)
)
Isso é útil quando o modelo precisa de uma coluna auxiliar auditável para uma ponte de margem de contribuição por SKU ou para alimentar um DCF preparado para investidores e bancos. Porém, não é a forma mais simples de preencher as células mensais de um relatório.
A documentação do Google para ARRAYFORMULA descreve a função como uma forma de exibir valores em várias linhas ou colunas. É exatamente isso que acontece na abordagem da coluna auxiliar.
A fórmula mensal mais confiável para FP&A
Para uma linha de cabeçalhos mensais em Returns Analysis!C$4:N$4, use a fórmula abaixo em C18 e copie para a direita:
=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
)
Se B18 contiver Enterprise, a fórmula retornará a contagem mensal desse segmento. O mesmo limite mensal pode ser usado em um roll-forward de receita:
=SUMIFS(
'P&L'!C:C,
'P&L'!B:B, ">=" & Assumptions!$B$3,
'P&L'!B:B, "<" & EDATE(Assumptions!$B$3,1)
)
A contagem não substitui o cálculo de receita, mas funciona como um controle rápido para validar fechamentos, receita reconhecida, margem bruta e mudanças em múltiplos de EBITDA. Também ajuda a identificar quando um filtro de data foi alterado entre o CRM, o P&L e o dashboard de KPIs.
COUNTIFS, coluna auxiliar ou QUERY
| Abordagem | Melhor uso | Ponto fraco | Regra prática |
|---|---|---|---|
COUNTIFS com limites de data | Grade mensal de reporting, aba de KPIs e board pack | Repete os critérios em cada célula | Escolha padrão para modelos de 12 a 60 meses |
Coluna auxiliar com ARRAYFORMULA | Trilha de auditoria, classificação linha a linha e SUMIFS posteriores | Adiciona uma coluna na aba de origem | Use quando os revisores precisam entender por que uma linha foi incluída |
QUERY com meses agrupados | Resumo pontual de transações ou criação de uma nova tabela mensal | Formatação de datas e layout podem ser frágeis | Use para análise, não como base de demonstrações vinculadas |
COUNTIF com ARRAYFORMULA | Uma única condição aplicada a um intervalo expandido | Não expressa sozinho uma janela mensal confiável | Evite em relatórios baseados em intervalo mensal |
O ponto menos óbvio é a manutenção do modelo. Uma QUERY pode gerar uma tabela mensal organizada, mas uma linha de COUNTIFS vinculada aos cabeçalhos dos períodos costuma exigir menos ajustes quando entra um novo ano de forecast, uma nova versão de cenário ou um calendário contábil diferente.
Em uma aba com muitas linhas de dados operacionais, limite os intervalos ao volume esperado, como $B$2:$B$50000, em vez de recalcular uma coluna inteira sempre que alguém altera uma premissa. Isso reduz o custo de processamento em modelos compartilhados.
O Google Sheets suporta até 10 milhões de células por planilha, de acordo com os limites de tamanho de arquivos do Google. Esse limite não significa que referências a colunas inteiras sejam a melhor escolha para modelos usados por várias pessoas.
Uma armadilha do calendário que muda o resultado
Se C$4 exibe set-26, mas é texto em vez de uma data real, a fórmula pode retornar 0 sem apresentar um erro evidente. Teste com:
=ISNUMBER(C$4)
O resultado precisa ser TRUE. Melhor ainda, crie os cabeçalhos mensais com uma fórmula como:
=EDATE(Assumptions!$B$3, COLUMN()-COLUMN($C$4))
Depois, formate a linha como mmm-aa. Assim, os intervalos mensais serão alimentados por datas reais, não por rótulos que apenas parecem datas.
Em setembro de 2026, este continua sendo o padrão mais confiável para contagens mensais baseadas em datas no Google Sheets: datas reais no primeiro dia de cada mês, >= para o limite inicial e < EDATE(month_start,1) para o limite final. A mesma lógica funciona em um board pack trimestral, em um relatório de NF-e ou em uma análise de runway baseada no ritmo de contratação.
Perguntas frequentes
COUNTIF funciona para contar um mês específico?
Funciona para condições simples, mas um mês exige um limite inicial e outro final. Para datas, prefira COUNTIFS com >= no primeiro dia do mês e < no primeiro dia do mês seguinte.
ARRAYFORMULA transforma COUNTIF em uma contagem para cada mês?
Não automaticamente. ARRAYFORMULA expande resultados em linhas ou colunas, mas não cria várias agregações mensais a partir de uma única chamada de COUNTIF.
Devo usar EOMONTH ou EDATE?
Use EDATE com o primeiro dia do mês seguinte quando os dados puderem conter horários. Essa abordagem inclui todos os timestamps do mês sem exigir o cálculo do último segundo do dia.
Por que a fórmula retorna zero mesmo com registros no mês?
Verifique se o cabeçalho contém uma data real com ISNUMBER, se a coluna de origem não armazena datas como texto e se os intervalos usados nos critérios têm o mesmo tamanho.
Se você recebeu um modelo em que a lógica de datas está espalhada entre P&L, Fluxo de Caixa e uma exportação bruta do CRM, o ModelMonkey pode inspecionar os intervalos vinculados e destacar filtros mensais que usam limites diferentes. Experimente o ModelMonkey grátis por 14 dias, com suporte para Google Sheets e Excel.