Cómo eliminar filas en blanco en Excel con VBA, fórmulas y Power Query

  • Compartir Este
Michael Brown

Este tutorial le enseñará algunos trucos sencillos para eliminar varias filas vacías en Excel de forma segura sin perder ni un ápice de información .

Las filas en blanco en Excel son un problema al que todos nos enfrentamos de vez en cuando, especialmente cuando combinamos datos de diferentes fuentes o importamos información de otro lugar. Las líneas vacías pueden causar muchos estragos en sus hojas de cálculo a diferentes niveles y eliminarlas manualmente puede ser un proceso que lleve mucho tiempo y sea propenso a errores. En este artículo, aprenderá algunos métodos sencillos y fiables para eliminar los espacios en blanco ensus hojas de trabajo.

    Cómo NO eliminar líneas en blanco en Excel

    Existen varias formas de eliminar líneas vacías en Excel, pero sorprendentemente muchos recursos en línea se quedan con la más peligrosa, a saber Buscar & Seleccionar > Ir al especial > Fogueo .

    ¿Qué tiene de malo esta técnica? Selecciona todos los espacios en blanco en un rango y, en consecuencia, acabará borrando todas las filas que contengan una sola celda en blanco.

    La imagen de abajo muestra la tabla original a la izquierda y la tabla resultante a la derecha. Y en la tabla resultante, todas las filas incompletas han desaparecido, incluso la fila 10 donde sólo faltaba la fecha en la columna D:

    En resumen: si no quiere estropear los datos, no elimine nunca las filas vacías seleccionando las celdas en blanco, sino que utilice uno de los métodos más considerados que se describen a continuación.

    Cómo eliminar filas en blanco en Excel con VBA

    Excel VBA puede arreglar un montón de cosas, incluyendo múltiples filas vacías. Lo mejor de este enfoque es que no requiere conocimientos de programación. Simplemente, tome uno de los códigos de abajo y ejecutarlo en su Excel (las instrucciones están aquí).

    Macro 1. Eliminar líneas en blanco en un rango seleccionado

    Este código VBA elimina silenciosamente todas las filas en blanco de un rango seleccionado, sin mostrar ningún mensaje ni cuadro de diálogo al usuario.

    A diferencia de la técnica anterior, la macro borra una línea si el campo toda la fila está vacía Se basa en la función CountA de la hoja de cálculo para obtener el número de celdas no vacías de cada línea y, a continuación, elimina las filas con el recuento cero.

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application.Selection If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating= True End If End Sub

    Dar al usuario la oportunidad de seleccionar el rango objetivo después de ejecutar la macro utiliza este código:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow IfApplication.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Al ejecutarse, la macro muestra el siguiente cuadro de entrada, usted selecciona el rango objetivo y hace clic en OK:

    En un momento, todas las líneas vacías del rango seleccionado serán eliminadas y las restantes se desplazarán hacia arriba:

    Macro 2. Eliminar todas las filas en blanco en Excel

    Para eliminar todas las filas en blanco en el hoja activa determine la última fila del rango utilizado (es decir, la fila que contiene la última celda con datos) y, a continuación, vaya hacia arriba eliminando las líneas para las que CountA devuelva cero:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End Sub

    Macro 3. Borrar fila si la celda está en blanco

    Con esta macro, puede eliminar una fila entera si una celda de la columna especificada está en blanco.

    El siguiente código comprueba si hay espacios en blanco en la columna A. Para eliminar filas basándose en otra columna, sustituya "A" por una letra adecuada.

    Sub DeleteRowIfCellBlank() On Error Resume Next Columns( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    De hecho, la macro utiliza la función Ir al especial > Fogueo y puede conseguir el mismo resultado realizando estos pasos manualmente.

    Nota: la macro borra las filas en blanco de la base de datos hoja entera Como precaución, es aconsejable hacer una copia de seguridad de la hoja de cálculo antes de ejecutar esta macro.

    Cómo eliminar líneas en blanco en Excel con VBA

    Para eliminar filas vacías en Excel utilizando una macro, puede insertar el código VBA en su propio libro o ejecutar una macro de nuestro libro de ejemplo.

    Añadir una macro al libro de trabajo

    Para insertar una macro en su libro de trabajo, siga estos pasos:

    1. Abra la hoja de cálculo en la que desea eliminar las filas en blanco.
    2. Pulse Alt + F11 para abrir el Editor de Visual Basic.
    3. En el panel izquierdo, haga clic con el botón derecho del ratón en EsteLibroDeTrabajo y, a continuación, haga clic en Inserte > Módulo .
    4. Pegue el código en la ventana Código.
    5. Pulse F5 para ejecutar la macro.

    Para obtener instrucciones detalladas paso a paso, consulte Cómo insertar y utilizar VBA en Excel.

    Ejecutar una macro de nuestro libro de trabajo de ejemplo

    Descargue nuestro libro de trabajo de ejemplo con Macros para eliminar filas en blanco y ejecute una de las siguientes macros desde allí:

    BorrarFilasEnBlanco - elimina las filas vacías en el rango seleccionado actualmente.

    EliminarLíneasEnBlanco - borra las filas en blanco y las desplaza hacia arriba en un rango que se selecciona después de ejecutar la macro.

    DeleteAllEmptyRows - borra todas las líneas vacías de la hoja activa.

    DeleteRowIfCellBlank - borra una fila si una celda de una columna específica está en blanco.

    Para ejecutar la macro en su Excel, haga lo siguiente:

    1. Abra el libro de trabajo descargado y active las macros si se le solicita.
    2. Abra su propio libro de trabajo y navegue hasta la hoja que le interese.
    3. En la hoja de cálculo, pulse Alt + F8, seleccione la macro y haga clic en Ejecutar .

    Fórmula para eliminar filas en blanco en Excel

    En caso de que quiera ver lo que está borrando, utilice la siguiente fórmula para identificar las líneas vacías:

    =IF(COUNTA(A2:D2)=0, "En blanco", "No en blanco")

    Donde A2 es la primera y D2 es la última celda utilizada de la primera fila de datos.

    Introduce esta fórmula en E2 o en cualquier otra columna en blanco de la fila 2, y arrastra el manejador de relleno para copiar la fórmula hacia abajo.

    Como resultado, tendrá "En blanco" en las filas vacías y "No en blanco" en las filas que contengan al menos una celda con datos:

    La lógica de la fórmula es obvia: se cuentan las celdas no vacías con la función COUNTA y se utiliza la sentencia IF para devolver "Blank" para el recuento cero, "Not Blank" en caso contrario.

    De hecho, se puede hacer muy bien sin IF:

    =CONTA(A2:D2)=0

    En este caso, la fórmula devolverá VERDADERO para las líneas en blanco y FALSO para las líneas que no están en blanco.

    Una vez establecida la fórmula, siga estos pasos para eliminar las líneas vacías:

    1. Seleccione cualquier celda de la fila de encabezado y haga clic en Ordenar y filtrar > Filtro en el Inicio en la pestaña Formatos Esto añadirá las flechas desplegables de filtrado a todas las celdas de encabezado.
    2. Haga clic en la flecha de la cabecera de la columna de fórmulas, desmarque (Seleccionar todo), seleccione En blanco y haga clic en OK :
    3. Seleccione todas las filas filtradas. Para ello, haga clic en la primera celda de la primera fila filtrada y pulse Ctrl + Mayús + Fin para ampliar la selección hasta la última celda de la última fila filtrada.
    4. Haga clic con el botón derecho en la selección y elija Borrar fila del menú contextual y, a continuación, confirme que realmente desea eliminar filas enteras:
    5. Elimine el filtro pulsando Ctrl + Mayús + L . O haga clic en Inicio tab> Ordenar y filtrar > Filtro .
    6. Elimine la columna con la fórmula porque ya no la necesita.

    Como resultado, tenemos una tabla limpia, sin líneas en blanco, pero con toda la información conservada:

    Consejo: en lugar de borrar las líneas vacías, puede copiar filas no vacías a otro lugar. Para hacerlo, filtre las filas "No en blanco", selecciónelas y pulse Ctrl + C para copiar. A continuación, cambie a otra hoja, seleccione la celda superior izquierda del rango de destino y pulse Ctrl + V para pegar.

    Cómo eliminar líneas vacías en Excel con Power Query

    En Excel 2016 y Excel 2019, hay una forma más de eliminar filas vacías: mediante la función Power Query. En Excel 2010 y Excel 2013, se puede descargar como complemento.

    Nota importante: Este método funciona con la siguiente advertencia: Power Query convierte los datos de origen en una tabla de Excel y cambia el formato, como el color de relleno, los bordes y algunos formatos numéricos. Si el formato de sus datos originales es importante para usted, entonces será mejor que elija otra forma de eliminar filas en blanco en Excel.

    1. Seleccione el rango en el que desea eliminar las líneas vacías.
    2. Ir a la Datos tab> Obtener y transformar y haga clic en De Tabla/Rango Esto cargará su tabla en el Editor de Power Query.
    3. En el Inicio del Power Query Editor, haga clic en Eliminar filas > Eliminar filas en blanco .
    4. Haga clic en el botón Cerrar & Cargar Esto cargará la tabla resultante en una nueva hoja de cálculo y cerrará el Editor de consultas.

    Como resultado de estas manipulaciones, obtuve la siguiente tabla sin líneas vacías, pero con un par de cambios desagradables - el formato de moneda se ha perdido y las fechas se muestran en el formato por defecto en lugar del personalizado:

    Cómo eliminar filas si la celda de una determinada columna está en blanco

    Al principio de este tutorial, le advertimos contra la eliminación de líneas vacías mediante la selección de espacios en blanco. Sin embargo, este método resulta útil si desea eliminar filas basándose en espacios en blanco en una columna específica .

    Como ejemplo, eliminemos todas las filas en las que una celda de la columna A esté vacía:

    1. Seleccione la columna clave, la columna A en nuestro caso.
    2. En el Inicio haga clic en Buscar & Seleccionar > Ir al especial O pulse F5 y haga clic en el botón Especial... botón.
    3. En el Ir al especial seleccione Fogueo y haga clic en OK Esto seleccionará celdas en blanco en el rango usado en la columna A.
    4. Haga clic con el botón derecho en cualquier celda seleccionada y elija Borrar... del menú contextual.
    5. En el Borrar seleccione Toda la fila y haz clic en Aceptar.

    Las filas que no tienen un valor en la columna A ya no existen:

    Se puede obtener el mismo resultado filtrando los espacios en blanco en la columna clave.

    Cómo eliminar las líneas adicionales debajo de los datos

    A veces, las filas que parecen completamente en blanco pueden contener en realidad algunos formatos o caracteres no imprimibles. Para comprobar si la última celda con datos es realmente la última celda utilizada en su hoja de cálculo, pulse Ctrl + Fin . Si esto le ha llevado a una fila visualmente vacía debajo de sus datos, en términos de Excel, esa fila no está en blanco. Para eliminar tales filas, haga lo siguiente:

    1. Haga clic en la cabecera de la primera fila en blanco debajo de sus datos para seleccionarla.
    2. Pulse Ctrl + Mayús + Fin para seleccionar todas las líneas que contengan algo, incluidos formatos, espacios y caracteres no imprimibles.
    3. Haga clic con el botón derecho en la selección y elija Borrar... > Toda la fila.

    Si tiene un conjunto de datos relativamente pequeño, es posible que desee deshacerse de todas las líneas en blanco debajo de sus datos, por ejemplo, para facilitar el desplazamiento. Aunque, no hay manera de eliminar las filas no utilizadas en Excel, no hay nada que le impida ocultar Así se hace:

    1. Seleccione la fila situada debajo de la última fila con datos haciendo clic en su cabecera.
    2. Pulse Ctrl + Mayús + Flecha abajo para ampliar la selección hasta la última fila de la hoja.
    3. Pulse Ctrl + 9 para ocultar las filas seleccionadas. O haga clic con el botón derecho en la selección y, a continuación, haga clic en Ocultar .

    A desocultar las filas pulse Ctrl + A para seleccionar toda la hoja y, a continuación, pulse Ctrl + Mayús + 9 para volver a hacer visibles todas las líneas.

    De forma similar, puede ocultar las columnas en blanco no utilizadas a la derecha de sus datos. Para conocer los pasos detallados, consulte Ocultar filas no utilizadas en Excel para que sólo sea visible el área de trabajo.

    La forma más rápida de eliminar filas vacías en Excel

    Al leer los ejemplos anteriores, ¿no le pareció que estábamos utilizando un mazo para romper una nuez? Aquí, en Ablebits, preferimos no hacer las cosas más complejas de lo necesario. Así que dimos un paso más y creamos una ruta de dos clics para eliminar filas vacías en Excel.

    Con la Ultimate Suite añadida a su cinta, así es como puede eliminar todas las filas vacías en una hoja de cálculo:

    1. En el Herramientas Ablebits en la pestaña Transforme grupo, haga clic en Borrar espacios en blanco > Filas vacías :
    2. El complemento le informará de que se van a eliminar todas las filas vacías de la hoja de cálculo activa y le pedirá que confirme. Haga clic en Aceptar y, en un momento, se eliminarán todas las filas vacías.

    Como se muestra en la siguiente captura de pantalla, sólo hemos eliminado líneas absolutamente en blanco que no tienen ni una sola celda con datos:

    Para descubrir más funciones increíbles incluidas en nuestra Ultimate Suite para Excel, puede descargar una versión de prueba.

    Le agradezco su lectura y espero verle en nuestro blog la semana que viene.

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.