Observación: esta técnica se aplica a Excel Clásico. Excel 2007 tiene un método incorporado para solucionar este problema.
Supongamos este modelo en una hoja de Excel
Vemos una tabla/lista en el rango A1:C19 que sirve como base de datos para la tabla dinámica que vemos a la derecha en el rango E1:I9
La tabla dinámica muestra todas las ventas de los agentes para todos los meses que aparecen en la base de datos.
Ahora despleguemos la lista del campo Fechas
¿Por qué aparecen las fechas Julio-09, Agosto-09, Setiembre-09 y Octubre-09, si no están en la base de datos?
El motivo es que estas fechas si estaban en la base datos al momento de construir la tabla dinámica, pero fueron borrados posteriormente.
Todo nos haría pensar que bastaría con apretar el botón “Actualizar Datos” para que estos valores inexistentes desaparezcan, pero no es así.
En el pasado vimos como solucionar esto manualmente. En nuestro ejemplo quitamos el campo Fechas, actualizamos los datos y volvemos a poner el campo Fechas en la tabla.
Sin embargo, hay situaciones en las cuales esta técnica no funciona. Por ejemplo, si tenemos varias tablas dinámicas basadas en la misma base de datos (de hecho, comparten el mismo PivotCache).
Por ejemplo, si creamos una segunda tabla basada que en la base de datos, vemos que los meses inexistentes siguen apareciendo en la lista desplegable

Volvemos a repetir la técnica indicada al principio, pero los meses inexistentes siguen apareciendo
En este caso tendremos que usar una macro para solucionar el problema. En un módulo común del editor de Vba ponemos este código
Sub eliminarValoresenPTCache()
Dim ptC As PivotCache
For Each ptC In ActiveWorkbook.PivotCaches
ptC.MissingItemsLimit = xlMissingItemsNone
ptC.Refresh
Next ptC
End Sub
Después de correr esta macro, los valores borrados de la base de datos ya no aparecerán en las tablas dinámicas.
Technorati Tags: MS Excel