jueves, 27 de agosto de 2009

Tabla dinámica: Campos calculados.

Dando un repaso por lo ya explicado sobre las tablas dinámicas he echado de menos un apartado importante: los campos calculados.
Supongamos un listado con varios campos, y por hablar de algo ya conocido, supondremos que hablamos de nuestro pequeño comerciante, del que hablamos en entradas anteriores. Nuestro comerciante ahora necesita saber cual ha sido su precio medio de cada unidad vendida en los meses que lleva abierto el negocio. Para ello decide emplear las tablas dinámicas, en concreto la utilidad de los campos calculados.
Partimos de una tabla dinámica que recoge el rango de datos donde se hallan todos nuestros registros, configurada de tal forma que en el área de columnas veamos el número de unidades vendidas y además el importe en euros de lo vendido; cruzado por el campo agrupado en meses y años del área de filas, tenemos la siguiente estructura de Tabla dinámica:


Desde la barra de herramientas 'Tabla dinámica' desplegamos el listado de utilidades y seleccionamos Fórmulas - campo calculado:


En esta ventana diálogo es donde configuramos el nuevo campo calculado; le damos un nombre y posteriormente definimos la fórmula que queremos aplicar sobre ese campo (en general sólo admite operaciones sencillas). Una vez realizada la operación Aceptamos y ya podemos ver en nuestro Listado de campos ese nuevo campo calculado. Remarcar que sólo existe en la memoria interna de la Tabla dinámica, y que nuestro origen de datos permanece intacto.
Quedaría entonces nuestra Tabla dinámica como sigue:


La interpretación de los resultados de este campo calculado sería que para enero de 2008 el precio medio obtenido por cada manual que se vendió fue de 204,11 eur, puesto que en todo ese mes se ingresó 84.500 eur y se vendieron un total de 414 manuales (84.500/414 = 204,11 eur/udad).
Para descargar el fichero

Tablas dinamicas-campo calculado
Tablas dinamicas-c...
Hosted by eSnips

