Información de la función CALCULATE

Completado

Al final de esta unidad, tendrá un conocimiento sólido de cómo la función CALCULATE es una de las funciones más versátiles en Power BI.

A grandes rasgos, tiene control sobre el contexto de fila y de filtro. Con la función CALCULATE, puede agregar filtros, quitarlos y actualizarlos. Eso habla de una función muy eficaz.

Incorporación de un filtro con CALCULATE

En primer lugar, se explica cómo agregar un filtro con la función CALCULATE.

Tabla de datos a la que se hará referencia al agregar un filtro con la función CALCULATE.

Tiene las ventas totales de la tabla de datos anterior:

Total Sales = SUM( [Sales Amount] )

También tiene una versión filtrada de las ventas totales, en las que evalúa las ventas totales y aplica un contexto de filtro de avión:

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

Sugerencia

CORRELACIÓN CON TABLEAU: En este fragmento de código se muestra cómo se realizaría el mismo cálculo en Tableau: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)

Omisión de un filtro con CALCULATE

A continuación, se explica cómo omitir un filtro con la función CALCULATE.

Tabla de datos a la que se hará referencia al omitir un filtro con la función CALCULATE.

En la tabla de datos anterior, tiene las ventas totales por estado en una columna y las ventas totales por todas las geografías en la columna siguiente. Esta columna será útil cuando busque realizar un análisis del porcentaje del total de cada estado (o fila).

La manera más común de realizar un porcentaje del total en DAX es con la función ALL.

Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )

En el código anterior, ve la tabla Geography (Geografía) e incluye todos los valores que contiene. No restrinja el contexto de filtro.

Sugerencia

CORRELACIÓN CON TABLEAU: En este fragmento de código se muestra cómo se realizaría el mismo cálculo en Tableau con la expresión EXCLUDE LOD: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }

Otro ejemplo de filtro de omisión tendría un aspecto similar al siguiente:

Tabla de datos a la que se hará referencia al omitir filtros con la función CALCULATE.

En la tabla anterior, tiene las ventas totales por estado, las ventas totales por todas las geografías (con todos los filtros de geografía excluidos) y, por último, tiene el total de ventas por todos los estados, pero con el filtro de ciudad todavía aplicado.

En función de la imagen, la ciudad de "Alexandria" existe en varios estados. Por lo tanto, solo quiere encontrar las ventas totales de los estados en los que existe la ciudad de "Alexandria":

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

Sugerencia

CORRELACIÓN CON TABLEAU: Esta es la forma en que realizaría el mismo cálculo en Tableau con la expresión EXCLUDE LOD. Verá que esta expresión LOD difiere de la otra en su granularidad. Con esta expresión, solo quiere excluir de la vista el estado, en lugar del estado y la ciudad: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }

Actualización de un filtro con CALCULATE

Por último, el tutorial final para resaltar la utilidad de la función CALCULATE será mediante la actualización de un filtro.

Tabla de datos a la que se hará referencia al actualizar un filtro con la función CALCULATE.

En la tabla de datos anterior, tiene las ventas totales globales (omitiendo el año), las ventas totales que toman el contexto de filtro aplicado por la segmentación en el objeto visual y, luego, la última columna es el total de ventas solo para el año 2018.

Para obtener la columna "2018 Sales" (Ventas de 2018), deberá escribir algo parecido a esto:

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

Sugerencia

CORRELACIÓN CON TABLEAU: Esto resulta interesante porque no parece haber una comparación directa con Tableau. Para hacer esto en Tableau, tendría que duplicar campos, traer orígenes de datos adicionales o realizar cálculos en cada columna.

Tableau, actualmente no disponible. Power BI, controle el contexto de filtro mediante la actualización del filtro con la función CALCULATE.

Resumamos lo que revisó en esta unidad sobre la función CALCULATE:

  • Cualquier expresión se puede colocar como primer argumento.

  • La expresión examina todo el contexto de filtro de la página (las segmentaciones para la visualización).

  • Si hay filtros, se agregarán.

  • Si hay un filtro que ya está en la lista de filtros y es el mismo que el contexto de página, lo invalidará.

  • Después de todos esos matices mencionados, finalmente evaluará la expresión.

Nota

Obviamente, esto no es algo que deba hacer sin comprobar las respuestas para entender realmente el orden de las operaciones. Debería preguntarse"¿Se cancelaron mis filtros o no?"