Uso de cálculos de objeto visual (versión preliminar)

Nota:

Los cálculos de objeto visual se encuentran actualmente en versión preliminar.

Un cálculo de objeto visual es un cálculo DAX que se define y ejecuta directamente en un objeto visual. Los cálculos de objeto visual facilitan la creación de cálculos que antes eran difíciles de crear, lo que permite simplificar DAX, facilitar el mantenimiento y mejorar el rendimiento.

Este es un cálculo de objeto visual de ejemplo en el que se define una suma acumulada para Sales Amount. Observe que la fórmula DAX necesaria es sencilla:

Running sum = RUNNINGSUM([Sales Amount])

Captura de pantalla de DAX para cálculos visuales.

Un cálculo puede hacer referencia a cualquier dato del objeto visual, incluidas columnas, medidas u otros cálculos de objeto visual, lo que elimina la complejidad del modelo semántico y simplifica el proceso de escritura de DAX. Puede usar cálculos de objeto visual para completar cálculos empresariales comunes, como sumas o medias acumuladas.

Los cálculos de objeto visual difieren de las otras opciones de cálculos en DAX:

  • Los cálculos de objeto visual no se almacenan en el modelo y, en su lugar, se almacenan en el objeto visual, lo que significa que solo pueden hacer referencia a lo que hay en el objeto visual. Cualquier elemento del modelo se debe agregar al objeto visual antes de que el cálculo de objeto visual pueda hacerle referencia, lo que evita que los cálculos de objeto visual tengan en cuenta la complejidad del contexto de filtro y el modelo.

  • Los cálculos de objeto visual combinan la simplicidad del contexto de las columnas calculadas con la flexibilidad de cálculo a petición de las medidas.

  • En comparación con las medidas, los cálculos de objeto visual funcionan en datos agregados en lugar del nivel de detalle, lo que suele dar lugar a ventajas de rendimiento. Cuando un cálculo se puede lograr mediante una nueva medida o un cálculo de objeto visual, este último suele dar lugar a un mejor rendimiento.

  • Como los cálculos de objeto visual forman parte del objeto visual, pueden hacer referencia a la estructura visual, lo que ofrece mayor flexibilidad.

Para obtener una comparación más detallada de las formas de agregar cálculos en Power BI, vea Uso de opciones de cálculos en Power BI Desktop.

Una vez que habilite los cálculos de objeto visual, puede hacer lo siguiente:

  • Agregar cálculos de objeto visual a los informes
  • Ocultar campos concretos
  • Crear cálculos de objeto visual rápidamente mediante plantillas
  • Realizar cálculos de objeto visual flexibles mediante referencias a los ejes del objeto visual

En las secciones siguientes se proporcionan detalles sobre cómo cada uno de los elementos, descritos en las viñetas anteriores, funcionan con cálculos de objeto visual.

Habilitación de cálculos de objeto visual

Para usar cálculos de objeto visual, debe habilitarlos en Opciones y configuración>Opciones>Características de versión preliminar. Seleccione Cálculos de objeto visual y después Aceptar. Los cálculos de objeto visual se habilitan después de reiniciar Power BI Desktop.

Adición de un cálculo de objeto visual

Para agregar un cálculo de objeto visual, seleccione un objeto visual y después el botón Nuevo cálculo de la cinta:

Captura de pantalla de la selección del nuevo botón de cálculo en la cinta de opciones.

La ventana de cálculos de objeto visual se abre en modo Edición. La pantalla del modo Edición consta de tres secciones principales, como se muestra de arriba abajo en la siguiente imagen:

  • La vista previa del objeto visual, en la que se muestra el objeto visual con el que trabaja
  • Una barra de fórmulas, donde puede agregar cálculos de objeto visual
  • La matriz visual, en la que se muestran los datos en el objeto visual y los resultados de los cálculos de objeto visual a medida que los agrega

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

