Cómo eliminar de verdad las celdas en blanco en Excel

ExcelMailEsto puede parecer una cuestión simple, pero lo cierto es que nos lo encontramos en soporte técnico constantemente y tiene un pequeño truco que debemos conocer.

La situación típica es la siguiente: un cliente tiene una lista de, por ejemplo, 10.000 destinatarios en una hoja Excel y quiere hacer un envío. Antes decide eliminar algunos registros, haciéndolo sobre la misma hoja de cálculo, quedándose en tan solo 9.700 registros. Sube la nueva hoja a MAILCast que le dice que la Excel contiene 10.000 registros igualmente 😕 Luego sin embargo el envío se hace y se envía únicamente a los 9.700 que realmente hay.

¿Qué ocurre aquí?

Lo que pasa es que Excel sigue almacenando esas celdas vacías (son celdas con datos «nulos» o vacíos, pero celdas al fin y al cabo), y como MAILCast usa listas de destinatarios dinámicas, cuando va a consultar cuántas celdas hay se le sigue indicando que son 10.000. Luego al hacer el envío como se comprueba uno a uno que los correos sean válidos y no estén repetidos, etc… se envía al número correcto.

El problema es que esto despista doblemente: por un lado no nos deja saber la cantidad real de registros que hay en la Excel y por otro se declaran muchos correos erróneos en los informes de rebotados que en realidad son correos en blanco.

¿Qué hace Excel?

Excel es una tabla casi infinita de celdas ordenadas por filas y columnas (en realidad está limitada a 1.048.576 filas y 16.384 columnas, pero a efectos prácticos…). Aunque es  virtualmente infinita sólo considera como datos reales (es decir, almacenados en el archivo físico) aquellas celdas que contienen información, aunque sea información en blanco.

Cuando eliminamos celdas o filas de la hoja de cálculo, en realidad Excel solo las vacía, pero las sigue manteniendo entre su lista de celdas con datos. Y eso es así aunque le digamos que elimine la fila completa, etc…

Podemos comprobarlo muy fácilmente si pulsamos CTRL+FIN para ir al final de la hoja actual. Veremos que sigue yendo al mismo sitio aunque las celdas estén vacías (pulsa para aumentar):

Excel_CeldasVacias_1

Fíjate como a pesar de que se han borrado un montón de filas y una columna, la última celda considerada está mucho más abajo.

¿Cómo lo solucionamos?

Para evitar este problema podemos copiar y pegar las celdas resultantes en otra hoja de cálculo nueva y usar ésta, pero es algo tedioso, sobre todo si tenemos muchos registros. Tiene que haber una forma mejor.

Y de hecho la hay, pero es un tanto enrevesada porque tiene truco…

1.- Abre tu hoja de cálculo y pulsa F5, que es la tecla rápida para “Ir a…”.

2.- En el diálogo que aparece pulsa el botón “Especial…”. En la nueva ventana elige la opción “Celdas en blanco” (lo siento por las capturas en inglés, pero todos mis programas están instalados en este idioma):

Excel_CeldasVacias_2

3.- Al pulsar OK quedarán seleccionadas todas las celdas en blanco. Pulsa la combinación de teclas CTRL + menos (el símbolo – en el teclado numérico) o pulsa con el botón derecho del ratón sobre una de las celdas seleccionadas y elige “Eliminar”. Aparecerá un diálogo preguntándote si quieres mover las celdas hacia arriba, eliminar la fila completa… Elige la opción que prefieras:

Excel_CeldasVacias_3

4.- Una vez eliminadas nada parece haber cambiado, pues el cursor sigue llegando al mismo sitio. Sin embargo si grabamos inmediatamente la Excel, antes de tocar nada más, veremos que se libra de todas esas celdas en blanco que acabamos de eliminar. Compruébalo grabando y acto seguido pulsando CTRL+Inicio y CTRL+ FIN. Ahora verás que el cursor queda en la última celda con datos:

Excel_CeldasVacias_4

Todo el truco consiste en grabar inmediatamente. Si tocamos cualquier cosa después de eliminar las celdas entonces todo seguirá igual.

Es algo sencillo , pero muy mal documentado y desde luego afecta a casi todo el mundo por lo que vemos en soporte técnico de MAILCast.

Espero que te resulte útil.


Source: http://www.mailcast.es/blog/syndication.axd