top of page
Foto del escritorJaime Franco Jimenez

CALCULATE y CROSSFILTER

Vamos a ver un ejemplo de la función CALCULATE, donde se va a ver involucrado las relaciones, siempre es interesante tener relaciones, eso nos permite tener muchos datos divididos en tablas, y, poder usar todos los datos.


Tengo cargado en Power Pivot cuatro tablas, una llamada datos, donde tenemos las ventas realizadas en diferentes fechas, con un idcentro, idproducto, una cantidad, un precio, y, un total.


Además, tengo una tabla llamada centros, donde tenemos idcentro, centro, y, provincia a que pertenece cada centro, otra tabla llamada producto, donde tenemos el idproducto, y, el producto, además de una tabla calendario.






Vayamos a la vista de diagrama, donde tengo realizada las relaciones de uno a varios.


























La tabla de datos es la tabla transaccional, es donde se producen las ventas, las demás tablas son tablas de dimensiones, donde cada registro es único.


En la tabla datos, tengo datos de centros, y, productos.


Lo que haremos en este ejemplo, se aplica a Power BI.


Quiero saber cuántas provincias están vendiendo cada mes, debemos de tener provincias únicas por centros comerciales.


Tenemos una relación de uno a muchos entre la tabla calendario y la tabla datos.












Quiere decir que cualquier filtro que tengamos en la tabla calendario, filtrara la tabla de datos, si hacemos un filtro, por ejemplo, por febrero, la tabla datos quedara filtrada por el mes de febrero, y, podemos obtener información sobre el idcentro, o, idproducto, pero para poder obtener la provincia, debo de ir de la tabla filtrada (datos) hasta la tabla centros, pero debo de ir en el sentido opuesto de la relación.


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











Se abre la ventana de crear tabla dinámica, dejamos marcado nueva hoja de cálculo, y, aceptamos.








Nos llevamos a filas, mes de la tabla calendario, y, provincia de la tabla centros a valores.






Vemos que, para cada mes, aparece el total de provincias.
















Esto es debido a que no existe una relación entre la tabla calendario, y, la tabla centros, es por eso, que, en el recuento, nos aparece el total de provincias.


Quiere decir que necesitamos la tabla datos para nuestro análisis, necesitamos la tabla datos para definir el filtro, para solventar el problema, vamos a crear una medida, para ello, desde la pestaña de Power Pivot, desplegamos medidas, y, seleccionamos nueva medida.












La llamare recuento_proincias.


Vamos a usar la función CALCULATE, porque es la que nos va a permitir modificar el contexto de filtro.








En la ventana de formula, ponemos la función CALCULATE, y, a continuación, la función DISTINCTCOUNT, que nos devuelve los valores únicos de una columna.








Como argumento ColumnName de la función DISTINCTCOUNT, podemos la columna de provincia de la tabla centros, y, cerramos paréntesis.








Punto y coma, como argumento filtrar1, ponemos la tabla datos, y, cerramos paréntesis.







Comprobamos la formula, y, vemos que no hay errores.













Aceptamos, y, vemos como ahora aparecen las provincias que han vendido para cada mes del año 2021, donde desde los meses de julio a diciembre no hubo ventas en provincias.











Quito de filas, la columna de provincia, y, tenemos un análisis más detallado.










Veamos cómo funciona esto.


Voy a copiar y pegar la tabla dinámica.










Voy a dejar solo los meses, que es nuestro punto de partida.















Bajo provincia de la tabla centros a filas, y, tenemos todas las provincias para cada mes.


















Ponemos el informe en modo tabular, para ello, vamos a la pestaña de diseño, desplegamos diseño de informe, y, seleccionamos mostrar en formato tabular, para ver en un lado el centro, y, en otro lado la provincia.























En este caso, no tenemos relación.


Ahora vamos a involucrar la tabla datos, voy a llevar a valores, por ejemplo, la columna de cantidad.






Vemos las cantidades vendidas por mes y centro comercial, pero, podemos ver como de forma automática, se ha actualizado la tabla dinámica, ahora, vemos que por ejemplo para enero, solo se vendió en la provincia de Jaén, así para el resto de los meses.









Vemos en la primera tabla que para el mes de enero, hay un recuento de 1, que es justo lo que tenemos en la segunda tabla dinámica.


Si verificamos ambas tablas, veremos que el conteo de la primera tabla dinámica, corresponde con las provincias que aparecen en la segunda tabla dinámica.

Así es como actúa la tabla de datos como un filtro, pero en segundo plano.


Otra forma que podemos hacerlo, es con la función RELATED, volvemos a Power Pivot, vamos a la tabla de datos, y, añadimos una nueva columna, donde usamos RELATED, y, ponemos la provincia de la tabla centros.


=RELATED(Centros[Provincia])


Vemos que aparece la provincia a la cual pertenece el idcentro.










Creamos otra tabla dinámica, donde nos llevamos a filas mes de la tabla calendario, y, la columna calculada a valores.







Vemos que aparecen resultados diferentes, eso es porque no son valores únicos, para ello, hacemos clic en la punta de flecha que mira hacia abajo del campo recuento de ventas provincia, y, seleccionamos configuración de campo de valor.










En la ventana resumir campo de valor por, seleccionamos recuento distinto, y, aceptamos.













Vemos que tenemos los mismos resultados.








En Power Pivot, no podemos usar el filtro cruzado, pero si podemos usarlo a través de una medida, que nos permite cambiar la dirección de una relación, esta función tiene dos argumentos que es columnas para relacionar, y, tipo de relación, por lo que vamos a crear una nueva medida.


Como nombre, le voy a poner provincias únicas, y, en la ventana de formula, todo es igual, excepto, el argumento filtrar1, donde usamos la función CROSSFILTER, como argumento columna de la izquierda, selecciono idcentro de la tabla datos, como argumento columna de la derecha, selecciono idcentro de la tabla centros, punto y coma, y, como argumento tipo selecciono both (ambos), cerramos paréntesis, y, aceptamos.








Lo llevamos a la tabla dinámica, y vemos que tenemos los mismos resultados.










19 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page