Comparteix a través de


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 definido y ejecutado 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 columns, medidas u otros cálculos visuales. Esta capacidad 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 visuales no se almacenan en el modelo y, en su lugar, se almacenan en el objeto visual. Esto significa que los cálculos visuales solo pueden hacer referencia a lo que está 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 columns 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.

  • Dado que los cálculos visuales forman parte del objeto visual, pueden hacer referencia a la estructura visual, lo que conduce a una 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 previous viñetas, funcionan con cálculos de objeto visual.

Habilitación de cálculos de objeto visual

Antes de septiembre de 2024, 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.

A partir de septiembre de 2024, este paso ya no es necesario, ya que los cálculos visuales están habilitados de forma predeterminada. Aunque todavía están en versión preliminar, puede usar la configuración anterior para deshabilitar los cálculos visuales si lo prefieren.

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 visual de la cinta:

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

La window 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. Los estilos o temas que aplique al objeto visual no se aplicarán a la matriz visual.

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 visual que calcule el beneficio de cada año escribiendo:

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 previous, 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 columns 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 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.

También puede crear un cálculo visual con plantilla desde la cinta haciendo clic en la parte inferior del botón Nuevo cálculo visual.

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 window determinada mediante la división de la suma de los valores por el tamaño de la window. 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 previous. Compara un valor con un valor anterior mediante la función PREVIOUS.
  • Frente a next. Compara un valor con un valor posterior mediante la función NEXT.
  • Frente a first. Compara un valor con el valor first mediante la función FIRST.
  • Frente a last. Compara un valor con el valor last 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 eje first del objeto visual de forma predeterminada. Para muchos objetos visuales, el eje first 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 rows de arriba a abajo.
COLUMNS Calcula horizontalmente entre columns de izquierda a derecha.
ROWS COLUMNS Calcula verticalmente entre rows de arriba a abajo, y continúa columna por columna de izquierda a derecha.
COLUMNS ROWS Calcula horizontalmente entre columns 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 None 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, los siguientes cálculos visuales son equivalentes y devuelven la suma de Importe de ventas que comienza a partir de 0 para cada año:

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

Por el contrario, los siguientes cálculos visuales devuelven la suma del importe de ventas que comienza a partir de 0 para cada trimestre:

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], 2)

Por último, este cálculo visual no se restablece y continúa agregando el valor Importe de ventas de cada mes a los previous valores, sin reiniciar.

RUNNINGSUM([Sales Amount])

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 columns calculadas, medidas y cálculos visuales y hacer referencia a campos. Aunque realizan la misma función, son diferentes en el nivel de abstracción proporcionado; hacer 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.

Especificar ambos pares funciona bien, pero también puede especificar Axis, ORDERBY y/o PARTITIONBY juntos, en cuyo caso los valores especificados para ORDERBY y PARTITIONBY invalidan los valores dictados por Axis. Reset no se pueden combinar con ORDERBY y PARTITIONBY.

Puede pensar en el par ORDERBY y PARTITIONBY como referencias de campo anclado especificando explícitamente los campos, donde Axis y Reset son independientes del campo, hacen referencia a la estructura y cualquier campo que ocurra estar en la estructura que se está usando.

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 window 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 first 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 last 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 next de un eje. ProfitVSNext = [Beneficios] – NEXT([Beneficios]) OFFSET(1)
PREVIOUS Hace referencia a una fila previous de un eje. ProfitVSPrevious = [Beneficios] – PREVIOUS([Beneficios]) OFFSET(-1)
RANGE Hace referencia a un sector de rows 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

Aplicar formato a los cálculos visuales

Puede dar formato a un cálculo visual mediante tipos de datos y opciones de formato. También puede establecer una cadena de formato de nivel visual personalizada. Use las opciones Formato de datos en la sección General del panel de formato del objeto visual para establecer 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

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 rectángulos
    • 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
    • Power Apps
    • Power Automate
    • Múltiplos pequeños
    • Eje de reproducción en gráfico de dispersión
  • 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.
  • Al exportar datos desde objetos visuales, los resultados del cálculo visual no se incluyen en la exportación de datos subyacente. Los campos ocultos nunca se incluyen en la exportación, excepto cuando se exportan los datos subyacentes.
  • 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 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.
  • Aunque puede usar parámetros de campo con cálculos visuales, tienen algunas limitaciones.
  • Mostrar elementos sin datos no está disponible con cálculos visuales.
  • No puede usar límites de datos con cálculos visuales.
  • No se puede establecer una cadena de formato dinámico en un cálculo visual ni usar un cálculo visual como una cadena de formato dinámico para un campo o medida.

Next pasos

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