Para agregar un cálculo de objeto visual, escriba la expresión en la barra de fórmulas. Por ejemplo, en un objeto visual que contiene Importe de ventas y Costo total del producto por Año fiscal, puede agregar un cálculo de objeto visual que calcule el beneficio de cada año si escribe simplemente: Profit = [Sales Amount] – [Total Product Cost].

Captura de pantalla de la especificación de un cálculo visual.

De forma predeterminada, la mayoría de los cálculos de un objeto visual se evalúan fila por fila, como una columna calculada. En el ejemplo anterior, para cada fila de la matriz visual, se restan el Importe de ventas actual y el Costo total del producto, y el resultado se devuelve en la columna Beneficio. Aunque sea posible, no es necesario agregar una función de agregación como SUM como se haría en una medida. De hecho, es mejor no agregar ese tipo de agregados cuando no sean necesarios, para que pueda distinguir más fácilmente entre medidas y expresiones de cálculo de objeto visual.

A medida que agregue cálculos de objeto visual, se muestran en la lista de campos del objeto visual:

Captura de pantalla de los cálculos visuales que se muestran en la lista de campos del objeto visual.

Además, el cálculo de objeto visual se muestra en el objeto visual:

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

Puede usar muchas funciones DAX existentes en los cálculos de objeto visual. También hay funciones específicas de los cálculos de objeto visual. Como los cálculos de objeto visual funcionan dentro de los límites de la matriz visual, no se pueden usar funciones que se basan en relaciones de modelo como USERELATIONSHIP, RELATED o RELATEDTABLE.

Ocultación de campos del objeto visual

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

Captura de pantalla de ocultar elementos de la vista de un objeto visual.

Al ocultar campos no se quitan del objeto visual ni de la matriz visual, por lo que los cálculos de objeto visual todavía pueden hacerles referencia y seguir funcionando. Un campo oculto todavía se muestra en la matriz visual, pero simplemente no se muestra en el objeto visual resultante. Se recomienda incluir solo campos ocultos si son necesarios para que los cálculos de objeto visual funcionen.

Uso de plantillas

Los cálculos de objeto visual incluyen plantillas para facilitar la escritura de cálculos comunes. Puede encontrar plantillas si selecciona el botón de plantilla y elige una con la que trabajar:

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 mediante la división de la suma de los valores por el tamaño de la ventana. Usa la función MOVINGAVERAGE.
  • Porcentaje del elemento primario. 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 elementos secundarios. Calcula el valor medio del conjunto de valores secundarios. 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.

Al seleccionar una plantilla, se inserta en la barra de fórmulas. Puede usar estas plantillas como puntos de partida. También puede agregar expresiones propias sin depender de plantillas.

Axis

Muchas funciones tienen un parámetro Axis opcional, que solo se puede usar en cálculos de objeto visual. Axis influye en la forma en que el cálculo de objeto visual recorre la matriz visual. El parámetro Axis se establece en el primer eje del objeto visual de forma predeterminada. Para muchos objetos visuales, el primer eje es ROWS, lo que significa que el cálculo de objeto visual se evalúa fila por fila en la matriz visual, de arriba a abajo. En la siguiente tabla se muestran los valores del parámetro Axis y su efecto:

Icono Axis Nombre Axis Descripción
ROWS Calcula verticalmente entre filas de arriba a abajo.
COLUMNS Calcula horizontalmente entre columnas de izquierda a derecha.
ROWS COLUMNS Calcula verticalmente entre filas de arriba a abajo, y continúa columna por columna de izquierda a derecha.
COLUMNS ROWS Calcula horizontalmente entre columnas de izquierda a derecha, y continúa fila por fila de arriba a abajo.

Nota:

Solo puede usar los valores de eje disponibles en el objeto visual en el que trabaja. No todos los objetos visuales proporcionan todos los ejes y algunos no proporcionan ejes.

Reset

