top of page
Foto del escritorJaime Franco Jimenez

CALCULATE, FILTER, ALL, KEEPFILTERS

Vamos a ver un ejemplo de CALCULATE, tenemos el modelo con el que suelo trabajar habitualmente.








Vamos a llevar este modelo a Power Pivot, para ello, con una celda dentro del modelo, vamos a la pestaña de Power Pivot, y, hacemos clic en agregar a modelo de datos.








En el área de cálculo, voy a crear una medida que es la suma de la columna total, con la función SUM, la llamare totales.


Para crear una medida, debemos de poner el nombre, seguido de dos puntos, y, el signo igual.


Totales:=SUM(Table1[Total])


Quiero calcular los totales para la provincia de Sevilla, para ello, en el área de cálculo, voy a crear una medida, que la voy a llamar Sevilla, seguido de dos puntos, y, el signo igual (:=), ponemos la función CALCULATE, esta función siempre elimina el contexto de filtro externo, no solo acepta filtros como argumentos, también, acepta modificadores, que pueden ser locales, que afecta a como un filtro se esta aplicando, o, globales, que cambia el comportamiento de CALCULATE.


Sevilla:=CALCULATE(


Como argumento expresión, ponemos la medida de totales.


Sevilla:=CALCULATE([Totales]


Punto y coma, como argumento filtrar1, vamos a usar la función FILTER, esta función tiene dos argumentos que son tabla, y, filterexpression, esta función devuelve una tabla, pues, como argumento tabla, vamos a poner la función ALL, esta función anula cualquier filtro que haya aplicado, dentro de ALL, ponemos la columna de provincia.


Sevilla:=CALCULATE([Totales];FILTER(ALL(Table1[Provincia])


Punto y coma, como argumento filterexpression, ponemos de nuevo la columna de provincia, y, la igualamos a Sevilla.


Cerramos paréntesis y aceptamos.


Sevilla:=CALCULATE([Totales];FILTER(ALL(Table1[Provincia]);Table1[Provincia]="Sevilla"))


Tenemos el total para la provincia de Sevilla.






Ahora, insertamos una tabla dinámica, desde la pestaña de inicio, desplegamos tabla dinámica, y, seleccionamos tabla dinámica.









Llevamos a filas centro, a columnas, producto, y, a valores la medida Sevilla.












Tenemos el total de la provincia de Sevilla, desglosada en centro y producto.









Si quiero ver las provincias de Sevilla y Huelva, modificamos la medida, para ello, volvemos a la pestaña de Power Pivot, desplegamos medidas, y, seleccionamos administrar medidas.










Se abre la ventana de administrar medidas, seleccionamos la medida Sevilla, y, hacemos clic en editar.












Vamos a la ventana de formula, en el argumento filterexpression de FILTER, después de la columna de provincia, ponemos la palabra IN, que es igual que el operador lógico Y en Excel, es decir, devuelve VERDADERO si todas las condiciones se cumples, abrimos unas llaves, ponemos Sevilla entre comillas dobles, punto y coma, entre comillas dobles, ponemos Huelva, cerramos las llaves.









Aceptamos, y, vemos como las cantidades han cambiado.










Antes hemos hablado de modificadores, modificadores son las funciones KEEPFILTERS, ALL, REMOVEFILTERS, CROSSFILTER, o, USERRELATIONSHIP.


Vamos a hablar del modificador KEEPFILTERS, esta función el entorno en que aplicamos los filtros, solo tiene n argumento que es expresión, con la expresión anterior:


=CALCULATE([Totales];FILTER(ALL(Table1[Provincia]);Table1[Provincia] IN { "Sevilla";"Huelva"}))


Calculamos las ventas para las provincias de Sevilla, y, Huelva, vamos a crear una medida, donde usamos CALCULATE, como argumento expresión, ponemos la medida de totales.


=CALCULATE([Totales]


Como argumento filtrar1, ponemos la función KEEPFILTERS, como argumento expresión, ponemos la columna de provincia, igual que antes, ponemos IN, y, entre comillas dobles, ponemos Sevilla y Huelva.


Cerramos paréntesis y aceptamos.








Copiamos y pegamos la tabla dinámica, llevamos a filas, provincias, y, a valores, llevamos la medida Sevilla, y, keepfilter.







¿Qué ha ocurrido?

Pues la medida Sevilla, nos muestra el total de Sevilla, y, Huelva para cada provincia, pero la medida keepfilter, solo muestra el total correspondiente a la provincia de Sevilla, y, el total correspondiente a la provincia de Huelva, manteniendo un espacio en blanco para el resto de provincias.


La medida keepfilter se ha fusionado con el filtro interno de CALCULATE.


CALCULATE está presente, aunque no lo veamos, cuando creamos una medida.



56 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comentários


bottom of page