“Sumar si” en Power BI se interpreta aquí como crear una suma condicional de ventas mediante una medida DAX que combina CALCULATE y SUM. Sirve para obtener el total de un año, una marca, un código u otras condiciones sin filtrar manualmente cada fila. Esta guía funciona con Power BI Desktop y Power BI Service; los datos y ejemplos están comprobados en octubre de 2026.
Qué es sumar si en Power BI y cuándo usarlo
En Power BI no existe una función DAX llamada exactamente “SUMAR.SI”. La suma condicional se construye colocando una operación, como SUM o CONTAR, dentro de CALCULATE. CALCULATE cambia el contexto de evaluación y aplica uno o varios filtros; SUM suma los importes que quedan después de esos filtros.
Para el libro de ejemplo, usaremos una tabla Ventas con las columnas Fecha, Vendedor, Marca, Importe, Código de instalación y Cuenta de margen Y/N?. Cada venta pertenece a un año, una marca y un vendedor. Así podremos sumar por año, contar registros, combinar marca y fecha y agrupar importes por código.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Fecha | Vendedor | Marca | Importe | Código instalación | Margen Y/N? | Total por código |
| 2 | 15/01/2017 | Ana | Veluz | 1.200,00 | 88888 | Y | |
| 3 | 20/03/2017 | Luis | Veluz | 900,00 | 88888 | Y | |
| 4 | 12/07/2018 | Ana | Electronics | 2.500,00 | 77777 | Y | |
| 5 | 05/09/2019 | Marta | Veluz | 2.200,00 | 88888 | N |
Una medida puede responder preguntas como “¿cuánto vendimos en 2017?”, “¿cuántas ventas tuvo Veluz?” o “¿cuánto margen corresponde al código 88888?”. Al colocar la medida en una tarjeta, tabla o gráfico, Power BI recalcula el resultado según los filtros activos en la visualización.
Cómo se relacionan CALCULATE y SUM en una medida DAX
La estructura básica es CALCULATE(<expresión>; <filtro1>; <filtro2>; ...). La operación ocupa el primer argumento y los filtros siguen en el orden en que se escriben. En una medida, no se escribe = delante del nombre de la medida, pero sí dentro de la definición.
SUM: la operación que suma los importes filtrados
SUM (en inglés SUM) suma una expresión o una columna numérica. En DAX se escribe SUM(<expresión>). Cuando se coloca dentro de CALCULATE, SUM evalúa Ventas[Importe] después de aplicar los filtros de la medida.
| Elemento | Función |
|---|---|
| Operación | SUM(Ventas[Importe]) |
| Resultado sin filtro | 6.800,00 |
| Resultado filtrado | Solo suma las filas admitidas por CALCULATE |
| Contexto | Year, marca, vendedor o código seleccionado |
El filtro no se escribe dentro de SUM: se mantiene separado en CALCULATE. Eso permite cambiar el año, la marca o el código sin reescribir la suma.
CALCULATE: el filtro que decide qué filas entran
CALCULATE (en inglés CALCULATE) evalúa su primer argumento en un contexto de filtro modificado. El segundo y siguientes argumentos pueden ser filtros sobre columnas de la misma tabla o de tablas relacionadas.
CALCULATE(
SUM(Ventas[Importe]);
Ventas[Marca] = "Veluz"
)
Este ejemplo conserva las ventas de todos los años y vendedores que pertenecen a Veluz. La suma sería 4.300,00: 1.200,00 + 900,00 + 2.200,00.
Si el filtro se omite, se suma todo:
SUM(Ventas[Importe])
| Parte | Función |
|---|---|
| Función principal | CALCULATE |
| Operación | SUM(Ventas[Importe]) |
| Filtro | Ventas[Marca] = "Veluz" |
| Contexto visual | Puede añadir años, vendedores osegmentsación |
La medida DAX: el cálculo que reutilizarás en Power BI
Para crear la medida, abre Power BI Desktop, selecciona la tabla Ventas y entra en la vista de medidas. Puedes hacerlo desde el menú contextual de la tabla o mediante la barra de herramientas del panel Modelado. Escribe el nombre Ventas Total y pulsa Entrar.
Ventas Total =
SUM(Ventas[Importe])
Después, añade Ventas Total al campo Valores de una tarjeta. El resultado inicial será 6.800,00, la suma de los cinco registros del libro. Al agregar Año de Fecha al eje de una tabla, la misma medida mostrará un subtotal para cada año: 2.100,00 para 2017, 2.500,00 para 2018 y 2.200,00 para 2019.
Sumar las ventas de un año con una medida DAX
Para practice, usaremos una medida que sume exclusivamente 2017. Añade Ventas 2017 al panel de campos, mediante Inicio > Measures > Nueva medida en Power BI Desktop. Después, arrastra la medida al área Valores de una tarjeta.
Ventas 2017 =
CALCULATE(
SUM(Ventas[Importe]);
YEAR(Ventas[Fecha]) = 2017
)
Usar un filtro de fecha dentro de CALCULATE
La función YEAR (en inglés YEAR) devuelve el año de una fecha. Al colocar YEAR(Ventas[Fecha]) = 2017 dentro de CALCULATE, Power BI conserva únicamente las ventas de ese año.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 1 | Fecha | Marca | Importe | Incluido en 2017 |
| 2 | 2 | 15/01/2017 | Veluz | 1.200,00 | Sí |
| 3 | 3 | 20/03/2017 | Veluz | 900,00 | Sí |
| 4 | 4 | 12/07/2018 | Electronics | 2.500,00 | No |
| 5 | 5 | 05/09/2019 | Veluz | 2.200,00 | No |
| 6 | Total 2017: 2.100,00 |
No es necesario filtrar la tabla visualmente. El filtro está dentro de la medida, por lo que la tarjeta mostrará 2.100,00 aunque los demás registros permanezcan cargados en el modelo.
Comparar las ventas con el año de referencia
Crea la medida Ventas vs 2017 para dividir las ventas del contexto actual entre el total de 2017 y restar 1. La operación debe quedar fuera de CALCULATE porque compara dos contextos: el año actual y 2017.
Ventas vs 2017 =
DIVIDE(
[Ventas Total];
[Ventas 2017]
) - 1
| Año | Ventas | Ventas 2017 | Variación |
|---|---|---|---|
| 2017 | 2.100,00 | 2.100,00 | 0% |
| 2018 | 2.500,00 | 2.100,00 | 19,05% |
| 2019 | 2.200,00 | 2.100,00 | 4,76% |
Contar y sumar con las mismas condiciones
CONTAR (en inglés COUNT) cuenta filas que cumplen un filtro. Se usa dentro de CALCULATE igual que SUM: la operación cuenta y CALCULATE decide qué registros entran. En el libro, Veluz aparece en tres ventas: dos de 2017 y una de 2019.
Usar CONTAR dentro de CALCULATE
Crea Conteo Ventas Veluz:
Conteo Ventas Veluz =
CALCULATE(
COUNT(Ventas[Importe]);
Ventas[Marca] = "Veluz"
)
Conteo Ventas Veluz: 3
Coloca la medida y Ventas Total en dos tarjetas. El conteo será 3 y la suma será 4.300,00. En una tabla por marca, la segmentación puede reducir ambos resultados al contexto visual seleccionado.
Combinar año y marca en una sola medida
CALCULATE acepta varios filtros. Para sumar las ventas de 2017 que también pertenecen a Veluz, escribe:
Ventas 2017 Veluz =
CALCULATE(
SUM(Ventas[Importe]);
YEAR(Ventas[Fecha]) = 2017;
Ventas[Marca] = "Veluz"
)
| Año | Marca | Importe | Incluido |
|---|---|---|---|
| 2017 | Veluz | 1.200,00 | Sí |
| 2017 | Veluz | 900,00 | Sí |
| 2018 | Electronics | 2.500,00 | No |
| 2019 | Veluz | 2.200,00 | No |
La tarjeta de Ventas 2017 Veluz debe mostrar 2.100,00. Esta cifra coincide con Ventas 2017 porque las dos ventas de 2017 pertenecen a Veluz.
Cómo filtrar por código, categoría y otra columna
En Power BI, un filtro escrito directamente en la medida fija una condición. En cambio, una columna como Ventas[Código de instalación] puede representar el contexto de cada fila y cambiar al cambiar la segmentación o el contexto de una matriz.
Filtrar por una categoría escrita en la medida
La siguiente medida suma una categoría fija:
Ventas Electronics =
CALCULATE(
SUM(Ventas[Importe]);
Ventas[Marca] = "Electronics"
)
| Marca | Importe | Total filtrado |
|---|---|---|
| Veluz | 1.200,00 | 0,00 |
| Veluz | 900,00 | 0,00 |
| Electronics | 2.500,00 | 2.500,00 |
| Veluz | 2.200,00 | 0,00 |
La medida siempre toma Electronics. Para elegir la categoría desde el informe, usa una segmentación de Marca y una medida sin filtro fijo.
Usar el código de cada fila como criterio
Para calcular el total de cada código de instalación, el filtro debe usar la columna de códigos, no un código fijo. Además, la columna Margen Y/N? actúa como una condición de inclusión independiente.
Total margen por código =
CALCULATE(
SUM(Ventas[Importe]);
ALLEXCEPT(Ventas; Ventas[Código instalación])
)
ALLEXCEPT conserva el contexto de la tabla Ventas para la columna de código, mientras elimina los filtros de sus demás columnas. En una matriz con Código instalación en las filas, cada código muestra su total. Para el ejemplo original, el código 88888 suma 1.200,00 + 900,00 + 2.200,00 = 4.300,00 si todavía no se aplica la columna Y/N.
Código 88888: 4.300,00
Filtrar por una columna que contiene Y o N
Para incluir solo las filas con margen, añade otro filtro a CALCULATE:
Total margen incluido por código =
CALCULATE(
SUM(Ventas[Importe]);
ALLEXCEPT(Ventas; Ventas[Código instalación]);
Ventas[Margen Y/N?] = "Y"
)
| Código | Margen Y/N? | Importe | Total incluido |
|---|---|---|---|
| 88888 | Y | 1.200,00 | 1.200,00 |
| 88888 | Y | 900,00 | 900,00 |
| 88888 | N | 2.200,00 | 0,00 |
| 77777 | Y | 2.500,00 | 2.500,00 |
La medida anterior, que no filtra por Y/N, devuelve 4.300,00 para el código 88888. La nueva devuelve 2.100,00. La diferencia demuestra que el segundo filtro elimina la fila marcada como N.
Cuándo usar CALCULATE y cuándo conviene otra función
CALCULATE modifica el contexto de evaluación de una medida. Resulta útil cuando el total depende de un filtro que debe combinarse con el contexto de una tarjeta, tabla o gráfico. Si solo necesitas sumar un rango de Excel, utiliza SUMAR.SI (en inglés SUMIF).
Diferencia entre una fórmula de Excel y una medida DAX
En Excel, SUMAR.SI recibe un rango, un criterio y, opcionalmente, el rango que se suma:
=SUMAR.SI(A2:A10;"Comida";B2:B10)
En Power BI, la operación y el filtro se organizan dentro de CALCULATE:
Ventas Veluz =
CALCULATE(
SUM(Ventas[Importe]);
Ventas[Marca] = "Veluz"
)
| Aspecto | Excel | Power BI |
|---|---|---|
| Ubicación | Celda de una hoja | Medida DAX del modelo |
| Origen de datos | Rango de celdas | Tabla o relación del modelo |
| Condición | Argumento criterio |
Argumento de CALCULATE |
| Contexto | Referencias y rangos | Contexto de filtro de la visualización |
| Resultado | Valor de la celda | Se recalcula para cada contexto |
Qué revisar cuando el resultado no cambia
Si una medida no cambia al mover una segmentación, revisa estos puntos:
- Filtro de año: comprueba que
YEAR(Ventas[Fecha])use la columna correcta y que el año esperado esté en el modelo. - Relaciones entre tablas: una relación incorrecta o Many-to-many puede impedir que el filtro llegue a Ventas.
- Contexto de la visualización: la medida debe estar en Valores, en una tarjeta, gráfico o matriz; un campo de texto por sí solo no muestra el cálculo.
- Columnas calculadas: un filtro DAX no filtra una columna calculada de la misma tabla. Para filtrar por una columna calculada, normalmente se necesita una tabla relacionada o una medida de filtro.
- Tipo de dato: revisa que las fechas, códigos y marcas tengan el tipo esperado; una fecha almacenada como texto puede impedir que YEAR la procese.
Un caso breve: si creas Ventas Total = SUM(Ventas[Importe]) y la colocas en una segmentación, el resultado no aparecerá como una opción. Las medidas se muestran en el panel de campos, pero para compararlas necesitas una tarjeta o un gráfico de valores.
Lo que ya sabes hacer al sumar con condiciones
- Crear una medida DAX que sume una columna numérica con
SUM(Ventas[Importe]). - Aplicar condiciones con
CALCULATEy escribir filtros de fecha, marca, categoría o código. - Usar
YEAR(Ventas[Fecha])para filtrar por año. - Combinar dos o más condiciones en una sola medida.
- Comparar cada año con una referencia mediante
DIVIDEy una medida de total. - Calcular variaciones porcentuales entre periodos.
- Usar
CONTAR(Ventas[Importe])dentro de CALCULATE para contar registros filtrados. - Conservar el código actual con
ALLEXCEPTy añadir una condición independiente como Margen Y/N? = "Y".
El siguiente paso es abrir tu propio modelo, crear una medida base con SUM y añadir un filtro real de CALCULATE. Después, pruébala en una tarjeta y en una tabla por año para comprobar cómo responde al contexto del informe.
Fuentes
- MicrosoftEquivalente de SUMAR.SI en DAX – Fabric Community – Microsoftconsultado el 28/10/2026
- MicrosoftSUMAR.SI — documentación oficialconsultado el 28/10/2026
- MicrosoftPOTENCIA — documentación oficialconsultado el 28/10/2026
- MicrosoftSUMA — documentación oficialconsultado el 28/10/2026
- MicrosoftSUMAR.SI.CONJUNTO — documentación oficialconsultado el 28/10/2026