Pular para o conteúdo principal

Dominando COUNTIF() no Power BI: uma abordagem com DAX

Usuários de Power BI que vêm do Excel percebem que a plataforma não tem uma função COUNTIF() nativa. Este artigo mostra várias formas de implementar COUNTIF() no Power BI e casos de uso práticos.
Atualizado 17 de set. de 2026  · 11 min lido

Explorar com IA

ChatGPTClaudePerplexity

A função COUNTIF() é popular entre usuários do Excel porque permite contar dados com base em uma condição. Porém, ao migrar para o Power BI, muitos notam que ele não tem uma função nativa COUNTIF().

Felizmente, é possível reproduzir a funcionalidade de COUNTIF() usando diversas fórmulas DAX (Data Analysis Expressions). Este artigo mostra como chegar a cálculos no Power BI no estilo COUNTIF() com funções DAX como CALCULATE(), COUNTROWS(), COUNTA() e FILTER().

Por que COUNTIF() não existe no Power BI

Diferente do Excel, que se baseia em fórmulas por célula, o Power BI foi construído em torno de cálculos por tabela e contexto de filtro. Ele opera sobre tabelas e seus relacionamentos, usando DAX para os cálculos. 

Em vez de referenciar células individuais, o DAX trabalha com colunas e aplica cálculos dinamicamente com base no contexto de filtro — que é determinado por segmentações, filtros de linha/coluna e relacionamentos entre tabelas. 

COUNTIF() no Excel usa uma abordagem por célula, em que as fórmulas são aplicadas linha a linha em um intervalo. No Power BI é diferente: ele usa os relacionamentos entre tabelas para refinar os cálculos. Em vez de varrer células, aplica filtros com base no contexto do relatório usando DAX. 

Implicações para o usuário

Se você vem do Excel, precisa se adaptar ao modelo de cálculo por tabela do Power BI. As abordagens em DAX, que operam nas colunas, tendem a ser mais eficientes do que iterações linha a linha. 

Ao contrário do Excel, no Power BI você precisa escolher o método mais adequado para replicar o COUNTIF() de acordo com o seu modelo de dados. Ou seja: é hora de desaprender o hábito de aplicar fórmulas em células isoladas e passar a pensar em tabelas e contextos de filtro.

Funções DAX essenciais para replicar a lógica do COUNTIF()

A forma de implementar COUNTIF() no Power BI depende de fatores como o relacionamento entre tabelas, a presença ou não de valores ausentes, o tamanho do conjunto de dados e assim por diante. Algumas funções DAX são mais otimizadas para processamento rápido e eficiente.  

Visão geral das funções-chave

As funções DAX são usadas para criar colunas calculadas, medidas e tabelas. Veja algumas que ajudam a replicar a funcionalidade de COUNTIF() no Power BI.

  • CALCULATE(): usada para modificar o contexto de filtro de uma expressão, permitindo aplicar novos filtros ou alterar os existentes de forma dinâmica. Por exemplo, você pode calcular o total de vendas de uma região específica. 

  • COUNTROWS(): conta o número de linhas de uma tabela e pode ser combinada com funções de filtro para contar linhas específicas. Exemplo: contar pedidos de vendas acima de US$ 1.000.

  • COUNTA(): conta valores não vazios em uma coluna e é útil ao lidar com dados faltantes. Exemplo: contar IDs de clientes não vazios, garantindo que apenas registros válidos sejam considerados. 

  • FILTER(): geralmente usada com CALCULATE() e COUNTROWS(), retorna uma tabela com base em uma condição. Exemplo: retornar pedidos com valor acima de US$ 500.

  • ALLEXCEPT(): remove todos os filtros aplicados, exceto os especificados; por exemplo, retornar uma tabela de vendas por região mesmo com segmentações ou filtros aplicados. Importante em agregações em hierarquias.

  • RELATEDTABLE(): retorna uma tabela com base em relacionamentos existentes. Exemplo: contar o número de pedidos por cliente usando o relacionamento com a tabela de clientes.

