martes, 15 de noviembre de 2016

Operar sobre Totales de una Tabla Dinámica

Hacía tiempo que no escribía algo sobre las tablas dinámicas.
Hoy veremos cómo conseguir aumentar el valor añadido de nuestras tablas dinámicas construyendo campos calculados auxiliares en el origen o fuente de datos, esto es, aumentar el potencial de las tablas dinámicas empleando funciones estándar en el origen.

Empezamos nuestro trabajo a partir de una Tabla:

Operar sobre Totales de una Tabla Dinámica



Este listado representa diferentes registros de órdenes de venta, con dos campos que se refieren a las diferencias entre 'Cantidades Pedidas' y las 'Cantidades Facturadas' realmente.

La meta es generar una Tabla dinámica como la siguiente:

Operar sobre Totales de una Tabla Dinámica


Fijémonos en lo especial del cálculo remarcado.. donde se refleja la 'Diferencia' entre dos Subtotales de datos resumidos (Máximo de la Cantidad Pedida y la Suma de la Cantidad Facturada)!!.

¿Cómo podemos llegar a semejante cálculo?. La respuesta, empleando campos auxiliares en nuestro origen.
Estos campos deberán replicar el cálculo que necesitemos, en nuestro ejemplo en concreto, por un lado generaremos dos campo en nuestro Tabla origen.
1-Uno primero que determinará el valor máximo de la Cantidad Pedida cuando se verifican los criterios de cruce de información que se reflejan en nuestra tabla dinámica, esto es, respecto del Número de orden de venta y de Producto.
Añadimos el primer campo en nuestra Tabla con la fórmula (en este caso matricial!):
=MAX(SI([Descripción Artículo]=[@[Descripción Artículo]];SI([Nro.O/Venta]=[@[Nro.O/Venta]];[Cant. Pedida])))

Operar sobre Totales de una Tabla Dinámica


Con esta fórmula tenemos para cada registro el valor máximo calculado y obtenido mediante la tabla dinámica.

De forma similar generamos un segundo campo auxiliar en la Tabla con la fórmula estándar:
=SUMAR.SI.CONJUNTO([Cant.Facturada];[Descripción Artículo];[@[Descripción Artículo]];[Nro.O/Venta];[@[Nro.O/Venta]])

Operar sobre Totales de una Tabla Dinámica


Con esta fórmula tenemos para cada registro la suma de las cantidades facturadas y obtenido mediante la tabla dinámica.

Un último campo auxiliar (en realidad podríamos hacer todo en uno solo) será la diferencia entre ambos Campo Auxiliares:
=[@Aux1]-[@Aux2]

Campo que precisamente será el que llevaremos, en nuestra tabla dinámica, al área de valores... y muy importante, resumiremos valores como Promedio.
Además en mi caso, he renombrado el campo de valor como 'Dif':

Operar sobre Totales de una Tabla Dinámica



Objetivo logrado, hemos visualizado en la Tabla dinámica una operación sobre dos campos Resumidos como Máximo y como Suma distintos...

2 comentarios:

  1. Hola Ismael, una pregunta es posible tener mas cantidad facturada que cantidad pedida

    ResponderEliminar
    Respuestas
    1. Hola Aldr,
      todo depende de los datos del origen... en principio no tendría mucho sentido, pero todo es posible en la realidad.
      En este caso la Tabla dinámica solo refleja una realidad de datos.

      Saludos

      Eliminar