Copiar datos ignorando celdas vacías en Excel

Cuando tienes información en una columna que tiene celdas en blanco intercaladas, es probable que necesites copiar los datos ignorando las celdas vacías de manera que puedas pegar la información significativa a otro rango de celdas. A continuación te mostraré dos métodos que nos ayudarán a alcanzar este objetivo.

Excluir celdas vacías al copiar

La primera alternativa que tenemos para excluir las celdas en blanco es haciendo la selección adecuada antes de copiar los datos y para eso utilizaremos el cuadro de diálogo Ir a Especial. Comenzaremos por seleccionar la columna que contiene los datos de origen haciendo clic en el encabezado de la columna.

Copiar datos ignorando celdas vacías en Excel

Inmediatamente después vamos a Inicio > Modificar > Buscar y seleccionar > Ir a Especial. Dentro del cuadro de diálogo debemos asegurarnos de seleccionar la opción Constantes y al hacer clic en Aceptar se seleccionarán solamente las celdas que contienen los datos ignorando por completo las celdas vacías.

Copiar ignorando celdas en blanco en Excel

Lo único que nos faltará hacer será copiar los datos y pegarlos en otra columna para obtener el resultado deseado.

Ignorar las celdas vacías al copiar y pegar

De esta manera puedes copiar datos excluyendo las celdas en blanco que existen entre ellos. Debes tomar en cuenta que en este ejemplo las celdas de origen tienen valores contantes, si en tus datos tienes celdas que muestran el resultado de una fórmula, entonces en el cuadro de diálogo Ir a Especial deberás elegir la opción Celdas con Fórmulas en lugar de Constantes.

Fórmula para  copiar datos sin celdas vacías

Otra alternativa que tenemos es utilizar una fórmula de Excel para copiar datos ignorando las celdas en blanco. La fórmula propuesta es una fórmula matricial y además no es tan simple de explicar, así que iremos paso a paso en su construcción. La primera parte de la fórmula que analizaremos nos ayudará a conocer las filas que tienen datos dentro de nuestro rango de celdas:

=SI(A$1:A$11<>"", FILA(A$1:A$11))

Esta fórmula validará cada celda del rango A1:A11 que es donde tenemos los datos de ejemplo y si dicha celda no está vacía devolverá el número de fila correspondiente, de lo contrario devolverá el valor FALSO. Observa el comportamiento de esta fórmula:

Fórmula para copiar datos ignorando celdas en blanco

Recuerda que la fórmula debe ingresarse con la combinación de teclas Ctrl + Mayús + Entrar. La fórmula devolverá una matriz con los números de las filas que tienen datos y un valor FALSO para las celdas vacías, así que el resultado obtenido es un arreglo como el siguiente: {1, FALSO, 3, 4, FALSO, 6, FALSO, 8, 9, FALSO, 11}.

Ya que nos interesa obtener solamente los números y descartar los valores falsos utilizaremos la función K.ESIMO.MENOR que nos ayudará a obtener cada uno de los valores enteros del arreglo anterior. La fórmula que utilizaremos será la siguiente:

=K.ESIMO.MENOR(SI(A$1:A$11<>"", FILA(A$1:A$11)), FILAS(C$1:C1))

El primer argumento de la función K.ESIMO.MENOR es el arreglo de valores de la fórmula anterior y el segundo argumento indica la posición que deseo obtener y la cual estará indicada por la función FILAS la cual devuelve el número de filas del rango indicado. De esta manera, al ingresar esta nueva fórmula en la celda C1 obtenemos el siguiente resultado:

Copiar columna a otra sin celdas en blanco

Esta fórmula la he ingresado solamente en la celda C1 pulsando la combinación de teclas Ctrl + Mayús + Entrar. Ahora observa que al copiar esta función hacia abajo, el rango de la función FILAS irá incrementando y como consecuencia la función K.ESIMO.MENOR devolverá una nueva posición del arreglo.

Copiar datos sin tomar filas vacías

En este último paso lo único que hice fue arrastrar la fórmula de la celda C1 hacia abajo y ahora tengo los números de filas del rango A1:A11 que contienen datos.  Ahora debo obtener el valor contenido en dichas filas y lo puedo obtener fácilmente con la función INDICE de la siguiente manera:

=INDICE(A:A, K.ESIMO.MENOR(SI(A$1:A$11<>"", FILA(A$1:A$11)), FILAS(C$1:C1)))

Con esta función pasamos de tener solamente los números de las filas a obtener realmente el valor de las celdas de la columna A que no están vacías. En la siguiente imagen puedes notar el comportamiento de esta fórmula.

Evitar copiar celdas en blanco

El último paso que agregaremos a nuestra fórmula será una validación para eliminar esos errores #¡NUM! mostrados al final del rango de la columna C. Existen varios métodos para evitar mostrar errores, pero en esta ocasión utilizaré una validación con la función SI para mostrar una cadena vacía en caso de que sobrepasemos la cantidad de celdas que contienen datos en la columna A. La fórmula completa que nos ayudará a copiar datos ignorando celdas vacías en Excel es la siguiente:

=SI(FILAS(C$1:C1)>CONTARA(A:A), "", INDICE(A:A, K.ESIMO.MENOR(SI(A$1:A$11<>"", FILA(A$1:A$11)), FILAS(C$1:C1))))

Para probar esta fórmula debo ingresarla en la celda C1 y pulsar Ctrl + Mayús + Entrar y posteriormente arrastrarla hacia abajo para obtener el resultado deseado:

Excel copiar y pegar sin celdas vacías o en blanco

Cuando utilices esta fórmula con tu propia información debes recordar modificar los rangos donde tienes tus datos, que en este ejemplo fue el rango A1:A11. También debes modificar las referencias a la columna donde se está copiando la información, que en este ejemplo fue la columna C.

Ahora que ya conoces dos alternativas para copiar ignorando las celdas vacías solo será cuestión de decidir el mejor método a utilizar. Descarga el libro de trabajo donde encontrarás la fórmula desarrollada en el segundo ejemplo.