Grupos de cálculo en Power BI: patrones DAX reutilizables
Considere un modelo financiero con 40 medidas: Ingresos, Beneficio Bruto, EBITDA, Ingreso Neto y 36 más. Ahora la empresa quiere que cada medida esté disponible para el período actual, el período anterior, el cambio entre períodos, el año hasta la fecha, el año anterior y el cambio año tras año. Son 240 medidas. Luego quieren una conversión monetaria, en tres monedas. Son 720 medidas.
Sin grupos de cálculo, esto es una pesadilla de mantenimiento. Con los grupos de cálculo, la lógica de inteligencia de tiempo se escribe una vez, la lógica de conversión de moneda se escribe una vez y se aplican a cada medida base automáticamente. Las 40 medidas permanecen como 40 medidas; los elementos de cálculo hacen el resto.
Esta guía cubre los grupos de cálculo desde la base conceptual hasta la implementación práctica, incluidos patrones avanzados como reglas de precedencia, técnicas SELECTEDMEASURE() y la combinación de múltiples grupos de cálculo en el mismo modelo.
Conclusiones clave
- Los grupos de cálculo reemplazan cientos de medidas de comparación y inteligencia de tiempo redundantes con unos pocos elementos de cálculo
- SELECTEDMEASURE() hace referencia a cualquier medida que se encuentre actualmente en el contexto de evaluación: la clave para la reutilización
- La prioridad controla qué grupo de cálculo tiene prioridad cuando se aplican varios grupos simultáneamente
- Las cadenas FORMAT() en los elementos de cálculo permiten el formato de números con reconocimiento de medidas : los grupos de cálculo requieren el Editor tabular para crearse (no disponible en la interfaz de usuario de Power BI Desktop de forma nativa)
- Pueden interactuar varios grupos de cálculo: un grupo de inteligencia de tiempo + un grupo de moneda + un grupo de escenario trabajan juntos
- Los grupos de cálculo se pueden utilizar para implementar escenarios hipotéticos, cambio de unidades y visualización de selección de moneda.
- Las medidas se pueden excluir de grupos de cálculo específicos usando ISSELECTEDMEASURE()
El problema que resuelven los grupos de cálculo
Antes de los grupos de cálculo, la inteligencia de tiempo en Power BI significaba crear medidas independientes para cada combinación de métrica base y cálculo de tiempo:
Revenue = SUM(Sales[Amount])
Revenue PY = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
Revenue YTD = CALCULATE([Revenue], DATESYTD('Date'[Date]))
Revenue YTD PY = CALCULATE([Revenue], DATESYTD(SAMEPERIODLASTYEAR('Date'[Date])))
Revenue vs PY = [Revenue] - [Revenue PY]
Revenue vs PY % = DIVIDE([Revenue vs PY], [Revenue PY])
Son 6 medidas de ingresos. Repita lo mismo para la ganancia bruta, el EBITDA, los gastos operativos y 7 KPI más; de repente, tiene 66 medidas, todas con fórmulas casi idénticas. Cuando la empresa solicita cambiar la lógica de inteligencia temporal (por ejemplo, utilizar el año fiscal en lugar del año calendario), es necesario actualizar cada medida.
Los grupos de cálculo resuelven esto separando "qué estamos midiendo" (medidas base) de "cómo lo estamos comparando" (elementos de cálculo). Un grupo de cálculo con 6 elementos reemplaza 5 medidas adicionales por cada medida base del modelo.
Conceptos básicos
Grupo de cálculo: una tabla especial en el modelo semántico con exactamente una columna. La columna contiene "elementos de cálculo": cada elemento modifica la forma en que se calculan las medidas base cuando se seleccionan en una segmentación de datos o se usan en una matriz/gráfico.
Elemento de cálculo: una expresión DAX con nombre que utiliza SELECTEDMEASURE() para hacer referencia a la medida que se está evaluando actualmente. Cada elemento de cálculo aparece como una fila en la segmentación que controla qué período de tiempo o modo de comparación se muestra.
SELECTEDMEASURE(): una función DAX que devuelve el valor de cualquier medida que se esté evaluando actualmente en el contexto del grupo de cálculo. Esto es lo que hace que los grupos de cálculo sean reutilizables: se aplica la misma fórmula de elemento a cada medida del modelo.
Precedencia: cuando hay varios grupos de cálculo activos simultáneamente (por ejemplo, un usuario selecciona "Año anterior" en la segmentación de inteligencia de tiempo Y "USD" en la segmentación de moneda), la precedencia determina qué elemento de cálculo del grupo se aplica primero.
Creación de grupos de cálculo con el editor tabular
Power BI Desktop no tiene una interfaz de usuario nativa para crear grupos de cálculo (a partir de principios de 2026). Deben crearse utilizando una herramienta externa: Tabular Editor 2 (gratis) o Tabular Editor 3 (comercial).
Configuración:
- Descargue Tabular Editor 2 desde GitHub (gratis, de código abierto)
- En Power BI Desktop: Herramientas externas → Editor tabular
- Se abre el Editor tabular conectado al modelo abierto de Power BI.
Creando un grupo de cálculo de inteligencia de tiempo:
- En Tabular Editor, haga clic derecho en Tablas → Crear nuevo → Grupo de cálculo
- Nómbralo
Time Intelligence - El grupo crea automáticamente una columna; cámbiele el nombre a
Time Calculation - Haga clic derecho en el grupo → Agregar elemento de cálculo → nombre cada elemento
Elemento de cálculo: Período actual (la línea base)
SELECTEDMEASURE()
Este artículo devuelve la medida tal como está, sin modificaciones. Cada medida muestra su valor normal cuando se selecciona este elemento.
Parte de cálculo: Año anterior
CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
)
Elemento de cálculo: año hasta la fecha
CALCULATE(
SELECTEDMEASURE(),
DATESYTD('Date'[Date])
)
Elemento de cálculo: año anterior hasta la fecha
CALCULATE(
SELECTEDMEASURE(),
DATESYTD(SAMEPERIODLASTYEAR('Date'[Date]))
)
Elemento de cálculo: cambio interanual
SELECTEDMEASURE() -
CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
)
Elemento de cálculo: % de cambio interanual
DIVIDE(
SELECTEDMEASURE() -
CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
),
CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
),
BLANK()
)
Después de crear estos elementos, guárdelos en el Editor tabular (Ctrl+S). Los cambios se sincronizan nuevamente con Power BI Desktop.
En el informe, agregue una segmentación de datos usando la columna Time Calculation. Cuando el usuario selecciona "Año anterior", cada medida en cualquier matriz o gráfico muestra automáticamente su valor del año anterior.
La técnica de cuerda FORMAT
Surge un problema con el elemento % de cambio interanual: devuelve un decimal (0,15 para un crecimiento del 15 %), pero la cadena de formato de la medida base es para moneda (por ejemplo, "$#,0"). El porcentaje se muestra como "$0,15": formato incorrecto.
La solución es establecer una expresión de cadena de formato en el elemento de cálculo. En Tabular Editor, cada elemento de cálculo tiene una propiedad "Formato de expresión de cadena" que puede contener una expresión DAX que devuelva la cadena de formato que se utilizará:
Formato de expresión de cadena para % de cambio interanual:
"0.0%"
Expresión de cadena de formato para importes en moneda:
"$#,0"
Cadena de formato dinámico basada en la medida seleccionada:
IF(
ISSELECTEDMEASURE([Units Sold], [Order Count]),
"#,0",
"$#,0.00"
)
Las expresiones de cadena de formato utilizan ISSELECTEDMEASURE() para detectar qué medida base está en contexto y devolver la cadena de formato adecuada. Así es como un único elemento de cálculo de "% de cambio interanual" puede formatearse como porcentaje para medidas de ingresos y como cambio de recuento para medidas unitarias.
Grupo de cálculo de conversión de moneda
La conversión de moneda es otro caso de uso clásico de un grupo de cálculo. Sin grupos de cálculo, un modelo con 40 medidas en 3 monedas requiere 120 medidas. Con un grupo de cálculo, se requieren los 40 originales más 3 elementos de cálculo.
Configuración: El modelo debe tener una tabla CurrencyRates con tipos de cambio por moneda y fecha, y una tabla de dimensiones Currency para la segmentación.
Artículo de cálculo: USD (moneda base)
SELECTEDMEASURE()
Artículo de cálculo: EUR
SUMX(
VALUES('Date'[Date]),
CALCULATE(SELECTEDMEASURE()) *
CALCULATE(
MAX(CurrencyRates[Rate]),
CurrencyRates[ToCurrency] = "EUR"
)
)
Artículo de cálculo: GBP
SUMX(
VALUES('Date'[Date]),
CALCULATE(SELECTEDMEASURE()) *
CALCULATE(
MAX(CurrencyRates[Rate]),
CurrencyRates[ToCurrency] = "GBP"
)
)
El bucle SUMX itera sobre cada fecha y aplica el tipo de cambio para esa fecha, manejando las monedas correctamente incluso cuando las segmentaciones de fechas abarcan períodos con diferentes tipos de cambio. Establezca el Precedence del grupo de moneda más bajo que el grupo de inteligencia de tiempo (número más bajo = prioridad más alta en la terminología del Editor tabular).
Reglas de precedencia entre múltiples grupos de cálculo
Cuando un usuario selecciona elementos de dos grupos de cálculo simultáneamente (por ejemplo, "Año anterior" de Time Intelligence y "EUR" de Moneda), Power BI los evalúa en orden de prioridad.
La precedencia se establece como un número entero en cada grupo de cálculo: entero superior = evaluado primero (o "externo").
Ejemplo:
- Inteligencia Temporal: Precedencia = 20 (evaluado interior)
- Conversión de moneda: Prioridad = 10 (exterior evaluado)
Con esta configuración, el elemento Conversión de moneda rodea al elemento Inteligencia de tiempo. Al seleccionar "EUR" + "Año anterior" se calcula: convertir a EUR (el cálculo externo) el valor del año anterior (el cálculo interno). El orden de precedencia debe coincidir con la intención semántica de los cálculos.
Regla general: el grupo de cálculo que modifica el contexto de fecha (inteligencia de tiempo) debe tener una prioridad más alta (número de precedencia más bajo, evaluado internamente/posteriormente). El grupo de cálculo que modifica el valor después del cálculo de la fecha (conversión de moneda, conversión de unidades) debe tener una prioridad menor (evaluado externo/primero).
Exclusión de medidas específicas de los grupos de cálculo
No todas las medidas deben responder a todos los grupos de cálculo. La inteligencia de tiempo no debe modificar una medida de "Fecha del informe" que devuelve la fecha del informe actual. Una medida de "valor objetivo" que se establece anualmente no debe convertirse al año anterior.
Utilice ISSELECTEDMEASURE() en el elemento de cálculo para excluir medidas específicas:
IF(
ISSELECTEDMEASURE([Report Date], [Target Value], [Budget]),
SELECTEDMEASURE(),
CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
)
)
Esto hace que el elemento "Año anterior" pase sin cambios para [Fecha del informe], [Valor objetivo] y [Presupuesto], devolviendo sus valores normales independientemente de la selección de inteligencia de tiempo.
Análisis de escenarios hipotéticos con grupos de cálculo
Los grupos de cálculo permiten un análisis elegante de escenarios hipotéticos. Un grupo de cálculo de "Escenario" con elementos como "Caso base", "Optimista" y "Pesimista" puede aplicar multiplicadores de escenario a medidas de ingresos y costos sin crear variantes de medidas específicas del escenario.
-- Base Case calculation item
SELECTEDMEASURE()
-- Optimistic calculation item
SWITCH(
TRUE(),
ISSELECTEDMEASURE([Revenue], [Gross Profit]), SELECTEDMEASURE() * 1.15,
ISSELECTEDMEASURE([Operating Expenses], [COGS]), SELECTEDMEASURE() * 0.95,
SELECTEDMEASURE()
)
-- Pessimistic calculation item
SWITCH(
TRUE(),
ISSELECTEDMEASURE([Revenue], [Gross Profit]), SELECTEDMEASURE() * 0.85,
ISSELECTEDMEASURE([Operating Expenses], [COGS]), SELECTEDMEASURE() * 1.10,
SELECTEDMEASURE()
)
Los usuarios seleccionan un escenario de una segmentación; Cada medida financiera se actualiza para reflejar los supuestos del escenario seleccionado. Combinar esto con el grupo de inteligencia temporal permite: "Muéstrame los ingresos del tercer trimestre en el escenario optimista frente al año anterior".
Preguntas frecuentes
¿Los grupos de cálculo funcionan en Power BI Desktop sin Premium?
Sí. Los grupos de cálculo funcionan en todos los niveles de licencia de Power BI: son una característica de modelo semántico, no una característica Premium. El único requisito Premium es que se debe usar Tabular Editor para crearlos, ya que la interfaz de usuario nativa de Power BI Desktop no admite la creación (pero los representa y evalúa correctamente). Una vez creados en Tabular Editor, los grupos de cálculo funcionan en cualquier espacio de trabajo, incluidos los gratuitos y Pro.
¿Puedo crear grupos de cálculo sin Tabular Editor?
En la interfaz de usuario nativa de Power BI Desktop, los grupos de cálculo no se pueden crear directamente (a partir de principios de 2026). Tabular Editor 2 (gratis) es la herramienta estándar. Alternativamente, las herramientas de punto final XMLA (SSMS, ALM Toolkit) pueden crear grupos de cálculo mediante secuencias de comandos TMSL. Algunos usuarios también crean grupos de cálculo mediante llamadas a la API REST XMLA mediante programación. Microsoft ha indicado planes para agregar la creación de grupos de cálculo a Power BI Desktop de forma nativa en versiones futuras.
¿Cuál es el impacto en el rendimiento de los grupos de cálculo?
Los grupos de cálculo agregan una sobrecarga mínima en comparación con la creación manual de medidas equivalentes. Cada evaluación de SELECTEDMEASURE() invoca el DAX de la medida referenciada, sin costo adicional más allá de lo que incurrirían las medidas explícitas equivalentes. De hecho, los grupos de cálculo a menudo mejoran el rendimiento del modelo al reemplazar muchas medidas explícitas similares (que generan entradas de caché de consultas) con menos elementos que comparten las mismas rutas de evaluación.
¿Se pueden utilizar grupos de cálculo con medidas implícitas de columnas generadas automáticamente?
Los grupos de cálculo se aplican a medidas DAX explícitas definidas en el modelo. No se aplican a agregaciones de columnas que Power BI genera automáticamente (como sumar una columna numérica sin una medida definida). La mejor práctica es definir medidas explícitas para todas las métricas comerciales y utilizar grupos de cálculo en esas medidas.
¿Cómo interactúan los grupos de cálculo con la seguridad a nivel de fila?
Los grupos de cálculo y la seguridad a nivel de fila son ortogonales: funcionan de forma independiente. RLS filtra qué filas son visibles para un usuario; Los grupos de cálculo modifican cómo se calculan las medidas de esas filas visibles. La combinación funciona correctamente: RLS limita los datos, luego el elemento del grupo de cálculo transforma la lógica de medición. No se conocen conflictos entre RLS implementado correctamente y grupos de cálculo.
¿Cuál es la diferencia entre grupos de cálculo y parámetros de campo?
Los grupos de cálculo modifican la forma en que se calculan las medidas (aplicando cambios de hora, conversiones de moneda, ajustes de escenario). Los parámetros de campo permiten a los usuarios seleccionar qué medida o columna aparece en una visualización, intercambiando entre, por ejemplo, Ingresos, Beneficios y Unidades en un gráfico. Resuelven diferentes problemas y se pueden utilizar juntos: parámetros de campo para seleccionar la medida base, grupos de cálculo para elegir la comparación de tiempo para esa medida.
Próximos pasos
Los grupos de cálculo son una de las herramientas más potentes para crear modelos semánticos de Power BI escalables y mantenibles. Si se implementan correctamente, eliminan la duplicación de DAX, reducen la complejidad del modelo y lo hacen extensible: agregar un nuevo período de inteligencia de tiempo significa agregar un elemento de cálculo, no reescribir docenas de medidas.
Los servicios de modelado de datos Power BI de ECOSIRE incluyen el diseño y la implementación de grupos de cálculo como parte del desarrollo del modelo semántico. Contáctenos para analizar cómo los grupos de cálculo pueden simplificar su modelo actual o mejorar su próxima implementación.
Escrito por
ECOSIRE Research and Development Team
Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.
Artículos relacionados
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.