Ir al contenido principal

Domina COUNTIF() en Power BI: un enfoque basado en DAX

Quienes vienen de Excel descubren que Power BI no tiene una función COUNTIF() nativa. Este artículo muestra distintas formas de implementarla en Power BI y casos de uso prácticos.
Actualizado 17 sept 2026  · 11 min leer

Explorar con IA

ChatGPTClaudePerplexity

La función COUNTIF() es muy popular entre quienes usan Excel porque permite contar datos según una condición. Sin embargo, al pasarse a Power BI, muchos usuarios descubren que Power BI no incluye una función COUNTIF() nativa.

Por suerte, puedes replicar la funcionalidad de COUNTIF() con distintas fórmulas DAX (Data Analysis Expressions). En este artículo te guiamos para lograr cálculos tipo COUNTIF() en Power BI con funciones DAX como CALCULATE(), COUNTROWS(), COUNTA() y FILTER().

Por qué COUNTIF() no existe en Power BI

A diferencia de Excel, que se basa en fórmulas por celdas, Power BI gira en torno a cálculos por tablas y al contexto de filtros. Opera sobre tablas y sus relaciones, utilizando DAX para los cálculos. 

En lugar de referenciar celdas individuales, DAX trabaja con columnas y aplica los cálculos de forma dinámica según el contexto de filtro, que viene determinado por segmentaciones, filtros de filas/columnas y relaciones entre tablas. 

COUNTIF() en Excel usa un enfoque por celdas, aplicando fórmulas fila a fila dentro de un rango. El enfoque de Power BI es distinto: aprovecha las relaciones entre tablas para refinar los cálculos. En vez de recorrer celdas, aplica filtros en función del contexto del informe usando DAX. 

Implicaciones para los usuarios

Si vienes de Excel, tendrás que adaptarte al enfoque por tablas de Power BI. Los métodos DAX, que operan sobre columnas, son más eficientes que las iteraciones fila a fila. 

A diferencia de Excel, en Power BI debes elegir el método más adecuado para replicar COUNTIF() según tu modelo de datos. Es decir, hay que desaprender el hábito de aplicar fórmulas a celdas sueltas y pensar en tablas y contextos de filtro.

Funciones DAX clave para replicar la lógica de COUNTIF()

La forma de implementar COUNTIF() en Power BI depende de factores como las relaciones entre tablas, la presencia o no de valores faltantes, el tamaño de los datos, etc. Algunas funciones DAX están mejor optimizadas y procesan más rápido y con más eficiencia.  

Resumen de funciones clave

Las funciones DAX se usan para crear columnas calculadas, medidas y tablas. Estas funciones te ayudarán a replicar la funcionalidad de COUNTIF() en Power BI.

  • CALCULATE(): modifica el contexto de filtro de una expresión y permite aplicar nuevos filtros o cambiar los existentes de forma dinámica. Por ejemplo, puedes usarla para calcular las ventas totales de una región concreta. 

  • COUNTROWS(): cuenta el número de filas de una tabla dada, y puedes combinarla con funciones de filtrado para contar filas específicas. Un ejemplo sería contar pedidos de venta superiores a 1.000 $.

  • COUNTA(): cuenta valores no vacíos en una columna y es útil cuando hay datos faltantes. Por ejemplo, puedes contar IDs de cliente no vacíos para asegurarte de que solo se consideran registros válidos. 

  • FILTER(): normalmente se usa con CALCULATE() y COUNTROWS(); devuelve una tabla según una condición. Por ejemplo, puedes devolver una tabla con pedidos de venta por encima de 500 $.

  • ALLEXCEPT(): elimina todos los filtros aplicados excepto los que se especifiquen; por ejemplo, puedes devolver una tabla de ventas totales por región aunque haya segmentaciones o filtros de tabla. Es clave cuando trabajas con agregaciones en jerarquías.

  • RELATEDTABLE(): devuelve una tabla según relaciones existentes. Un ejemplo sería contar los pedidos de cada cliente usando las relaciones del dato de clientes.

Cómo trabajan juntas

Como COUNTROWS() cuenta las filas de una tabla, puedes construir una tabla que cumpla una condición con FILTER(). Luego usa CALCULATE() para modificar el contexto de filtro y asegurar que COUNTROWS() solo considere las filas que cumplen la condición. Aquí tienes un ejemplo de sintaxis DAX:

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

La función CALCULATE() actúa como una combinación de expresiones. En lugar de usar COUNTROWS() para contar todos los datos, CALCULATE() lo restringe al contexto de filtro definido con FILTER()