Como elas funcionam juntas

Como COUNTROWS() conta o número de linhas de uma tabela, você pode retornar uma tabela que atenda a uma condição usando FILTER(). Em seguida, use CALCULATE() para modificar o contexto de filtro, garantindo que COUNTROWS() considere apenas as linhas que atendem à condição. Veja um exemplo de sintaxe DAX mostrando isso na prática.

Sales over 5 quantities = 
CALCULATE(
    COUNTROWS(Sales), 
    FILTER('Sales, 'Sales[Quantity] > 5)
)

A função CALCULATE() funciona como combinar duas expressões. Em vez de COUNTROWS() contar todos os dados, CALCULATE() restringe a contagem ao contexto de filtro definido por FILTER()

Exemplos básicos de equivalentes ao COUNTIF() no Power BI

Antes de ver alguns exemplos de como implementar COUNTIF() no Power BI, carregue os dados de vendas de supermercado

Exemplo 1: número de pedidos por clientes do gênero feminino

A sintaxe DAX abaixo calcula o número de pedidos feitos por clientes do gênero feminino.

Orders by female customers = 
CALCULATE(
    COUNTROWS(Sales), 
    FILTER(Sales, Sales[Gender] = "Female")
)

Imagem mostrando o total de pedidos por clientes do gênero feminino.

Número de pedidos por clientes do gênero feminino. Imagem do autor.

  • FILTER(Sales, Sales[Gender] = "Female") filtra os pedidos feitos por clientes do gênero feminino.

  • COUNTROWS(Sales), em vez de contar todos os dados, conta a tabela filtrada graças ao CALCULATE().

Exemplo 2: contando pedidos por cidade

Abaixo, a sintaxe DAX para contar o número de pedidos em cada cidade.

Total Orders by City = CALCULATE(COUNTA(Sales[City]), ALLEXCEPT(Sales, Sales[City]))

Imagem mostrando o total de pedidos por cidade.

Número de pedidos por cidade. Imagem do autor.

  • ALLEXCEPT(Sales, Sales[City]) remove todos os filtros da tabela Sales, exceto o da coluna City.

  • CALCULATE() garante que COUNTA() seja calculado separadamente para cada cidade, agindo como um COUNTIF() do Excel.

Exemplo 3: método alternativo usando COUNTROWS

Outra alternativa é usar a sintaxe DAX abaixo, com COUNTROWS() em vez de COUNTA().

Total Orders by City = CALCULATE(COUNTROWS(Sales), ALLEXCEPT(Sales, Sales[City]))

COUNTROWS() conta o número de linhas na tabela Sales, independentemente da presença de vazios. 

Se a coluna City não tiver vazios, ambas as abordagens retornam o mesmo resultado. Mas, se houver valores ausentes em City, COUNTA() os exclui, enquanto COUNTROWS() os inclui.

Use COUNTROWS() quando cada linha representar um registro (por exemplo, um pedido). Se houver entradas inválidas, use COUNTA(), que conta apenas registros com valor válido. 

Usando medidas para cálculos dinâmicos

Há situações em que você precisa criar medidas que mudam dinamicamente conforme filtros de tabela ou segmentações. Esta seção mostra como implementar COUNTIF() nesses cenários.

Cenário: contando pedidos de alto valor

Exemplo em que queremos saber os pedidos com quantidade total maior que cinco.

High Value Orders = COUNTROWS(FILTER(Sales, Sales[Quantity] > 5))

Imagem mostrando o número de pedidos de alto valor.

Número de pedidos de alto valor. Imagem do autor.

  • FILTER(Sales, Sales[Quantity] > 5) retorna os pedidos com quantidade maior que cinco.

  • COUNTROWS()  conta as linhas da tabela filtrada com pedidos acima de cinco.

Diferente das colunas calculadas, que aumentam o tamanho do modelo, medidas são calculadas sob demanda, sendo mais eficientes. A sintaxe DAX para criar uma coluna calculada ficaria assim:

 High Value = IF(Sales[Quantity] > 5, 1, 0)