Muchas funciones tienen un parámetro Reset opcional que solo está disponible en los cálculos de objeto visual. Reset influye en si y cuando la función restablece su valor a 0 o cambia a otro ámbito mientras recorre la matriz visual. El parámetro Reset se establece en Ninguno de forma predeterminada, lo que significa que el cálculo de objeto visual nunca se reinicia. Restablecer espera que haya varios niveles en el eje. Si solo hay un nivel en el eje, puede usar PARTITIONBY. En la lista siguiente se describen los únicos valores válidos para el parámetro Reset:

  • NONE es el valor predeterminado y no restablece el cálculo.
  • HIGHESTPARENT restablece el cálculo cuando cambia el valor del elemento primario más alto del eje.
  • LOWESTPARENT restablece los cálculos cuando cambia el valor del elemento primario más bajo del eje.
  • Valor numérico, que hace referencia a los campos del eje, donde el campo más alto es uno.

Para comprender HIGHESTPARENT y LOWESTPARENT, considere un eje que tiene tres campos en varios niveles: Año, Trimestre y Mes. HIGHESTPARENT es Año, mientras que el elemento primario más bajo es Trimestre. Por ejemplo, un cálculo de objeto visual que se define como RUNNINGSUM([Importe de ventas], HIGHESTPARENT) o RUNNINGSUM([Importe de ventas], 1) devuelve una suma acumulada de Importe de ventas que comienza desde 0 para cada año. Un cálculo de objeto visual definido como RUNNINGSUM([Importe de ventas], LOWESTPARENT) o RUNNINGSUM([Importe de ventas], 2) devuelve una suma acumulada de Importe de ventas que comienza desde 0 para cada trimestre. Por último,un cálculo de objeto visual definido como RUNNINGSUM([Importe de ventas])no se restablece y seguirá agregando el valor Importe de ventas para cada mes a los valores anteriores, sin reiniciar.

Axis y Reset frente a ORDERBY y PARTITIONBY

Axis, Reset, ORDERBY y PARTITIONBY son cuatro funciones que se pueden usar en pares o juntas para influir en cómo se evalúa un cálculo. Forman dos pares que a menudo se usan de manera conjunta:

  • Axis y Reset
  • ORDERBY y PARTITIONBY

Axis y Reset solo están disponibles para las funciones que se pueden usar en cálculos de objeto visual y solo se pueden utilizar en este tipo de cálculos, ya que hacen referencia a la estructura visual. ORDERBY y PARTITIONBY son funciones que se pueden usar en columnas calculadas, medidas y cálculos de objeto visual, y hacen referencia a campos. Aunque realizan la misma función, son diferentes en el nivel de abstracción proporcionado; la referencia a la estructura visual es más flexible que la referencia explícita a campos mediante ORDERBY o PARTITIONBY.

Restablecer espera que haya varios niveles en el eje. En caso de que no tenga varios niveles en el eje, ya sea porque solo haya un campo o varios en un solo nivel en el eje, puede usar PARTITIONBY.

Se puede especificar cualquier par, pero también puede especificar Axis, ORDERBY o PARTITIONBY juntos, en cuyo caso los valores especificados para ORDERBY y PARTITIONBY invalidan los determinados por Axis. Reset no se puede combinar con ORDERBY y PARTITIONBY.

Puede pensar en el par ORDERBY y PARTITIONBY como anclaje de referencias de campo mediante la especificación explícita de los campos, mientras que Eje y Restablecer son independientes del campo: hacen referencia a la estructura y a cualquier campo que se incluya en la estructura en uso.

Funciones disponibles

Puede usar muchas de las funciones DAX existentes en los cálculos de objeto visual. Como los cálculos de objeto visual funcionan dentro de los límites de la matriz visual, las funciones que se basan en relaciones de modelo como USERELATIONSHIP, RELATED o RELATEDTABLE no están disponibles.

Los cálculos de objeto visual también presentan un conjunto de funciones específicas. Muchas de estas funciones son más fáciles de usar como accesos directos a las funciones de ventana DAX.

Nota:

Use solo las funciones específicas de cálculos visuales mencionadas en la siguiente tabla. Otras funciones específicas de cálculos visuales son solo para uso interno en este momento y no deben usarse. Consulte la siguiente tabla para ver las actualizaciones de las funciones disponibles para su uso a medida que avanza esta versión preliminar.

