martes, 6 de marzo de 2018

Power Pivot: Relacionando diferentes tablas

Haremos uso de la herramienta de gestión de base de datos que tenemos a nuestra disposición dentro del entorno de Excel: Power Pivot.

Nuestro punto de partida será una tabla principal (llamada 'TblDatos') con información de Fechas - Producto - Unidades.
Por otro lado tenemos otras dos tablas auxiliares con información de Producto(código/Referencia) - Precio.
Las dos tablas se llaman: 'TblPzs_1' y 'TblPzs_2':

Power Pivot: Relacionando diferentes tablas



El objetivo será relacionar las diferentes tablas entre sí, para mostrar en un informe de tabla dinámica la información cruzada por producto y precio.

Nuestro trabajo consiste en cargar las tres tablas en el complemento Power Pivot, para ello accedemos a la ficha Power Pivot > grupo Tablas > botón Agregar al modelo de datos.
Repetimos el paso para las tres tablas.


En el siguiente paso entramos en el Administrador de Power Pivot: ficha Power Pivot > grupo Modelo de datos > botón Administrar

Power Pivot: Relacionando diferentes tablas



En la ventana del Administrador de Power Pivot iremos a la ficha Inicio > grupo Ver > botón Vista de diagrama.
Veremos nuestras tres tablas cargadas.
Ahora solo tenemos que arrastrar los campos asociados entre las tres tablas... esto es, el campo 'Producto' de la tabla 'TblDatos' hacia el campo 'Código' de la tabla 'TblPzs_1'; y de igual forma, el campo 'Producto' de la tabla 'TblDatos' hacia el campo 'Referencia' de la tabla 'TblPzs_2'.
Veremos nuestras relaciones entre tablas como sigue:

Power Pivot: Relacionando diferentes tablas



Ahora volveremos a la vista de datos (ficha Inicio > grupo Ver > botón Vista de datos).

Accedemos a la 'TblDatos' y agregaremos dos columnas calculadas.
Una primera que llamaré 'Precios' con la siguiente fórmula:
=RELATED(TblPzs_1[Precio])+RELATED(TblPzs_s[precio])

La función RELATED dentro de Power Pivot permite recupera información de campos de otras tablas con las que exista una relación previa.

y una segunda más sencilla que llamaré 'Total' como producto de unidades por precios, con fórmula:
=[Unidades]*[Precios]

Power Pivot: Relacionando diferentes tablas



Por último creamos la tabla dinámica en la hoja de cálculo.
Navegamos, en la venta del administrador de Power Pivot, en la ficha inicio > botón Tabla dinámica > desplegable Crear tabla dinámica

Power Pivot: Relacionando diferentes tablas



Solo nos queda configurar el diseño de la tabla dinámica mostrada en la hoja de cálculo.
Para ello arrastraremos los campos 'Producto' y 'Precios' al área de filas, y los campos 'Unidades' y 'Total' al área de valores resumidos por Suma.

Power Pivot: Relacionando diferentes tablas



Listos.... hemos conseguido nuestro objetivo. A partir de tres tablas tenemos una única tabla dinámica que nos muestra para cada producto el precio correspondiente y el sumatorio acumulado de su importe (unidades x precio).

5 comentarios:

  1. Hola
    Primero gracias por compartir
    Tengo un problema con las tablas de precios que no se cual es la mejor solución. El tema es que tengo productos con sus códigos y sus precios, productos que cambian cada cierto tiempo sus precios y si modifico el precio se cambia en toda la tabla con lo que las ventas anteriores, se modifican.
    Cómo puedo actualizar los precios del mismo producto sin que afecten a las ventas anteriores

    Gracias

    Un saludo

    Francis

    ResponderEliminar
    Respuestas
    1. Hola,
      tendrías que añadir campos nuevos de fechas en tu listado de precios para añadir un Desde - Hasta para las diferentes referencias de productos...
      Luego podrás recuperar precios por producto según fecha
      Saludos

      Eliminar
  2. Gracias por contestar
    Así lo tengo hecho en algún proyecto, creo que es la mejor solución

    Gracias
    Un saludo
    Francis

    ResponderEliminar
  3. Hola, primero que todo agradecer por compartir este blog, es de gran ayuda para mucho que empezamos en este mundo de Power Pivot.

    Tengo una duda y espero que me puedan ayudar. Tengo las ventas de 12 sucursales de una compañía por semana, he incluido las semanas en las filas y en las columnas cada una de las sucursales de manera que podamos ver las ventas por semana de cada sucursal. Sin embargo necesito incluir una columna que sea la suma de las sucursales por semana (pero que no sea la de Totales generales), con tabla dinámica normal (sin power pivot) lo que utilizaba era un "Elemento calculado" Ventas compañia= sucursal 1 + sucursal 2 ... +sucirsal 16. Dado que cada vez tengo más datos, he decidido utilizar power pivot, sin embargo no se como poder obtener esta columna (Total ventas compañía por semana). Me podrías ayudar?

    ResponderEliminar
    Respuestas
    1. Hola,
      unan Tabla dinámica que provenga de Power Pivot se comportará igual a efectos de elementos calculados...
      Si no quieres ver esa suma como Total General, ni como otro campo pocas opciones más tienes.
      Prueba añadiendo una 'medida' en PP que sume el campo de ventas...
      Saludos
      Sa

      Eliminar