20 comentarios:

  1. Hola a todos.

    Tengo un duda, se puedes hacer un campo calculado que te vaya dando el resultados acumulado, por ejemplo enero $100 febrero $50 en febrero te de la suna de eso y asi mes tras mes, (en el mes de mayo te traiga la suma de enero a mayo). garcias.

    ResponderEliminar
  2. Hola,
    en principio no sería necesario crear un campo calculado, sólo necesitaríamos configurar el campo 'Resultado' y Mostrar valores como 'Total en' empleando como 'Campo base' el campo 'Mes'.
    Puedes ver un ejemplo similar en
    http://excelforo.blogspot.com/2009/12/histograma-acumulado-con-tablas.html
    donde se configura un campo 'Frecuencia'.
    Slds

    ResponderEliminar
  3. Hola, estoy buscando información para un problema con campos calculados en una tabla dinámica y he encontrado muchas referencias a este artículo. Te lo comento a ver si alguna vez has tenido el mismo problema.

    Supongamos que tenemos una tabla muy simple con 3 columnas y dos registros tal que:

    Nombre | Valor1 | Valor2
    A1 | 2 | 4
    A1 | 3 | 8

    Hago una tabla dinámica que tiene el Nombre como rótulo de fila y los dos valores para el detalle.

    Por defecto hace una suma de cada uno de ellos, pero cambio el Valor2 a Min, dando la siguiente tabla dinámica:

    nombre | suma de Valor1 | Min de Valor2
    A1 | 5 | 4

    Mi problema empieza por algo simple, quiero añadir un campo calculado que muestre el Min de Valor 2, que sería el 4 que ya aparece, pero haga lo que haga, en cuanto referencio al campo Valor2 el campo calculado siempre hace una suma y siempre me muestra un 12 (8+4).

    ¿sabes si tiene solución?

    Muchas gracias!!!

    ResponderEliminar
  4. Hola Vermin,
    la verdad no me había planteado nunca esta situación, ya que si lo que quiero obtener es el valor mínimo de un campo, lo hago directamente desde la configuración del campo (como tu planteas).
    De todas formas analizando un poco el tema, si te das cuenta, al configurar tu campo calculado, la única opción que permite al insertarlo es la opción 'Sumar'; lo que confirma tus sospechas y las mías ahora, y es que el campo calculado sólo permite inicialmente sumar valores de un campo...
    Le seguiré dando vueltas al asunto por si encuentro una solución.
    Slds

    ResponderEliminar
  5. Hola

    Tengo creada una tabla dinamica, he creado un nombre nuevo en la hoja de escel que tengo la informacion, cuando actualizo la tabla dinamica me dice que si deseo reemplazar las celdas de destino, y me cambia todas las formulas.
    No se como arreglarlo, nunc me habia pasado.
    Muchas gracias.

    ResponderEliminar
  6. Hola!!!
    ¿podrías mandarme el fichero a
    excelforo@gmail.com??
    Le echaré un vistazo...
    Pero ese mensaje aparece cuando hay celdas ocupadas en el rango a desplegar de la TD. ¿Te has asegurado que no existe ninguna celda con valores cerca de donde tienes la TD???
    Slds

    ResponderEliminar
  7. Necesito hacer una table dinamica en la qe me compare los precios de diferentes articulos, de diferentes meses y me muestre la diferencia, realicé una tabla y solo me muestra la dif de ambos meses, por ejemplo en feb la paleta costaba $10 y en marzo $15, en marzo me muestra $ y eb febrero, vacio-
    Me podrian ayudar para que me muestre el precio de febrero, marzo y la diferencia?

    Gracias

    ResponderEliminar
  8. Hola,
    por lo que logro entender, lo que quieres es aplicar un Elemento calculado como diferencia de dos elementos (Feb y Mar). Para que además te aparezcan los elementos Feb y Mar con sus valores, sólo debes sacarlos al área de columnas (me imagino que lo estás analizando ahí).
    De tal modo que en tu Area de columnas tendrías el campo MES con los elemento Feb, Mar y el nuevo elemento creado 'Dif'.
    Si no ves claro el tema, envíame un ejemplo a:
    excelforo@gmail.com
    Slds

    ResponderEliminar
  9. nunca encuentro una respuesta concreta ... clara y simple que me diga QUE RAYOS ES EL CAMPO CALCULADO!!!... o ELEMENTO CALCULADO...¬¬

    ResponderEliminar
  10. Hola, que tal?
    un campo calculado en una tabla dinámica es un campo 'virtual' generado por el usuario, que no existe realmente en el origen de datos, además decimos que es 'calculado' por que se genera en función de campos existentes previamente en nuestra tabla dinámica. A todos los efectos estos 'campos calculados' funcionan como cualquier otro campo 'original' o normal.
    Por extensión un elemento calculado es aquel elemento generado por el usuario, que no existía previamente entre los elementos previos de un campo en el origen de datos, y que también se crea a partir de otros elementos.
    Espero te queda clara y simplemente explicado.
    Un cordial saludo.

    ResponderEliminar
  11. hola te felicto por tu foro es muy interesante, tengo una consulta q por favor me gustría puedas ayudarme, Si genero una tabla dinámica que me permita mostrar en el rótulo de filas región y en el rótulo de valores la suma de ventas. Como hago para generar un elemento calculado considerando para el siguiente año el 10% de incremento en la región norte y 12% en la región sur. Además Agrupar según corresponda ( Año Actual , Año Sgte.)
    Siendo esta mi tabla base
    REPORTE DE VENTAS PRIMER SEMESTRE 2010
    Región Vendedor Producto Mes Ventas

    Gracias por tu apoyo

    ResponderEliminar
    Respuestas
    1. Hola, Muchas gracias!!
      Es difícil darte una respuesta sin tener claro los datos con los que trabajas.
      Puedes ver cómo construir un Elemento calculado en
      http://excelforo.blogspot.com.es/2010/02/elementos-calculados-en-tablas.html

      De todas formas me parece que más bien tu necesitas un Campo calculado condicionado a la región, y no un elemento calculado... ya te digo que preferíría ver los datos.

      Si quieres envíame el fichero a
      excelforo@gmail.com
      y le echo un vistazo.
      Slds cordiales

      Eliminar
  12. Gracias Isamel por tu ayuda te envio los datos al gmail.

    ResponderEliminar
  13. hola bloggers, he escrito una entrada pero creo que no se ha publicado correctamente :( vuelvo a explayarme jeje
    Tengo una tabla dinámica que hasta ahora me había funcionado bien esta separada por meses y contiene mucha información, ahora quisiera tener la misma información pero representada por una semana del mes, es decir, si este mes tiene 4 semanas que la tabla cogiera el dato y lo dividiera por 4 (para hacerme una idea de la media de ventas semanal por ejemplo), el problema esta que no todos los meses tienen las mismas semanas. Pensando en como hacerlo me decante por intentar crear un campo calculado por cada información y añadir una columna a la bbdd que representara en todas las filas por mes cuantas semanas tiene (pensé pongo promedio en la tabla y listo) lo formule así en el campo calculado ='ventas'/promedio('semanas') pero este campo no me dio el resultado correcto :(, se puede utilizar promedio? esta mal planteada la formula? porque si yo añado la fila semanas y pongo que me salga promedio si que me da el número correcto... sino de esta forma se os ocurre como puedo solventar mi problema, de esta manera tendría que hacer muchos campos calculados para completar por semanas todos los datos! cualquier idea la agradezco

    ResponderEliminar
    Respuestas
    1. Hola,
      la idea que has intentado me parece buena, aplicar para cada registro de la BBDD original (de donde sale la TD) un campo auxiliar calculado... para determinar el número de semana del año puedes emplear la función NUM.SEMANA, puede ver un ejemplo en
      http://excelforo.blogspot.com.es/2013/04/obtener-numero-de-semana-dentro-de-un.html
      Luego sólo te quedará Resumir por... Suma, promedio o por lo que necesites sobre ese campo nuevo.

      Espero haberte comprendido bien
      Saludos

      Eliminar
  14. Hola Ismael, dispongo de una tabla que contiene la siguiente información

    Persona - Mes - Horas totales asignadas - Horas consumidas
    P1 - 10 - 100 - 10
    P2 - 10 - 100 - 5
    P1 - 11 - 100 - 10
    P2 - 11 - 100 - 5

    La idea es obtener la diferencia entre Horas Asignadas y Horas consumidas.

    Si hago una TD ubicando en las filas la Persona y en Valores los Totales asignados los multiplica tantas veces como esté, cuando realmente es una "referencia absoluta" dentro de la TD. ¿Hay alguna forma de que se calcule para cada persona la diferencia entre Horas totales (sin sumar todas las veces que aparezca) y la SUMA de las horas consumidas?

    Porque estoy probando con un campos calculados y siempre se suman. Gracias de antemano

    ResponderEliminar
  15. Actualmente lo que obtengo es :

    P1 - 200 - 20 - 180 (diferencia de (100+100) - (10+10)
    P2 - 200 - 10 - 190 (diferencia de (100+100) - (5+5)

    Y lo que quiero obtener es:

    P1 - 100 - 20 - 80 (diferencia de 100 - (10+10)
    P2 - 100 - 10 - 90 (diferencia de 100 - (5+5)

    A ver si así se ve más claro.

    ResponderEliminar
  16. Tengo una duda con respecto a los campos calculados.
    Tengo una tabla dinámica que muestra por zona las ventas máximas de los vendedores, lo que quiero es calcular un 5% de comisión sobre esas ventas máximas, y no me deja porque calcula el 5% sobre la suma de ventas, pero no sobre las máximas. Hay alguna forma de hacerlo o el campo calculado se limita a las sumas?
    Otra duda, me confundí en el campo calculado y en lugar de un 5% puse un 7% como hago para entrar nuevamente sobre el campo calculado y corregirlo?

    ResponderEliminar
    Respuestas
    1. Hola
      los campos calculados siempre operan sobre el acumulado (sumado) de los diferentes elementos mostrados.. para trabajar sobre el máximo podrías generar un campo auxiliar en la tabla origen con el que consigas un campo 'normal' al que poder aplicar ese 5%.
      En todo caso para modificar un campo calculado entra a la misma sección en que lo creaste y despliega el nombre.. te aparecerán todos los campos calculados existentes, selecciona el deseado y cambia la fórmula

      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.