Cálculos visuales

Se aplica a:✅ Power BI Escritorio y servicio Power BI

Un cálculo visual es un cálculo de expresiones de análisis de datos (DAX) que se ejecuta directamente en un objeto visual en lugar de en el modelo semántico. Usa los datos que se muestran en el objeto visual, por lo que puede crear totales en ejecución, medias móviles y comparaciones entre períodos sin administrar el contexto de filtro o las relaciones del modelo. Los cálculos visuales son fórmulas DAX que se centran en los datos visuales en lugar del modelo semántico completo.

En este artículo se explica cómo funcionan los cálculos visuales, cómo sus parámetros controlan el flujo de cálculo y cómo difieren de otros cálculos DAX.

El siguiente cálculo visual define una suma en ejecución para Importe de ventas:

Running sum = RUNNINGSUM([Sales Amount])

Captura de pantalla de DAX para cálculos visuales.

Un cálculo visual puede hacer referencia a columnas, medidas u otros cálculos visuales en el mismo objeto visual.

Los cálculos visuales difieren de las otras opciones de cálculo en DAX:

  • Los cálculos visuales se almacenan en un objeto visual, no en el modelo. Agregue un campo de modelo al objeto visual antes de hacer referencia a él en un cálculo visual.
  • Los cálculos visuales combinan la simplicidad del contexto de las columnas calculadas con la flexibilidad de cálculo a petición de las medidas.
  • Los cálculos visuales funcionan en datos agregados en lugar de datos de nivel de detalle, por lo que a menudo funcionan mejor que las medidas equivalentes.
  • Dado que los cálculos visuales forman parte del objeto visual, pueden hacer referencia a su estructura.

Para obtener una comparación detallada de las opciones de cálculo, consulte Uso de opciones de cálculos en Power BI Desktop.

Los objetos visuales de tabla y matriz también ofrecen cálculos visuales mediante la funcionalidad de totales personalizados, que permite cambiar lo que muestra la fila de totales sin escribir DAX. Para obtener más información, consulte los artículos visuales de tabla y matriz .

Para obtener información sobre cómo agregar o editar un cálculo visual, consulte Creación de cálculos visuales.

Funcionamiento de los cálculos visuales

Creas cálculos visuales en el modo Edit, que se abre sobre el elemento visual seleccionado. La superficie de edición tiene tres partes: una vista previa del objeto visual, una barra de fórmulas para la expresión DAX y una matriz visual que muestra los resultados a medida que escribe.

Captura de pantalla que muestra las áreas de la pantalla de edición de cálculos visuales.

La mayoría de los cálculos visuales evalúan cada fila de la matriz visual, por lo que las funciones de agregación como SUM suelen ser innecesarias. Las funciones que dependen de las relaciones del modelo, incluidas USERELATIONSHIP, RELATED y RELATEDTABLE, no están disponibles.

Después de agregar un cálculo visual, aparece en la lista de campos del objeto visual y se representa en el propio objeto visual.

Captura de pantalla de los cálculos visuales que se muestran en el objeto visual.

Funciones DAX disponibles en cálculos visuales

Muchas funciones DAX existentes funcionan en cálculos visuales. Los cálculos visuales también proporcionan funciones que actúan como accesos directos a las funciones de ventana DAX.

Función Descripción Ejemplo Acceso directo a
COLLAPSE El cálculo se evalúa en un nivel superior del eje. Porcentaje del padre = DIVIDE([Importe de ventas], COLLAPSE([Importe de ventas], ROWS)) N/D
COLLAPSEALL El cálculo se evalúa en el nivel total del eje. Porcentaje del total general = DIVIDE([Importe de ventas], COLLAPSEALL([Importe de ventas], ROWS)) N/D
EXPAND El cálculo se evalúa en un nivel inferior del eje. Promedio de elementos secundarios = EXPAND(AVERAGE([Importe de ventas]), ROWS) N/D
EXPANDALL El cálculo se evalúa en el nivel de hoja del eje. Promedio del nivel hoja = EXPANDALL(AVERAGE([Importe de ventas]), ROWS) N/D
FIRST Hace referencia a la primera fila de un eje. ProfitVSFirst = [Profit] - FIRST([Profit]) INDEX(1)
ISATLEVEL Informa de si una columna especificada está presente en el nivel actual. IsFiscalYearAtLevel = ISATLEVEL([Año Fiscal]) N/D
LAST Hace referencia a la última fila de un eje. ProfitVSLast = [Profit] - LAST([Profit]) INDEX(-1)
LOOKUP Evalúa una expresión en la matriz visual mediante el contexto actual. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") N/D
LOOKUPWITHTOTALS Evalúa una expresión en la matriz visual con totales. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Ventas]), [Año], "2025") N/D
MOVINGAVERAGE Agrega una media móvil en un eje. MovingAverageSales = MOVINGAVERAGE([Importe de ventas], 2) WINDOW
NEXT Hace referencia a una fila siguiente de un eje. ProfitVSNext = [Profit] - NEXT([Profit]) OFFSET(1)
PREVIOUS Hace referencia a una fila anterior de un eje. ProfitVSPrevious = [Profit] - PREVIOUS([Profit]) OFFSET(-1)
RANGE Hace referencia a un segmento de filas de un eje. AverageSales = AVERAGEX(RANGE(1), [Importe de venta]) WINDOW
RUNNINGSUM Agrega una suma acumulada en un eje. RunningSumSales = RUNNINGSUM([Importe de ventas]) WINDOW

Parámetros que controlan el flujo de cálculo

Algunas funciones de cálculo visual aceptan parámetros opcionales que controlan cómo atraviesa el cálculo la matriz visual:

  • Axis y Reset son específicos de los cálculos visuales. Hacen referencia a la estructura visual en lugar de campos específicos.
  • OrderBy y PartitionBy también funcionan en columnas y medidas calculadas. Hacen referencia a campos directamente.

En las siguientes secciones se describen cada parámetro y cuándo conviene usar uno u otro.

Axis

Muchas funciones tienen un parámetro opcional Axis , que solo se puede usar en cálculos visuales. El Axis parámetro influye en la forma en que el cálculo visual atraviesa la matriz visual. El Axis parámetro tiene como valor predeterminado el primer eje del objeto visual. Para muchos objetos visuales, el primer eje es ROWS, lo que significa que el cálculo del objeto visual se evalúa fila por fila en la matriz visual, de arriba a abajo. En la siguiente tabla se muestran los valores válidos para el parámetro Axis.

Icono Axis Nombre Axis Descripción
ROWS Calcula entre filas.
COLUMNS Calcula en todas las columnas.
ROWS COLUMNS Calcula por filas y luego por columnas.
COLUMNS ROWS Calcula por columnas y luego por filas.
ROWPAGES Calcula en múltiplos pequeños.
ROWS ROWPAGES Calcula por filas y, a continuación, múltiplos pequeños.
COLUMNS ROWPAGES Calcula entre columnas y, a continuación, múltiplo pequeño.
ROWPAGES ROWS Calcula a través de múltiplos pequeños y, a continuación, de las filas.
ROWPAGES COLUMNS Calcula a través de múltiplos pequeños y, a continuación, de columnas.
ROWS COLUMNS ROWPAGES Calcula primero por filas, luego por columnas y, a continuación, por múltiplos pequeños.
ROWS ROWPAGES COLUMNS Calcula por filas, por múltiplos pequeños y, a continuación, por columnas.
COLUMNS ROWS ROWPAGES Calcula a través de columnas, filas y, a continuación, múltiplos pequeños.
COLUMNS ROWPAGES ROWS Calcula a través de las columnas, los múltiplos pequeños y, a continuación, por filas.
ROWPAGES ROWS COLUMNS Calcula a través de múltiplos pequeños, filas y después columnas.
ROWPAGES COLUMNS ROWS Calcula a través de múltiplos pequeños, columnas y luego filas.

Los cálculos visuales son compatibles con elementos visuales que usan múltiplos pequeños. En la matriz visual, el campo del campo Múltiplo pequeño aparece en el ROWPAGES eje. Use ROWPAGES para calcular entre los múltiplos pequeños, o combinarlo con ROWS y COLUMNS para controlar el orden de recorrido.

Nota:

Si especifica un eje que no está presente en el objeto visual, el cálculo omite ese eje.

Reset

Muchas funciones incluyen un parámetro opcional Reset que solo se puede usar en cálculos visuales. Este parámetro particiona la columna de destino para determinar cuándo se restablece la función a 0 o cambia el ámbito mientras recorre la matriz visual.

El valor predeterminado es NONE, lo que significa que el cálculo no se restablece.

El Reset parámetro acepta estos valores:

  • Un entero.
  • Referencia de columna.
  • Sinónimo: HIGHESTPARENT, LOWESTPARENT o NONE.

Cada valor especifica un nivel de destino en la jerarquía de cálculo visual. El cálculo interpreta este nivel en modo absoluto o relativo .

El signo de un entero determina el modo. Los valores positivos usan el modo absoluto, los valores negativos usan el modo relativo y 0 no restablece el cálculo. Los sinónimos proporcionan valores equivalentes.

Una referencia de columna usa el modo absoluto.

Modo de restablecimiento absoluto

El modo absoluto divide por la columna de destino y todas las columnas por encima de ella. Si la columna de destino no está presente en un nivel, el cálculo se particiona por las columnas disponibles restantes.

Un entero positivo identifica la columna de destino desde la parte superior de la jerarquía. La primera columna es 1, la columna siguiente es 2 y el valor máximo es N, el número de columnas de la jerarquía. Los valores mayores que N usan N. También puede especificar la columna directamente.

Por ejemplo, considere un cálculo visual con estos niveles de jerarquía: Año, Trimestre, Mes y Día. En la tabla siguiente se muestra cómo las particiones de cálculo en cada nivel dependen del valor de Reset:

Nivel/valor Reset = 1 o Año Reset = 2 o trimestre Reset = 3 o Mes Reset = 4 o Día
Nivel diario Año Trimestre y año Mes, Trimestre y Año Día, Mes, Trimestre y Año
Nivel mensual Año Trimestre y año Mes, Trimestre y Año Mes, Trimestre y Año
Nivel trimestral Año Trimestre y año Trimestre y año Trimestre y año
Nivel de año Año Año Año Año
Nivel total general Ninguno Ninguno Ninguno Ninguno

Modo de restablecimiento relativo

Para un entero negativo -X, el modo relativo particiona por columnas que están X o más niveles por encima del nivel actual. Si ninguna columna cumple esa condición, el cálculo no se divide en particiones. Los valores válidos van de -1 a -N+1, donde N es el número de columnas de la jerarquía. Los valores debajo de ese intervalo usan -N+1.

En la tabla siguiente se muestra el modo relativo de una jerarquía con Año, Trimestre, Mes y Día:

Nivel/valor Reset = -1 Reset = -2 Reset = -3
Nivel diario Mes, Trimestre y Año Trimestre y año Año
Nivel mensual Trimestre y año Año Ninguno
Nivel trimestral Año Ninguno Ninguno
Nivel de año Ninguno Ninguno Ninguno
Nivel total general Ninguno Ninguno Ninguno

Restablecer sinónimos de parámetros

El Reset parámetro también proporciona los sinónimos siguientes:

  • El valor predeterminado es NONE. No restablece el cálculo y equivale a 0.
  • HIGHESTPARENT efectúa un restablecimiento absoluto en el nivel más alto y equivale a 1.
  • LOWESTPARENT realiza un restablecimiento relativo por el padre inmediato y es equivalente a -1.

Ejemplos de uso del parámetro Reset

Para una jerarquía con Año, Trimestre, Mes y Día, los siguientes cálculos son equivalentes. Devuelven la suma de Importe de ventas y se reinician para cada año en cada nivel de evaluación:

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

Los cálculos siguientes reinician la suma de Importe de ventas en 0 para cada elemento padre inmediato. El elemento padre depende del nivel de evaluación:

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

El siguiente cálculo no se restablece. Agrega el importe de ventas de cada día a los valores anteriores:

RUNNINGSUM([Sales Amount])

OrderBy y PartitionBy

El OrderBy parámetro acepta ORDERBYy el PartitionBy parámetro acepta PARTITIONBY. A diferencia Axis de y Reset, puede usar estos parámetros en columnas calculadas, medidas y cálculos visuales, y hacen referencia a campos directamente.

No todas las funciones proporcionan estos parámetros. Las funciones exclusivas de cálculo visual no proporcionan un PartitionBy parámetro. Las funciones de ventana solo proporcionan un Reset parámetro si los usa en un cálculo visual. El parámetro Relation en las funciones de ventana está disponible tanto si se usa en un cálculo visual como si no, pero solo acepta un Axis si se usa en un cálculo visual.

Elegir entre estos parámetros

No es necesario especificar todos estos parámetros y puede combinarlos. Para decidir qué parámetro se va a usar:

  • Prefiere Axis y Reset si desea un comportamiento independiente del campo que sigue a la estructura visual. Hacer referencia a la estructura visual es más flexible que hacer referencia explícitamente a campos.
  • Use OrderBy y PartitionBy cuando desee anclar el cálculo a campos específicos independientemente del diseño visual.
  • Use PartitionBy en lugar de Reset cuando el eje tenga un solo nivel. Reset requiere varios niveles, por lo que no funciona con un campo o con varios campos en un solo nivel.

Selectores de parámetros

Utilice selectores de parámetros para seleccionar valores para los parámetros de función de cálculo visual. En la imagen siguiente se muestra la plantilla Buscar un valor con totales :

Captura de pantalla que muestra el selector de parámetros.

Para activar selectores de parámetros, presione Ctrl+Space.

Plantillas de cálculo visual

Los cálculos visuales incluyen plantillas para facilitar la escritura de cálculos comunes. El botón plantilla del modo de edición de cálculos visuales abre un menú de plantillas disponibles.

Captura de pantalla del uso de plantillas para cálculos visuales.

Están disponibles las siguientes plantillas:

  • Suma acumulada. Calcula la suma de valores, mediante la agregación del valor actual a los valores anteriores. Usa la función RUNNINGSUM.
  • Media acumulada. Calcula un promedio de un conjunto de valores en una ventana determinada dividiendo la suma de los valores por el tamaño de la ventana. Usa la función MOVINGAVERAGE.
  • Porcentaje del padre. Calcula el porcentaje de un valor con respecto a su elemento primario. Usa la función COLLAPSE.
  • Porcentaje de total general. Calcula el porcentaje de un valor en relación con todos los valores, mediante la función COLLAPSEALL.
  • Promedio de niños. Calcula el valor medio del conjunto de valores hijos. Usa la función EXPAND.
  • Frente a anterior. Compara un valor con un valor anterior mediante la función PREVIOUS.
  • Frente a siguiente. Compara un valor con un valor posterior mediante la función NEXT.
  • Frente a primero. Compara un valor con el primer valor mediante la función FIRST.
  • Frente a último. Compara un valor con el último valor mediante la función LAST.
  • Busque un valor con contexto. Busca un valor o evalúa una expresión en la matriz visual dentro del contexto actual. Usa la función LOOKUP.
  • Busque un valor con totales. Busca un valor o evalúa una expresión en la matriz visual con totales. Usa la función LOOKUPWITHTOTALS.

Ocultar campos en el objeto visual

En el modo de edición de cálculos visuales, puede ocultar campos del objeto visual igual que ocultar columnas y tablas en la vista de modelado. Por ejemplo, para mostrar solo el cálculo visual Beneficio, oculte Importe de ventas y Costo total del producto de la vista.

Captura de pantalla que muestra cómo ocultar elementos desde la vista de un visual.

Los campos ocultos permanecen en la matriz visual, por lo que los cálculos visuales todavía pueden hacer referencia a ellos. No aparecen en el objeto visual resultante. Incluya campos ocultos solo cuando los cálculos visuales los requieran.

Dar formato a un cálculo visual

Dar formato a un cálculo visual con tipos de datos, opciones de formato o una cadena de formato de nivel visual personalizada. Las opciones Formato de datos de la sección General del panel de formato controlan el formato.

Captura de pantalla del modo de edición de cálculos visuales que muestra un cálculo visual que devuelve un porcentaje con formato de porcentaje.

Consideraciones y limitaciones

Tipos de objetos visuales no admitidos

Los cálculos visuales y los campos ocultos no funcionan con los siguientes objetos visuales:

  • Segmentador, Visualización de R, Visualización de Python
  • Influenciadores clave, árbol de descomposición, preguntas y respuestas, narración inteligente
  • Métricas, informe paginado, Power Apps, Power Automate
  • Objetos visuales personalizados

Características no admitidas

Las siguientes características no están disponibles con cálculos visuales:

Limitaciones de publicación y uso compartido

Otras limitaciones

  • Los parámetros de campo funcionan con cálculos visuales, pero tienen algunas limitaciones.
  • Las conexiones dinámicas a SQL Server Analysis Services requieren la versión 2025 o posterior.