Es frecuente encontrarnos con la situación de que nos interesaría que ciertas filas de una tabla dinámica se ocultaran o se eliminaran cuando cierto/s campo/s de una fila contuviera/n un cero o un nulo.
Actualmente no hay ninguna opción directa que nos permita realizar esta opción en una tabla dinámica. Lo que sí hay son alternativas para poder conseguir que no aparezcan estas filas en la tabla dinámica. Son las siguientes:
1. Trasladar el campo que contiene cero o nulo a la sentencia SQL que inserta los datos en el rango en el que se basa la tabla dinámica, de manera que en la consulta SQL haya un filtro que sólo inserte en Excel los registros cuyo campo sea diferente de Null o de cero.
2. En la plantilla Excel, en el rango en que se basa la tabla dinámica, crear una columna nueva col1 que evalúe si el campo devuelve nulo o cero. Si contiene nulo o cero que en la columna col1 se cargue un 0, si tiene valor, que se cargue un 1. Luego, en la tabla dinámica, proyectar esta campo col1, ponerlo a nivel de página, por ejemplo, y filtrarlo para que muestre los registros que contengan un 1. Esto significará que sólo muestra los registros donde el campo no es nulo ni cero.
3. Crear una macro en Visual Basic, que recorra todo el rango de registros y donde detecte que la columna con la fórmula contiene un valor nulo o cero, pues que elimine la fila del rango.