Imagem mostrando a coluna calculada high value. Imagem do autor.

Coluna calculada High Value. Imagem do autor.

Isso armazena 1 ou 0 estático em cada linha. Para contar os pedidos de alto valor, você precisaria criar uma medida com SUM(Sales[High Value]). 

Imagine criar colunas calculadas para cada filtro. Isso aumentaria o uso de armazenamento e reduziria a flexibilidade. 

Aqui vai uma tabela que explica por que vale priorizar medidas em vez de colunas calculadas.

Medida

Coluna calculada

Calculada no momento da consulta, responde a filtros

Estática, calculada ao carregar/atualizar os dados

Mais eficiente, computada apenas quando necessário

Consome armazenamento e aumenta o tamanho do modelo

Ajusta-se dinamicamente a filtros, segmentações e visuais

Os valores só mudam quando os dados são atualizados. 

Técnicas avançadas e múltiplas condições

O COUNTIFS() do Excel suporta múltiplas condições — algo que você também pode reproduzir no Power BI.

Vários critérios / lógica de COUNTIFS()

Aqui está uma sintaxe DAX para contar pedidos com quantidade acima de cinco, pagos com cartão de crédito. 

Quantity Above 5 and Credit Card = 
COUNTROWS(
    FILTER(
        Sales, 
        Sales[Quantity] > 5 && Sales[Payment] = "Credit card"
    )
)

Imagem mostrando número de pedidos com quantidade acima de cinco e pagos com cartão de crédito.

Número de pedidos com quantidade acima de cinco e pagos com cartão de crédito. Imagem do autor.

A fórmula acima filtra a tabela Sales para onde a quantidade é maior que 5 e a forma de pagamento é cartão de crédito. O && representa o operador E (AND), garantindo que apenas pedidos que atendem às duas condições sejam contados.

Se você quer contar pedidos que atendam a qualquer uma das condições, use o operador OU (OR), representado por || no DAX.

Quantity Above 5 or Credit Card = 
COUNTROWS(
    FILTER(
        Sales, 
        Sales[Quantity] > 5 || Sales[Payment] = "Credit card"
    )
)

Imagem mostrando pedidos com quantidade acima de cinco ou pagos com cartão de crédito.

Número de pedidos com quantidade acima de cinco ou pagos com cartão de crédito. Imagem do autor.

Usando operadores lógicos e variáveis

Sintaxes DAX que replicam COUNTIF() às vezes ficam complexas. Variáveis ajudam na legibilidade, garantem a ordem desejada de avaliação e evitam cálculos redundantes ao armazenar valores uma única vez. 

Veja outro exemplo para contar pedidos feitos por clientes do gênero feminino, pagos com cartão de crédito ou com quantidade acima de cinco, usando variáveis.

CreditCard Or Above 5 By Female = 
VAR FilteredSales = 
    FILTER(
        Sales,
        (Sales[Quantity] > 5 || Sales[Payment] = "Credit card") 
        && Sales[Gender] = "Female"
    )
RETURN 
    COUNTROWS(FilteredSales)

Imagem mostrando o número de pedidos por clientes do gênero feminino pagos com cartão de crédito ou com quantidade acima de cinco.

Número de pedidos por clientes do gênero feminino, pagos com cartão de crédito ou com quantidade acima de cinco. Imagem do autor.

O filtro é armazenado em uma variável usada em COUNTROWS(). Eis outra forma de escrever a expressão acima:

CreditCard Or Above 5 By Female = 
VAR MinQuantity = 5
VAR FilteredSales = 
    FILTER(
        Sales,
        (Sales[Quantity] > MinQuantity || Sales[Payment] = "Credit card") 
        && Sales[Gender] = "Female"
    )
VAR Result = COUNTROWS(FilteredSales)
RETURN 
    Result

Desta vez, a quantidade mínima, o filtro e o resultado foram armazenados como variáveis. Assim como a regra de precedência em matemática prioriza o que está entre parênteses, o DAX também prioriza as condições entre parênteses. 

