Esta es la cuarta entrada de una serie más amplia: Busca la Serie Power BI
Volvemos a abrir nuestro Caso Práctico de Negocio en Power BI.
Y volvemos al Editor de Power Query.
Tengo interés en conocerte. Si quieres que te doy acceso a los ficheros de ejemplo:
-
- La BBDD SQLyBI.bak
- Y el CasoPowerBI 2.pbix, y las versiones siguientes.
Solo tienes que ponerte en contacto conmigo o dejar un comentario en la entrada, lo que prefieras.
Reducir dimensiones Artículo y Cliente
Esta es la situación inicial.
Entra a la pestaña del Modelo de Datos, marcado con un círculo rojo a la izquierda.
Si las tablas no están en esa posición las puedes arrastrar y mover cogiéndolas del encabezado y puedes cambiar su tamaño desde la esquina inferior derecha de cada tabla.
Tenemos un Modelo en Copo de Nieve con una tabla de Hechos en el centro (Facturas) y dos tablas de dimensiones (Artículos y Clientes) que a su vez se ramifican en otras, donde tenemos los nombres de los Colores, Familias para los Artículos y Sectores para los Clientes.
Queremos eliminar las ramificaciones para tener un Modelo en Estrella. Es decir que solo tengamos la tabla de Hechos en el centro (Facturas) y las dos tablas de dimensiones (Artículos y Clientes). Sin más ramificaciones. La captura siguiente es el resultado esperado.
Manos a la obra:
Comenzamos por la Tabla de Artículos, volvemos a entrar en el Editor de Power Query.
Esta es la tabla Artículos.
Hagamos una transformación rápida para cambiar el nombre de Familia a CodFamilia y de Color a CodColor, para que luego nos encajen los nombres.
Queremos que incluya, además de los códigos, los nombres de la Familia y del Color.
Para hacerlo solo tenemos que combinar con la tabla Familias, tal como hicimos con FacturasCab, te lo recuerdo en esta captura.
Aparece una nueva columna que tenemos que expandir, también te recuerdo cómo hacerlo.
Y el resultado es que aparece el campo Familia.
Repite el proceso para el Color y el resultado debería ser este:
Ahora y tal como hicimos en FacturasCab, con las tablas que no vamos a usar, quitamos el check Habilitar carga para que no pasen a Power BI.
Ya hemos acabado con la Tabla Artículos.
Te dejo que hagas lo mismo con la Tabla Clientes y el Sector.
Y finalmente puedes mover las Consultas, para agruparlas como quieras o incluso mejor ordenarlas en grupos, con el botón contrario sobre la tabla que quieras:
Cerrar y aplicar los cambios en el Editor de Power Query para volver a Power BI.
Así Queda nuestro modelo en Estrella por ahora.
Vamos a ponerle otra pata a la estrella.
Tabla de Fechas o Calendario, Dimensión tiempo
Necesitamos una tabla de fechas.
-
- Para poder analizar las facturas de este año respecto al año anterior.
- Para analizar venta en facturas de los últimos 12 meses desde hoy (TAM) Tasa Anual Móvil,
- Para comparar mes a mes, etc.
La tabla de fecha se puede crear en PowerBI y contiene todos los días desde el 1 de enero del año de la factura más antigua hasta el 31 de diciembre del año de la factura más reciente.
Vamos a hacerlo, para ello vamos a crear una Nueva Tabla a partir de una expresión DAX.
Copias y pegas esto:
Calendario =
GENERATE (
CALENDAR(DATE(YEAR(MIN(Facturas[Fecha]));1;1);DATE(YEAR(MAX(Facturas[Fecha]));12;31));
VAR currentDay = [Date]
VAR ano = YEAR ( currentDay )
VAR Nmes = MONTH ( currentDay )
VAR Mes = FORMAT([Date];»mmmm»)
VAR NSemana = WEEKNUM(currentDay)
RETURN ROW (
«AñoMes»; mes & «-» & ano;
«Año»; ano;
«Nmes»; Nmes;
«Mes» ; Mes;
«NDiaSemana»; WEEKDAY(currentDay;2);
«DiaSemana»; FORMAT(currentDay;»dddd»)
))
Ya tenemos la nueva “pata” de nuestro modelo en Estrella.
La tarea de Modelar consiste en crear las tablas idóneas para nuestro modelo en Estrella, tal como acabamos de hacer.
Y crear las relaciones en el modelo que vamos a hacer ahora mismo.
Se trata de cambiar esas líneas rojas, pintadas en Photoshop en las capturas de pantalla, por las verdaderas relaciones, que serán tres, tantas como tablas de Dimensiones:
Artículos: CodArticulo con CodArticulo de Facturas
Clientes: CodCliente con CodCliente de Facturas
Calendario: Date con Fecha de Facturas
Para ello tenemos dos formas de hacerlo:
La primera arrastrando los campos de las tablas de Dimensiones a la tabla de Hechos (ver captura) Atención hay que dejar CodCliente justo encima de CodCliente.
La segunda es mediante la tabla de relaciones, pulsando en el Administrador de Relaciones (ver captura) donde podemos crear nuevas relaciones o bien editar o eliminar antiguas.
NOTA IMPORTANTE: No aconsejo detección automática de relaciones y además recomiendo comprobar SIEMPRE que las relaciones están correctamente creadas, es básico y clave para el resultado final del proyecto.
Finalmente, solo nos queda indicarle al Modelo que marque esta tabla como Tabla de Fechas y seleccionar la columna de Fecha Date como la Clave de la tabla.
Algunas cositas más para tener un mejor Modelo serían:
Decirle al modelo, que columnas debe mostrar como suma. Esta claro que el número de línea de factura es un dato informativo que no tiene sentido sumar, tampoco el SFac, ni el PrecioNeto ni el coste ya que son precios unitarios, más adelante veremos como crear las Columnas Calculadas ImpVenta y ImpCoste.
En nuestro caso solo la cantidad debería quedar como Suma (con el símbolo Sumatorio)
Hasta aquí hemos realizado las Consultas y trabajado el Modelo.
Nos queda la Visualización, la próxima entrada.
Tengo interés en conocerte. Si quieres que te doy acceso a los ficheros de ejemplo:
-
- La BBDD SQLyBI.bak
- Y el CasoPowerBI 2.pbix, y las versiones siguientes.
Solo tienes que ponerte en contacto conmigo o dejar un comentario en la entrada, lo que prefieras.