Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:✅ Power BI Escritorio y servicio Power BI
Un cálculo visual es un cálculo DAX que se define y se ejecuta directamente en un objeto visual, en lugar de agregarlo al modelo semántico. Dado que un cálculo visual funciona con los datos que ya se muestran en el visual, puede realizar cálculos empresariales habituales, como totales acumulados, medias móviles y comparaciones entre períodos, sin tener que lidiar con el contexto de filtro ni con las relaciones del modelo. El resultado suele ser un código DAX más corto, más fácil de mantener y que a menudo ofrece mejor rendimiento que una medida equivalente.
En este artículo se explica qué son los cálculos visuales, cómo se comportan en la matriz visual, cómo funcionan los parámetros que los controlan y cómo difieren de las medidas y las columnas calculadas, por lo que puede decidir cuándo un cálculo visual es la opción adecuada.
Este es un cálculo visual de ejemplo en el que se define una suma acumulada para Monto de Ventas. El DAX necesario es sencillo:
Running sum = RUNNINGSUM([Sales Amount])
Un cálculo puede referirse a cualquier dato del visual, incluidas columnas, 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 visuales para completar cálculos comunes en los negocios, como sumas acumuladas o medias móviles.
Los cálculos visuales difieren de las otras opciones de cálculo en DAX:
- Los cálculos visuales no se almacenan en el modelo. En su lugar, los almacena en el objeto visual. Esta limitación significa que los cálculos visuales solo pueden hacer referencia a lo que está en el objeto visual. Debe agregar cualquier elemento del modelo al objeto visual antes de que el cálculo del objeto visual pueda hacer referencia a él. Esta restricción libera los cálculos visuales de preocuparse por la complejidad del contexto de filtro y el modelo.
- 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.
- En comparación con las medidas, los cálculos visuales funcionan en datos agregados en lugar del nivel de detalle, lo que a menudo conduce a ventajas de rendimiento. Cuando un cálculo se puede lograr mediante una nueva medida o un cálculo visual, este último suele mejorar el 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, 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.
Dado que almacena un cálculo visual en el objeto visual, puede hacer referencia a cualquier cosa en el objeto visual : columnas, medidas u otros cálculos visuales, pero nada más en el modelo. La mayoría de los cálculos visuales evalúan la fila por fila en la matriz visual, por lo que las funciones de agregación como SUM suelen ser innecesarias. No puede usar funciones que dependan de las relaciones del modelo: USERELATIONSHIP, RELATED y RELATEDTABLE.
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.
Funciones DAX disponibles en cálculos visuales
Muchas funciones DAX existentes funcionan en cálculos visuales. Dado que los cálculos visuales 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 visuales también presentan un conjunto de funciones específicas para cálculos visuales. Muchas de estas funciones son accesos directos más fáciles de usar para 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 de forma vertical a través de las filas de arriba hacia abajo. |
|
COLUMNS | Calcula horizontalmente a través de las columnas desde la izquierda hacia la derecha. |
|
ROWS COLUMNS | Calcula verticalmente entre filas de arriba a abajo, continuando columna por columna de izquierda a derecha. |
|
COLUMNS ROWS | Calcula horizontalmente entre columnas de izquierda a derecha, continuando fila por fila de arriba a abajo. |
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. El Reset parámetro controla si y cuando la función restablece su valor a 0 o cambia a un ámbito diferente mientras recorre la matriz visual. Controla este comportamiento mediante la creación de particiones de la columna de destino. A medida que se producen cálculos dentro de una partición, la forma en que la columna se divide en particiones determina si se restablece un cálculo.
El valor predeterminado del Reset parámetro es NONE, lo que significa que el cálculo visual nunca se reinicia.
El Reset parámetro acepta diferentes tipos de valores:
- Enteros
- Referencias de columna
- Sinónimos especiales: HIGHESTPARENT, LOWESTPARENT,NONE
En cada caso, el parámetro especifica un único nivel en la jerarquía de cálculo visual (el nivel de destino). Sin embargo, el modo en que el cálculo interpreta este nivel puede variar.
El Reset comportamiento funciona en dos modos diferentes: absoluto y relativo.
Cuando usa valores enteros para el parámetro o sus equivalentes NONE, HIGHESTPARENT y LOWESTPARENT, puede elegir entre estos dos modos según el signo del entero: los valores positivos provocan un restablecimiento en modo absoluto y los valores negativos provocan un restablecimiento en modo relativo (y el valor cero no provoca ningún restablecimiento, que es el comportamiento predeterminado).
Si especifica una referencia de columna, también está operando en modo absoluto. Estos valores determinan cómo se particiona la columna de destino y, por tanto, si se restablece. En las secciones siguientes se describen estos dos modos:
Modo de restablecimiento absoluto
El modo absoluto es un comportamiento del Reset parámetro en los cálculos visuales. Este modo indica que el cálculo debe dividirse según la columna de destino y todas las columnas situadas por encima de ella. Esta regla se aplica en todos los niveles del cálculo. En los niveles por encima de la columna de destino (donde la columna de destino no está presente, y posiblemente tampoco otras columnas), el cálculo se divide según las columnas restantes disponibles. El valor entero positivo identifica la columna de destino a partir de la parte superior (la columna superior es 1, la siguiente es 2, etc.). Sube a N (el número de columnas de la jerarquía) y se recortan los valores más altos. Como alternativa, 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
El modo relativo es un comportamiento del Reset parámetro en los cálculos visuales. Dado un valor entero negativo –X, en cada nivel el cálculo se particiona según todas las columnas situadas X niveles o más por encima de este en la jerarquía (o no se particiona en absoluto si no existe ningún nivel de ese tipo). Los valores válidos para este modo están entre -1 y -N+1 (donde N es el número de columnas de la jerarquía) y se recortan los valores inferiores. De nuevo, considere un cálculo visual con estos niveles de jerarquía: Año, Trimestre, Mes y Día. La siguiente tabla muestra cómo se divide el cálculo en particiones en cada nivel según el valor de Reset
| 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
Considere un cálculo visual con estos niveles de jerarquía: Año, Trimestre, Mes y Día. Los siguientes cálculos visuales son equivalentes y devuelven la suma del Importe de ventas, que se reinicia cada año, independientemente del nivel en que se evalúe el cálculo (consulte modo de restablecimiento absoluto):
RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])
En cambio, los siguientes cálculos visuales devuelven la suma de Importe de ventas que comienza a partir de 0 para cada elemento primario inmediato, que depende del nivel en el que se evalúe el cálculo (consulte el modo de restablecimiento relativo).
RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)
Por último, este cálculo visual no se restablece y continúa agregando el valor Importe de ventas para cada día a los valores anteriores, sin reiniciar.
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 solo un nivel. Reset espera varios niveles en el eje, por lo que no funciona cuando solo hay un campo o cuando existen varios campos en un solo nivel en el eje.
Selectores de parámetros
Los selectores de parámetros facilitan la selección de valores para los parámetros en las funciones de cálculo visual. Por ejemplo, en la siguiente imagen, verá la plantilla Buscar un valor con totales cargada:
También puede activar los selectores de parámetros mediante el método abreviado de teclado 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.
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. Busque un valor o evalúe una expresión en la matriz visual dentro del contexto actual mediante la LOOKUP función .
- Busque un valor con totales. Busque un valor o evalúe una expresión en la matriz visual con totales mediante la LOOKUPWITHTOTALS función .
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.
Al ocultar campos, no se eliminan del objeto visual ni de la matriz visual, por lo que los cálculos visuales todavía pueden referirse a ellos y seguir funcionando. Un campo oculto sigue apareciendo en la matriz visual, pero no se muestra en el objeto visual resultante. Incluya solo campos ocultos si son necesarios para que funcionen los cálculos visuales.
Dar formato a un cálculo visual
Dar formato a un cálculo visual mediante tipos de datos y opciones de formato, o mediante una cadena de formato de nivel visual personalizado. Las opciones Formato de datos de la sección General del panel de formato controlan el formato.
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
- Múltiplos pequeños, eje de animación en el gráfico de dispersión
- Objetos visuales personalizados
Características no admitidas
Las siguientes características no están disponibles con cálculos visuales:
- Filtrado, ordenación o cambio de agregaciones
- Autoreferencia (un cálculo no puede referirse a sí mismo)
- Copiar, pegar o reutilizar en objetos visuales
- Categorías de datos, límites de datos o mostrar elementos sin datos
- Cadenas de formato dinámico (no se pueden establecer ni usar como cadena de formato)
- Personalización de cálculos visuales o campos ocultos
- Puede establecer alertas en los cálculos visuales, pero los cambios en los valores de cálculo visual no desencadenan las alertas.
- Ver detalles de registros
- IntelliSense para Power BI incrustado
Limitaciones de publicación y uso compartido
- No se puede anclar a los tableros de control
- No se puede usar Publicar en web
- Las exportaciones de datos excluyen los resultados del cálculo visual; Los campos ocultos solo aparecen en las exportaciones de datos subyacentes
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.
Contenido relacionado
Para obtener más información sobre el uso de cálculos visuales, consulte los siguientes recursos:
- Creación de cálculos visuales
- Módulo de entrenamiento: Creación de cálculos visuales en Power BI Escritorio
- Usar opciones de cálculos en Power BI Desktop
- Creación de medidas para el análisis de datos en Power BI Desktop
- Crear y dar formato a visualizaciones de tabla en Power BI: incluye totales personalizados, que funcionan con cálculos visuales.