No exemplo acima, o operador OU || é avaliado antes do operador E && por estar dentro de parênteses. Isso significa que primeiro são filtrados os pedidos com quantidade acima de 5 ou pagos com cartão, para depois filtrar apenas os de clientes do gênero feminino. 

COUNTIF() entre tabelas relacionadas

Se estiver trabalhando com mais de uma tabela, você pode usar COUNTROWS() ou COUNTA() para contar registros com base em uma condição atendida na outra tabela usando RELATEDTABLE()

A função RELATEDTABLE() respeita o relacionamento do modelo entre duas tabelas, seja um-para-um ou um-para-muitos.

Suponha que exista outra tabela de vendas chamada Sales2, ainda com os mesmos dados de supermercado, e que Sales e Sales2 estejam relacionadas por Invoice ID

Imagem mostrando o relacionamento entre as tabelas Sales e Sales2.

Relacionamento entre as tabelas Sales e Sales2. Imagem do autor.

Você pode usar a sintaxe DAX abaixo para ver quantos clientes são membros, assumindo que Sales não tem a coluna Customer type, mas Sales2 tem.

Orders by members = 
COUNTROWS(FILTER(RELATEDTABLE(Sales2), Sales2[Customer Type] = "Member"))

Imagem mostrando o total de pedidos por clientes que são membros

Número de pedidos por clientes que são membros. Imagem do autor.

  • RELATEDTABLE(Sales2)  filtra automaticamente Sales2 para incluir apenas as linhas com o mesmo Invoice ID presentes em Sales.

  • A função FILTER() refina ainda mais para apenas pedidos de "Member", enquanto COUNTROWS() conta a tabela filtrada. 

Casos de uso práticos e dicas de integração

Veja alguns casos de uso e dicas de integração para implementar COUNTIF() no Power BI.

Cenários do mundo real

Se você tem uma tabela de resultados de provas ou de pedidos, pode usar COUNTROWS() e FILTER() para contar o número de registros repetidos. Usando a coluna de notas, também dá para contar quantos alunos foram aprovados ou reprovados. Outro equivalente importante ao COUNTIF() é o SUMX(), que permite somar notas dos alunos com base em uma condição. 

Ferramentas de integração de dados

Em vez de subir sua planilha do Excel ou Google Sheets manualmente para análise, você pode usar ferramentas como o Coupler.io para automatizar a extração de dados. 

Sempre que a planilha for atualizada, o seu dashboard no Power BI reflete automaticamente as mudanças — sem uploads manuais. 

Isso garante que o Power BI mostre sempre os dados mais recentes, liberando você para focar em gerar insights e tomar decisões. Também dá para usar essas ferramentas externas para conectar múltiplas fontes em um único dashboard. 

Dicas de experiência para legibilidade e performance

Use colunas calculadas quando cálculos precisarem ser feitos no nível da linha antes das agregações. Use medidas quando o cálculo depender de filtros/segmentações escolhidos pelo usuário ou quando você precisar de um valor agregado em vez de cálculo por linha. 

Entender o contexto de filtro é essencial para decidir entre medida e coluna calculada. O contexto de filtro se aplica quando há segmentações, filtros ou agrupamentos; já o contexto de linha se aplica dentro de uma linha da tabela. Colunas calculadas usam contexto de linha e podem criar colunas desnecessárias, aumentando o uso de memória. 

Também é importante considerar o contexto de filtro ao criar medidas. Por exemplo, em vez de SUM(Sales[Amount]), use CALCULATE(SUM(Sales[Amount])) para controlar a filtragem. Se já houver filtro aplicado, você pode não obter o valor correto com a primeira opção; com a segunda, você controla os filtros dentro do CALCULATE()

Evite também usar muitos iteradores, como FILTER(), na mesma expressão DAX, pois eles tornam grandes volumes de dados mais lentos por iterarem linha a linha.

Conclusão

