Eliminar celdas vacías de un rango

Formulación del problema

Tenemos un rango de celdas con datos que contienen celdas vacías:

 

La tarea es eliminar celdas vacías, dejando solo celdas con información.

Método 1. Rudo y rápido

  1. Selección del rango original
  2. Presione la tecla F5, siguiente botón Destacar (Especial). En la ventana que se abre, seleccione Celdas vacias(Espacios en blanco) y haga clic OK.

    Eliminar celdas vacías de un rango

    Se seleccionan todas las celdas vacías del rango.

  3. Damos un comando en el menú para eliminar las celdas seleccionadas: clic derecho- Eliminar celdas (Eliminar celdas) con desplazamiento hacia arriba.

Método 2: fórmula de matriz

Para simplificar, nombremos nuestros rangos de trabajo usando Administrador de nombre (Gerente de nombre) de la pestaña. fórmula (Fórmulas) o, en Excel 2003 y anteriores, el menú Insertar – Nombre – Asignar (Insertar — Nombre — Definir)

 

Nombra el rango B3:B10 tenervacío, rango D3:D10 – NingunoVacío. Los rangos deben ser estrictamente del mismo tamaño y se pueden ubicar en cualquier lugar en relación con los demás.

Ahora seleccione la primera celda del segundo rango (D3) e ingrese esta fórmula aterradora:

=SI(FILA() -FILA(NoVacío)+1>NOTROWS(SíVacío)-CONTADOREN BLANCO(SíVacío);””;INDIRECTO(DIRECCIÓN(MÁS BAJA((SI(Vacío<>“”,FILA(Vacío);FILA() + FILAS(Hay Vacío))); LINEA()-FILA(No Vacío)+1); COLUMNA(Hay Vacío); 4)))

En la versión en inglés será:

=SI(FILA()-FILA(NoVacío)+1>FILAS(Vacío)-CONTADOR EN BLANCO(Vacío),””,INDIRECTO(DIRECCIÓN(PEQUEÑA((SI(Vacío<>“”,FILA(Vacío),FILA() +FILAS(TenerVacío))),FILA()-FILA(NoVacío)+1),COLUMNA(TenerVacío),4)))

Además, debe ingresarse como una fórmula de matriz, es decir, presione después de pegar Participar (como siempre) y Ctrl + Shift + Enter. Ahora la fórmula se puede copiar usando autocompletar (arrastre la cruz negra en la esquina inferior derecha de la celda), y obtendremos el rango original, pero sin celdas vacías:

 

Método 3. Función personalizada en VBA

Si existe la sospecha de que a menudo tendrá que repetir el procedimiento para eliminar celdas vacías de los rangos, entonces es mejor agregar su propia función para eliminar celdas vacías al conjunto estándar una vez y usarla en todos los casos posteriores.

Para hacer esto, abra el Editor de Visual Basic (ALT + F11), inserte un nuevo módulo vacío (menú Insertar – Módulo) y copiar el texto de esta función allí:

Function NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result (1 a MaxCells, 1 a 1) para cada Rng en DataRange.Cells If Rng.Value <> vbNullString Entonces N = N + 1 Resultado (N, 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Then NoBlanks = Application.Transpose(Result) Else NoBlanks = Resultado Terminar si termina la función  

No olvide guardar el archivo y volver del Editor de Visual Basic a Excel. Para usar esta función en nuestro ejemplo:

  1. Seleccione un rango suficiente de celdas vacías, por ejemplo F3:F10.
  2. Ir al menu Función de inserción (Función de inserción)o haga clic en el botón Función de inserción (Función de inserción) de la pestaña. fórmula (Fórmulas) en versiones más recientes de Excel. En categoría Definido por el usuario (Usuario definido) elige nuestra función Sin espacios en blanco.
  3. Especifique el rango de origen con vacíos (B3:B10) como argumento de la función y presione Ctrl + Shift + Enterpara ingresar la función como una fórmula de matriz.

:

  • Eliminar todas las filas vacías en una tabla a la vez con una macro simple
  • Eliminar todas las filas vacías en una hoja de trabajo a la vez usando el complemento PLEX
  • Llenar rápidamente todas las celdas vacías
  • ¿Qué son las macros, dónde insertar código de macro en VBA?

 

Deje un comentario