Ejemplos básicos de equivalentes a COUNTIF() en Power BI

Antes de ver algunos ejemplos de cómo implementar COUNTIF() en Power BI, asegúrate de cargar los datos de ventas de un supermercado

Ejemplo 1: número de pedidos de clientas

La sintaxis DAX siguiente calcula el número de pedidos realizados por clientas.

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

Imagen que muestra el número total de pedidos de clientas.

Número de pedidos de clientas. Imagen del autor.

  • FILTER(Sales, Sales[Gender] = "Female") filtra los pedidos realizados por clientas.

  • COUNTROWS(Sales), en lugar de contar toda la tabla, cuenta la tabla filtrada gracias a CALCULATE().

Ejemplo 2: contar pedidos por ciudad

A continuación, una sintaxis DAX para contar el número de pedidos por ciudad.

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

Imagen que muestra el número total de pedidos por ciudad.

Número de pedidos por ciudad. Imagen del autor.

  • ALLEXCEPT(Sales, Sales[City]) elimina todos los filtros de la tabla Sales excepto el de la columna City.

  • CALCULATE() garantiza que COUNTA() se calcule por separado para cada ciudad, actuando como un COUNTIF() de Excel.

Ejemplo 3: método alternativo con COUNTROWS

Otra alternativa es usar la siguiente sintaxis DAX, que emplea COUNTROWS() en lugar de COUNTA().

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

COUNTROWS() cuenta el número de filas de la tabla Sales independientemente de si hay vacíos. 

Si la columna City no tiene valores vacíos, ambos enfoques devuelven el mismo resultado. Si hay valores faltantes en City, COUNTA() los excluye, mientras que COUNTROWS() los incluye.

Usa COUNTROWS() cuando cada fila represente un registro (por ejemplo, un pedido). Si hay entradas no válidas, puedes emplear COUNTA(), que solo cuenta registros con un valor válido. 

Uso de medidas para cálculos dinámicos

Hay situaciones en las que necesitas crear medidas que cambien dinámicamente según un filtro o segmentación. En esta sección vemos cómo implementar COUNTIF() en esos casos.

Escenario: contar pedidos de alto valor

Aquí tienes un ejemplo en el que nos interesan los pedidos con una cantidad total superior a cinco.

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

Imagen que muestra el número de pedidos de alto valor.

Número de pedidos de alto valor. Imagen del autor.

  • FILTER(Sales, Sales[Quantity] > 5) devuelve los pedidos con cantidad superior a cinco.

  • COUNTROWS() cuenta las filas de la tabla filtrada con pedidos superiores a cinco.

A diferencia de las columnas calculadas, que al crearlas aumentan el tamaño del modelo y el almacenamiento, las medidas solo se calculan cuando hacen falta, por lo que son más eficientes. La sintaxis DAX para crear una columna calculada sería:

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

Imagen que muestra la columna calculada High Value. Imagen del autor.

Columna calculada High Value. Imagen del autor.

Esto almacenaría un 1 o un 0 estático en cada fila. Para contar los pedidos de alto valor, deberías crear una medida con SUM(Sales[High Value]). 

Imagina crear columnas calculadas para cada filtro: aumentarías el almacenamiento y perderías flexibilidad. 

Aquí tienes una tabla que resume por qué conviene priorizar medidas frente a columnas calculadas.

Medida

Columna calculada

Se calcula en tiempo de consulta; responde a filtros

Estática; se calcula al cargar/actualizar los datos

Más eficiente; se computa solo cuando es necesaria

Consume almacenamiento y aumenta el tamaño del modelo

Se ajusta dinámicamente según filtros, segmentaciones y visuales

Los valores no cambian salvo que se actualicen los datos. 

Técnicas avanzadas y múltiples condiciones

En Excel, COUNTIFS() admite múltiples condiciones, algo que también puedes replicar en Power BI.

Criterios múltiples / lógica COUNTIFS()

Esta sintaxis DAX cuenta los pedidos con cantidad superior a cinco y pagados con tarjeta de crédito. 

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

Imagen que muestra el número de pedidos con cantidad superior a cinco y pagados con tarjeta de crédito.

Número de pedidos con cantidad superior a cinco y pagados con tarjeta de crédito. Imagen del autor.

La fórmula filtra la tabla Sales donde la cantidad supera 5 y el método de pago es tarjeta de crédito. && representa el operador AND, y garantiza que solo se cuenten los pedidos que cumplen ambas condiciones.