Embora o COUNTIF() nativo do Excel não exista no Power BI, funções DAX como CALCULATE(), COUNTROWS(), COUNTA() e FILTER() permitem replicar essa funcionalidade.

A abordagem ideal depende da natureza dos seus dados. Se houver valores ausentes, considere COUNTA(); se seus dados estiverem completos, use COUNTROWS(). Para ignorar filtros externos aplicados aos dados, use ALLEXCEPT() dentro de CALCULATE().

Lembre-se: a forma como você escreve o DAX impacta a velocidade de carregamento dos visuais no dashboard. Busque otimizar suas expressões e saiba quando usar medidas ou colunas calculadas. Aqui estão alguns recursos da DataCamp para explorar outras técnicas DAX avançadas. 

Torne-se um analista de dados do Power BI

Domine a ferramenta de business intelligence mais popular do mundo.

Comece a Aprender De Graça

Adejumo Ridwan Suleiman's photo
Author
Adejumo Ridwan Suleiman
LinkedIn

Instrutor experiente em ciência de dados e bioestatístico com experiência em Python, R e machine learning.

Power BI Countif() — perguntas frequentes

O Power BI tem uma função COUNTIF() nativa?

O Power BI não possui uma função nativa COUNTIF(), mas há várias formas de implementá-la no Power BI.

Quais são as funções para implementar COUNTIF() no Power BI?

As principais funções para implementar COUNTIF() no Power BI são CALCULATE(), COUNTROWS(), COUNTA(), FILTER(), ALLEXCEPT() e RELATEDTABLE(). Dependendo do seu modelo de dados, você pode combinar essas funções para implementar COUNTIF() no Power BI.

Qual é a diferença entre COUNTROWS() e COUNTA()?

COUNTROWS() conta o número de linhas de uma tabela, independentemente de a linha ter um registro válido; já COUNTA() conta a quantidade de registros válidos em uma coluna.

Qual é a vantagem de usar medidas em vez de colunas calculadas?

Medidas são mais eficientes e quase não consomem armazenamento, pois são calculadas sob demanda, ao contrário de colunas calculadas, que aumentam a dimensão do modelo e consomem espaço.

Quais são as aplicações práticas da implementação de COUNTIF() no Power BI?

A implementação de COUNTIF() no Power BI tem vários usos, desde contagens condicionais de registros até a criação de colunas condicionais baseadas em contagem, entre outros.

Tópicos
Power BI
Data Analysis

Aprenda com a DataCamp

Curso

Introdução ao DAX no Power BI

3 h
183.5K
Aprimore seu conhecimento em Power BI aprendendo os fundamentos de DAX, como colunas calculadas, tabelas e medidas.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

FUNÇÃO SQL COUNT()

COUNT() permite que você conte o número de linhas que correspondem a determinadas condições. Saiba como usá-lo neste tutorial.
Travis Tang 's photo

Travis Tang

3 min

Tutorial

Tutorial do Power BI Calculate

Aprenda a usar a função CALCULATE do Power BI e dê exemplos de como você pode usá-la.
Joleen Bothma's photo

Joleen Bothma

6 min

Tutorial

Criando e personalizando tabelas dinâmicas no Power BI

Saiba como criar tabelas dinâmicas personalizáveis no Power BI com formatação condicional avançada e algumas dicas de otimização.
Joleen Bothma's photo

Joleen Bothma

9 min

Tutorial

Como usar as funções SUMX do Power BI

Explore a função SUMX no Power BI, sua sintaxe, como ela funciona e as práticas recomendadas que você deve ter em mente.
Joleen Bothma's photo

Joleen Bothma

8 min

Tutorial

Tutorial do Power BI para iniciantes

Aprenda os conceitos básicos do Power BI e como criar um relatório básico com este tutorial passo a passo.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Como criar tabelas de datas no Power BI Tutorial

Saiba como criar tabelas de datas no Power BI com este tutorial visual passo a passo.
Kafaru Simileoluwa's photo

Kafaru Simileoluwa

12 min

Ver MaisVer Mais