Logotipo
Seguir

Excel: Borrar datos en la memoria de las tablas dinámicas

Es muy común diseñar nuevas plantillas Excel partiendo de informes que ya han sido generados por Datacycle Reporting ya que como su estructura de campos y/o tabla dinámica es similar, se vacían de contenido y se toman como base de la nueva plantilla.

Esta práctica tiene un único inconveniente si el informe contiene tablas dinámicas.

Una tabla dinámica de Excel crea una copia oculta (cache) de los datos fuente, de manera, que si en algún momento una tabla dinámica ha estado vinculada a un rango de datos con registros, aunque el rango de datos ahora esté vacio, porque es una plantilla, la tabla dinámica, si desplegamos el contenido de cualquier campo de columna, seguirá mostrando estos registros. Este comportamiento en las tablas dinámicas de Excel, según Microsoft, permite calcular rápidamente una tabla dinámica y al mismo tiempo mantener la integridad de los datos originales.

Hay que tener cuidado ya que si tenemos fórmulas en nuestro informe de tipo ImportarDatosDinamicos que obtienen datos de esta tabla dinámica, pueden estar mostrando información incorrecta.

Para evitar futuros problemas tenemos varias opciones:

1. Diseñar plantillas nuevas partiendo de plantillas distribuidas e instaladas por DataCyle Reporting.

2. Ejecutar una macro que permita inicializar la caché de las tabla dinámicas presentes en el libro. En este caso, esta macro debe ser ejecutada desde el editor de visual basic de la plantillas.  (Recomendado para versiones anteriores a 2007)

El código VBA es el siguiente:

Sub ClearPTCache()
 Dim pvtTable As PivotTable
 Dim i As Integer

 For i = 1 To ActiveWorkbook.Sheets.Count
 For Each pvtTable In Worksheets(i).PivotTables

           pvtTable.PivotCache.MissingItemsLimit = xlMissingItemsNone

           pvtTable.PivotCache.Refresh
     
 Next pvtTable
 Next i
End Sub

3. Para versiones de Excel 2007 o superiores tenemos la opción de configurar los datos que guarda en caché la tabla dinámica.  Solo tenemos que acceder a las opciones de la tabla dinámica (botón derecho -> opciones de tabla dinámica) y en la pestaña de datos configuramos el Número de elementos que desea conservar por campo: Ninguno.  Aceptar para guardar los cambios y actualizar la tabla dinámica para actualizar el caché.  De esta forma no se guardarán datos inexistentes en la memoria de la tabla dinámica.

Válido para versiones Excel 2003, Excel 2007 y Excel 2010

 

 

 

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 1 de 1
¿Tiene más preguntas? Enviar una solicitud

2 Comentarios

  • 0
    Avatar
    Solme Omar Bustos Rodriguez

    Tus observaciones son correctas. Sólo adicionaría que, una vez activada la opción "Número de elementos que desea conservar por campo: Ninguno", se debe actualizar la Tabla Dinámica para que actualice el caché y se elementos los datos ´"históricos". Y en caso de no eliminar estos, sencillamente, adicionamos o cambiamos un valor de la matriz de datos de la Tabla Dinámica y actualizamos.

     

    <a href="http://www.tablasdinamicasexcel.com/">Tablas Dinámicas Excel 2010</a>

     

    Saludos.

  • 0
    Avatar
    ApeSoft

    Lo hemos incluido. Gracias por el feedback

Inicie sesión para dejar un comentario.
Tecnología de Zendesk