Verne academy

VERNE ACADEMY > BLOG > BLOG POWER BI > FUNCIóN CALCULATE EN POWER BI: ¿CUáNDO Y CóMO UTILIZARLA?

Función CALCULATE en Power BI: ¿Cuándo y cómo utilizarla?

Contenidos del Post

¿Para qué sirve la función CALCULATE en Power BI?

Para aquellos que tienen experiencia en el uso de Power BI, es evidente que la función CALCULATE se destaca como una de las principales herramientas DAX en la plataforma. Se trata de una función ampliamente empleada, sumamente beneficiosa y que despliega diversas oportunidades para enriquecer sus análisis. La versatilidad de esta función permite su aplicación de diversas maneras, por lo tanto, en este artículo expondré su funcionamiento y ejemplificaré algunos escenarios comunes de aplicación.

Antes de adentrarnos en este tema, es crucial tener presente que DAX (Data Analysis Expressions) es un lenguaje desarrollado por Microsoft especialmente diseñado para el análisis de datos en modelos de datos tabulares. Puede aplicarse en aplicaciones como Excel, Analysis Services y Power BI. DAX engloba un conjunto de funciones, operadores y constantes que permiten la creación de fórmulas o expresiones con el propósito de calcular y devolver uno o varios valores. En otras palabras, DAX simplifica la generación de nueva información a partir de los datos ya presentes en un modelo.

Sintaxis básica de la función CALCULATE

La función CALCULATE se compone de dos componentes esenciales: la operación de agregación y el filtro.

La primera parte de esta expresión corresponde a la operación de agregación. En esta sección, es posible incorporar cualquier función de agregación deseada, como SUMA (para totalizar ventas), AVG (para promediar precios) u otra función relevante.

La segunda parte de la función implica la especificación de los criterios de filtro o el contexto en el que se va a aplicar. Esta sección determina el conjunto de datos al que se aplicará la operación de agregación mencionada en la primera parte.

Sintaxis DAX para la función CALCULATE en Microsoft Power BI

				
					CALCULATE(<[expression]>,([filter1],([filter2],([filter...]))))


				
			

Debido a la posibilidad de aplicar criterios a una tabla existente antes de la agregación, no es necesario crear tablas individuales para cálculos específicos.

Criterios de filtro único en la función CALCULATE

Veamos otro ejemplo básico. Queremos crear una medida que siempre nos muestre la suma de las ventas de la región “Este” en nuestro conjunto de datos de ventas. Sabemos que vamos a sumar nuestro campo Ventas, pero queremos especificar que solo se sume nuestro campo “Ventas” cuando “Región” = “Este”.

				
					// East Region Sales =

CALCULATE(
    SUM(Orders[Sales],
    [Region]="East")
    )


				
			

Otro caso de uso común del uso de un criterio de filtro es buscar solo las ventas de un año específico, a menudo el año máximo. En este ejemplo, recibimos datos de ventas a nivel de año, por lo que queremos encontrar la suma de las ventas del año más reciente.

				
					//Sales CY =

VAR max_year = MAX(Orders[Year])

RETURN

CALCULATE(
    SUM(Orders[Sales]),
   Orders[Year]=max_year
)

				
			

Múltiples criterios de filtrado en la función CALCULATE

A menudo querrás aplicar más de un criterio al conjunto de datos que estás utilizando para tu cálculo. En este caso, calcularemos los ingresos más recientes utilizando una conferencia específica de la NCAA a partir de un conjunto de datos financieros de la NCAA. Puedes ver que he aplicado varios criterios para este cálculo.

				
					// Big 10 Revenues CY =

VAR max_year = MAX(NCAA_Financials_FCT[Year])

RETURN

CALCULATE(
    SUM(NCAA_Financials_FCT[Total Revenues]),
    NCAA_Financials_FCT[Year]=max_year,
    'Conference DIM'[Conf_Name]="Big Ten Conference"
)

				
			

Al aplicar múltiples filtros para un criterio AND usando la función FILTER para agregar contexto, querrá usar “&&” para agregar criterios.

				
					Big 10 Revenues CY =

VAR max_year = MAX(NCAA_Financials_FCT[Year])

RETURN

CALCULATE(
    SUM(NCAA_Financials_FCT[Total Revenues]),
    
FILTER(NCAA_Financials_FCT,NCAA_Financials_FCT[Year]=max_year &&
    NCAA_Financials_FCT[CONF_ID]="9")

				
			

Al aplicar múltiples filtros para un criterio OR usando la función FILTER, querrá usar un “||” para agregar criterios. La siguiente función devolverá todos los datos que se encuentran en el año máximo o para [CONF_ID] = 1.

				
					//Big 10 Revenues CY Multi OR =

VAR max_year = MAX(NCAA_Financials_FCT[Year])

RETURN

CALCULATE(
    SUM(NCAA_Financials_FCT[Total Revenues]),
    NCAA_Financials_FCT[Year]=max_year
    || NCAA_Financials_FCT[CONF_ID]="1
    )

				
			

Cursos de Power BI

Sácale el máximo partido a los datos y a su visualización con los cursos de Power BI. ¡Conviértete en un experto en BI y certifícate oficialmente con Microsoft!

Función CALCULATE Usando ALL, ALLEXCEPT

En los anteriores ejemplos, hemos generado campos que serán influenciados por cualquier filtro o campo que se aplique a las métricas. Particularmente, al crear métricas específicas como las que hemos desarrollado, es posible que desees que estos valores permanezcan invariables. Esto puede lograrse mediante la utilización de las funciones ALL y ALLEXCEPT.

La función ALL calculará la parte de expresión de su función CALCULATE en todos los datos del conjunto de datos, independientemente de los filtros que se le apliquen. Veámoslo abajo.

				
					//Revenues ALL =

CALCULATE(
    SUM(NCAA_Financials_FCT[Total Revenues]),
    ALL(NCAA_Financials_FCT)
)

				
			

La estructura anterior producirá como consecuencia la presentación de la suma de los ingresos globales sin verse afectada por los filtros. Puedes observar la tabla siguiente en la que, aun cuando se exhibe un campo de “Conferencia,” se despliegan los ingresos totales de todos los datos.

Es factible incorporar ciertos criterios de filtro que permanecerán constantes, sin importar los demás filtros que se apliquen a la métrica. Como se ilustra en el ejemplo siguiente, he establecido un año específico para calcular los ingresos. Sin importar la elección de otros años o conferencias, este valor permanecerá invariable.

				
					//Revenues ALL 2017=

CALCULATE(
    SUM(NCAA_Financials_FCT[Total Revenues]),
    FILTER(ALL(NCAA_Financials_FCT),
        NCAA_Financials_FCT[Year]=2017)
)

				
			
Función CALCULATE usando ALL

La función ALLEXCEPT mostrará todos los datos, similar a la función ALL, excepto que tomará en consideración ciertos campos de filtro según lo especificado. En el siguiente ejemplo, quiero visualizar los ingresos totales por conferencia, pero deseo que los años puedan ser objeto de filtrado. Como se aprecia en la sintaxis, se especifica que el “Año” será el único campo que podrá aplicar filtro en el conjunto de datos que se está sumando.

				
					//Revenues ALLEXCEPT Year =

CALCULATE (
    SUM ( NCAA_Financials_FCT[Total Revenues] ),
    ALLEXCEPT ( NCAA_Financials_FCT,
        NCAA_Financials_FCT[Year] )
)

				
			

Ahora, cuando agregamos este campo a nuestra tabla, podemos ver que el año se está tomando en consideración para la medida Año ALLEXCEPT.

ejemplo funcion calculate usando - Verne Academy

A pesar de que existen diversas alternativas para ajustar el contexto en el que la función CALCULATE incorpora un conjunto de datos, espero que este análisis te haya proporcionado un punto de partida para emplear de manera eficiente esta función.

Cuándo y cómo usar la función CALCULATE

La función CALCULATE resulta sumamente valiosa para realizar cálculos más sofisticados que posibilitan la obtención de información más detallada. Para los analistas, esta función DAX representa una de las herramientas fundamentales.

Es importante destacar que existen muchas otras maneras de emplear esta función, más allá de las que se han mencionado en este artículo. Estos ejemplos son tan solo el comienzo de lo que es posible lograr con CALCULATE.

Curso de DAX Avanzado

Obtén información muy exacta de tus datos de Power BI aprendiendo DAX de 0 a 100 con nuestros técnicos en activo certificados por Microsoft. ¡Conviértete en un experto en BI!
Facebook
Twitter
LinkedIn
Picture of Alberto García Morán
Alberto García Morán
Deja una respuesta

Artículos Recomendados

¿Buscas formación para

ti o para tu empresa?

Desarrolla tu talento o el de tu equipo con formaciones prácticas impartidas por expertos de la industria. Tú eliges la modalidad: formación privada, clases públicas online en directo o cursos on-demand (formación en video). Durante los cursos trabajamos sobre casos reales y soluciones aplicadas en proyectos, basadas en nuestros años de experiencia. ¿Hablamos? 😉

Carrito0
Aún no agregaste productos.
Seguir viendo
0