Función Description Ejemplo Acceso directo a
COLLAPSE El cálculo se evalúa en un nivel superior del eje. Porcentaje del elemento primario = DIVIDE([Importe de ventas], COLLAPSE([Importe de ventas], ROWS)) N/D
COLLAPSEALL El cálculo se evalúa en el nivel de totales 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 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 = [Beneficios] – FIRST([Beneficios]) INDEX(1)
ISATLEVEL Informa de si una columna especificada está presente en el nivel actual. IsFiscalYearAtLevel = ISATLEVEL([Fiscal Year]) N/D
LAST Hace referencia a la última fila de un eje. ProfitVSLast = [Beneficios] – LAST([Beneficios]) INDEX(-1)
MOVINGAVERAGE Agrega una media acumulada en un eje. MovingAverageSales = MOVINGAVERAGE([Importe de ventas], 2) WINDOW
NEXT Hace referencia a una fila siguiente de un eje. ProfitVSNext = [Beneficios] – NEXT([Beneficios]) OFFSET(1)
PREVIOUS Hace referencia a una fila anterior de un eje. ProfitVSPrevious = [Beneficios] – PREVIOUS([Beneficios]) OFFSET(-1)
RANGE Hace referencia a un sector 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

Consideraciones y limitaciones

Los cálculos de objeto visual se encuentran actualmente en versión preliminar y, durante la versión preliminar, debe tener en cuenta las siguientes consideraciones y limitaciones:

  • No se admiten todos los tipos de objetos visuales. Use el modo de edición de los cálculos de objeto visual para cambiar el tipo de objeto visual. Además, los objetos visuales personalizados no se han probado con cálculos de objeto visual ni campos ocultos.
  • Se han probado los siguientes tipos y propiedades de objeto visual y no funcionan con cálculos de objeto visual ni campos ocultos:
    • Gráfico de líneas y columnas apiladas
    • Gráfico de rectángulos
    • Asignar
    • Mapa de formas
    • Mapa de Azure
    • Segmentación
    • Objeto visual de R
    • Objeto visual de Python
    • Elementos influyentes clave
    • Esquema jerárquico
    • Q&A
    • Narración inteligente
    • Métricas
    • Informe paginado
    • Mapas de ArcGIS
    • Power Apps
    • Power Automate
    • Múltiplos pequeños
  • El rendimiento de esta característica no es representativo del producto final.
  • La reutilización de cálculos de objeto visual mediante copiar y pegar, u otros mecanismos no está disponible.
  • Los cálculos de objeto visual no se pueden filtrar.
  • Un cálculo de objeto visual no se puede hacer referencia a sí mismo en el mismo nivel de detalle ni en otro.
  • La personalización de los cálculos de objeto visual o los campos ocultos no está disponible.
  • No puede usar la funcionalidad Publicar en web con informes que usen cálculos de objeto visual o campos ocultos.
  • No se pueden exportar datos subyacentes desde objetos visuales que usen cálculos de objeto visual o campos ocultos.
  • No puede usar la funcionalidad de obtención de detalles ver registros con objetos visuales que usen cálculos de objeto visual o campos ocultos.
  • No se pueden establecer cadenas de formato integradas o personalizadas en cálculos de objeto visual.
  • No se puede aplicar formato condicional en cálculos visuales.
  • No se pueden establecer categorías de datos en cálculos de objeto visual.
  • No se pueden cambiar las agregaciones en los cálculos de objeto visual.
  • No se puede cambiar el criterio de ordenación de los cálculos de objeto visual.
  • Power BI Embedded no es compatible con informes que usan cálculos de objeto visual o campos ocultos.
  • No se admiten conexiones dinámicas a SQL Server Analysis Services.
  • No puede usar parámetros de campo con cálculos visuales.
  • Mostrar elementos sin datos no está disponible con cálculos visuales.

Pasos siguientes

Los artículos siguientes pueden ser útiles al aprender y usar los cálculos de objeto visual: