Cómo eliminar blancos en tablas dinámicas de Excel

El rótulo “(en blanco)” que aparece por defecto en las tablas dinámicas de Excel puede ser un auténtico infierno: crea bajadas súbitas en gráficos de curvas, provoca errores en elementos calculados y puede ser molesto visualmente.

Excel 2010 no ofrece un modo de cancelarlo permanentemente, y aunque no exista ninguna celda vacía, sigue apareciendo hasta que se filtre manualmente. Cuando trabajamos segmentos avanzados (por ejemplo, en un dashboard), y hacemos una limpieza de filtros, (en blanco) reaparece. Se puede filtrar de nuevo, pero mientras más tablas dinámicas utilicemos, más laborioso e impráctico se vuelve filtrar manualmente todas ellas.

Para todos aquellos que sufren con los rótulos (en blanco), he creado un macro que detecta todas las tablas dinámicas en una hoja, y filtra todos sus blancos. Importante: en la 5ta línea, hay que indicar qué variables deseamos filtrar de acuerdo al número de columna que correspondan. Por ejemplo, si utilizamos las variables de las columnas 19 y 20 en la tabla dinámica, modificamos el macro así: For icount = 19 to 20.

Si filtraramos todas las columnas, cualquier registro que tenga cualquier valor vacío desaparecerá. Este macro no servirá si se ha modificado el título de (en blanco) manualmente. En dicho caso, hay que cambiar (blank) por el nombre que le corresponda. Dicho todo esto, he aquí el macro para Excel VBA:

Sub blancos()
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
counter = counter + 1
For icount = 19 To 20 'cambiar estos valores según las columnas a filtrar
With ActiveSheet.PivotTables(counter).PivotFields(icount)
On Error Resume Next
.PivotItems("(blank)").Visible = False
End With
Next icount
Next
End Sub
Escribe tu comentario comment4 Comentarios
  1. 2014-03-07 Pedro Castellanos

    Daniel: Muchísimas gracias. Pedro.

    2014-03-07 Juan

    la verdad no se como insertar esta macro en mi hoja me podrías ayudar se me hace interesante. gracias.

    2014-03-07 JayC

    Para solucionar de otra forma mucho mas eficaz, es seleccionar tus rangos y en el menu en la parte de Formulas-Nombre Definidos- Utilizar en formúla y asignar la funcion "desref"

    2013-11-15 Gonzalo Vallega

    Estimado, primero muchas gracias por la información. Tengo un problema cuando filtro una tabla dinámica me muestratodos los valores incluso lo que no estan disponibles para el filtro anterior, Ej: si tengo una columma "Continente" y filtro por America, me deviera aparecer para elegir en la columna "Pais" solo los paises que tienen relacion con este osea de America, pero me aparecen los de todo el mundo,. como puedo solucionar esto. Muchas gracias de antemano

mode_editEscribe tu comentario

menu
menu