Si te interesan los pedidos que cumplan cualquiera de las condiciones, usa el operador OR, representado por || en DAX.

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

Imagen que muestra los pedidos con cantidad superior a cinco o pagados con tarjeta de crédito.

Número de pedidos con cantidad superior a cinco o pagados con tarjeta de crédito. Imagen del autor.

Uso de operadores lógicos y variables

La sintaxis DAX que replica COUNTIF() puede complicarse. Usar variables facilita la lectura, asegura que las condiciones se evalúan en el orden deseado y evita cálculos redundantes al almacenar valores una sola vez. 

Aquí tienes otro ejemplo para contar los pedidos de clientas, pagados con tarjeta de crédito o con cantidad superior a cinco, usando variables.

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

Imagen que muestra el número de pedidos de clientas pagados con tarjeta de crédito o con cantidad superior a cinco.

Número de pedidos de clientas pagados con tarjeta de crédito o con cantidad superior a cinco. Imagen del autor.

El filtro se almacena en una variable que luego usa COUNTROWS(). Otra forma de escribir la expresión sería:

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

Esta vez, la cantidad mínima, el filtro y el resultado se guardan como variables. Igual que el principio matemático de prioridad de paréntesis, DAX también prioriza las condiciones que están entre paréntesis. 

En el ejemplo anterior, el operador OR || se evalúa antes que el operador AND && porque está dentro de un paréntesis. Es decir, primero se filtran los pedidos con cantidad superior a 5 o pagados con tarjeta y después se filtran los de clientas. 

COUNTIF() entre tablas relacionadas

Si trabajas con más de una tabla, también puedes usar COUNTROWS() o COUNTA() para contar registros según una condición de otra tabla con RELATEDTABLE()

La función RELATEDTABLE() tiene en cuenta la relación del modelo entre dos tablas, ya sea de uno a uno o de uno a muchos.

Imagina que tenemos otra tabla de ventas llamada Sales2 con los mismos datos del supermercado, y que Sales y Sales2 están relacionadas por Invoice ID

Imagen que muestra la relación entre las tablas Sales y Sales2.

Relación entre las tablas Sales y Sales2. Imagen del autor.

Puedes usar esta sintaxis DAX para ver cuántos clientes son miembros, suponiendo que Sales no tiene la columna Customer type pero Sales2 sí.

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

Imagen que muestra el número total de pedidos de clientes que son miembros

Número de pedidos de clientes que son miembros. Imagen del autor.

  • RELATEDTABLE(Sales2)  filtra automáticamente Sales2 para incluir solo las filas con el mismo Invoice ID que en Sales.

  • La función FILTER() lo reduce aún más a pedidos de tipo "Member", mientras que COUNTROWS() cuenta la tabla filtrada. 

Casos de uso y consejos de integración

Aquí tienes algunos casos prácticos y consejos de integración para implementar COUNTIF() en Power BI.

Escenarios reales

Si tienes una tabla con resultados de exámenes o pedidos, puedes usar COUNTROWS() y FILTER() para contar registros repetidos. Usando la columna de notas, también puedes contar cuántos estudiantes aprueban o suspenden. Otro equivalente importante a COUNTIF() es SUMX(), que te permite sumar notas en función de una condición. 

Herramientas de integración de datos

En lugar de subir siempre tu archivo de Excel o Google Sheets para analizarlo, puedes usar herramientas como Coupler.io para automatizar la extracción de datos. 

Cuando se actualice tu hoja de cálculo, los cambios se reflejarán automáticamente en tu panel de Power BI sin tener que subir nada manualmente. 

Así te aseguras de que Power BI siempre muestra el dato más reciente sin cargas manuales, y tú puedes centrarte en obtener insights y tomar decisiones. También puedes usar estas herramientas para conectar múltiples fuentes en un solo panel. 

Consejos prácticos para legibilidad y rendimiento

Usa columnas calculadas cuando los cálculos deban hacerse a nivel de fila antes de las agregaciones. Usa una medida cuando el cálculo dependa de filtros o segmentaciones del usuario, o cuando necesites un valor agregado y no cálculos por fila. 

Entender el contexto de filtro es clave para decidir entre medida o columna calculada. El contexto de filtro aplica con segmentaciones, filtros o agrupaciones, a diferencia del contexto de fila, que aplica dentro de una fila. Las columnas calculadas usan contexto de fila y pueden crear columnas innecesarias que aumentan la memoria. 

También es importante considerar el contexto de filtro al crear medidas. Por ejemplo, en lugar de SUM(Sales[Amount]), usa CALCULATE(SUM(Sales[Amount])) para controlar el filtrado. Si ya tienes filtros aplicados, con la primera opción podrías no obtener el valor correcto; con la segunda, puedes gestionar los filtros aplicados. 

Evita también abusar de iteradores como FILTER() en una misma expresión DAX, ya que en conjuntos grandes ralentizan el cálculo al iterar fila a fila.

Conclusión

Aunque Power BI no incluye el COUNTIF() nativo de Excel, funciones DAX como CALCULATE(), COUNTROWS(), COUNTA() y FILTER() permiten replicar su comportamiento.

El enfoque depende de la naturaleza de tus datos. Si hay valores faltantes, considera COUNTA(); si el dato está completo, COUNTROWS() es una buena opción. Para excluir filtros externos aplicados a los datos, usa ALLEXCEPT() dentro de CALCULATE().

Recuerda que el tipo de sintaxis DAX que escribas influye en la velocidad de carga de los visuales del panel. Intenta escribir DAX optimizado y saber cuándo usar medidas o columnas calculadas. Aquí tienes algunos recursos de DataCamp para explorar técnicas DAX avanzadas. 

Conviértete en Analista de Datos de Power BI

Domina la herramienta de inteligencia empresarial más popular del mundo.

Empieza a Aprender Gratis

Adejumo Ridwan Suleiman's photo
Author
Adejumo Ridwan Suleiman
LinkedIn

Instructor experimentado en ciencia de datos y bioestadístico con experiencia en Python, R y aprendizaje automático.

Power BI Countif() Questions

Does Power BI have a native COUNTIF() function?

Power BI no tiene una función COUNTIF() nativa, pero hay varias formas de implementarla en Power BI.

What are the functions for implementing COUNTIF() in Power BI?

Las funciones principales para implementar COUNTIF() en Power BI son CALCULATE(), COUNTROWS(), COUNTA(), FILTER(), ALLEXCEPT() y RELATEDTABLE(). Según tu modelo de datos, puedes combinarlas para replicar COUNTIF() en Power BI.

What is the difference between COUNTROWS() and COUNTA()?

COUNTROWS() cuenta el número de filas de los datos, aunque alguna no tenga un registro válido, mientras que COUNTA() cuenta el número de registros válidos en una columna.

What is the advantage of using measures over calculated columns?

Las medidas son más eficientes y apenas consumen almacenamiento porque se calculan al vuelo, a diferencia de las columnas calculadas que aumentan la dimensión del dato y consumen espacio.

What are the practical applications of COUNTIF() implementation in Power BI?

La implementación de COUNTIF() en Power BI tiene muchos usos: desde el recuento condicional de registros hasta la creación de columnas condicionadas por conteos, entre otros.

Temas
Power BI
Análisis de datos

Aprende con DataCamp

Curso

Introducción a DAX en Power BI

3 h
183.5K
Profundiza en Power BI y aprende los fundamentos de las expresiones de análisis de datos (DAX), como columnas, tablas y medidas calculados.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

FUNCIÓN SQL COUNT()

COUNT() te permite contar el número de filas que cumplen determinadas condiciones. Aprende a utilizarlo en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

Tutorial

Tutorial de cálculo de Power BI

Aprenda a utilizar la función CALCULAR de Power BI con ejemplos de uso.
Joleen Bothma's photo

Joleen Bothma

6 min

Tutorial

Tutorial de Power BI DAX para principiantes

Aprende qué es DAX y descubre la sintaxis y las funciones DAX fundamentales que necesitarás para llevar tus conocimientos de Power BI al siguiente nivel.
Joleen Bothma's photo

Joleen Bothma

9 min

Tutorial

Creación y personalización de tablas dinámicas en Power BI

Aprende a crear tablas dinámicas personalizables en Power BI con formato condicional avanzado y algunos consejos de optimización.
Joleen Bothma's photo

Joleen Bothma

9 min

Tutorial

Tutorial de Power BI para principiantes

Aprende los fundamentos de Power BI y a crear un informe básico con este tutorial paso a paso.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Cómo hacer un VLOOKUP() con múltiples criterios

Domina el arte de utilizar VLOOKUP() con criterios múltiples en Excel. Explora técnicas avanzadas como las columnas de ayuda y la función ELEGIR().
Laiba Siddiqui's photo

Laiba Siddiqui

10 min

Ver MásVer Más