TOP

DAX-Lección 2. Función CALCULATE

YouLibreCalc for Excel logo

Descripción

La primera función para empezar a aprender DAX es CALCULATE. Esta función no tiene una contraparte exacta en Excel, pero es comparable a funciones SUMIFS y COUNTIFS . En definitiva, esta función aplica filtros a otras funciones de cálculo, por lo que podemos seleccionar e incluir en los cálculos sólo los datos que necesitamos.

Sintaxis de la función CALCULATE()

=CALCULATE(< expresión estadística >, < filtro1 >, < filtro2 >,...)

< expresión estadística >

Expresión estadística debería devolvernos el resultado del cálculo (un valor, no una tabla). Por este motivo, en este entorno se suelen utilizar funciones estadísticas del tipo SUM , MÍNIMO , MÁXIMO , PAÍSES etc.

  1. SUM([ Nombre de columna ])
  2. SUM([ NombreColumnas1 ]) / MAX([ NombreColumnas2 ])
  3. Nombre de otro campo de cálculo (medida)

< filtro1 >, < filtro2 >, ...

Filtrar Define el rango de datos con los que se va a trabajar. Aquí se especifican las condiciones para seleccionar valores.

  1. [ Nombre de columna ] = Auto
  2. [ Nombre de columna ] >= 6
  3. ALL( 'Nombre de la tabla' ) o ALL( 'Nombre de la tabla' [ Nombre de columna ] )
  4. FILTER ( 'Nombre de la tabla' , 'Nombre de la tabla' [ Nombre de columna ] = " Verde ")

Supongamos que tenemos una tabla de este tipo, que se llama Demo y cargado en PowerPivot .

Creemos una tabla de resumen basada en ella y contemos la cantidad de registros para cada producto.

Ahora creemos un nuevo campo de cálculo. (Measure) Count_All_Product en nuestra tabla dinámica, que mostrará el número total de registros en todas las filas.

¿Cómo obtuvimos los números en el campo de cálculo Count_All_Product? dieciséis ? La explicación es que eliminamos para este campo todos los filtros que se aplicaron en la tabla dinámica (cada fila en la tabla dinámica es un filtro separado), usando la función ALL() . En otras palabras, es una función ALL (Demo) da el comando para eliminar todos los filtros para el campo calculado Count_All_Product que se aplican a la tabla Demo .

Agreguemos otro campo (City) en filas para ver las ventas de cada producto por ciudad:

Vemos que los números están en el campo. Count of Rows cambiar, pero no en el campo de cálculo Count_All_Product. Eso es correcto, porque para el último eliminamos todos los filtros de la fórmula. Ahora hagamos algunos cambios menores en nuestra fórmula y veamos el resultado.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Cambiamos el argumento a la función ALL() reemplazando Demo en Demo[Product] . Ahora los filtros no se eliminarán para toda la tabla. Demo , pero sólo para su columna Demo[Product] .

Entonces vemos lo que hay en el campo. Count of Rows Los filtros están en vigor. Product y City y solo un filtro en el campo calculado Count_All_Product City .