Eliminando celas baleiras dun intervalo

Formulación do problema

Temos un rango de celas con datos que conteñen celas baleiras:

 

A tarefa é eliminar as celas baleiras, deixando só as celas con información.

Método 1. Áspera e rápida

  1. Selección do intervalo orixinal
  2. Prema a tecla F5, botón seguinte Resaltar (especial). Na xanela que se abre, seleccione Celas baleiras(Brazos en branco) e prema OK.

    Eliminando celas baleiras dun intervalo

    Seleccionáronse todas as celas baleiras do intervalo.

  3. Damos un comando no menú para eliminar as celas seleccionadas: clic co botón dereito- Eliminar celas (Eliminar celas) con desprazamento ascendente.

Método 2: fórmula matricial

Para simplificar, poñamos un nome aos nosos intervalos de traballo usando Xestor de nomes (Xestor de nomes) aba fórmula (Fórmulas) ou, en Excel 2003 e anteriores, o menú Inserir - Nome - Asignar (Inserir — Nome — Definir)

 

Nomea o rango B3:B10 Ter baleiro, rango D3:D10 – NingúnVaco. Os intervalos deben ser estrictamente do mesmo tamaño e poden estar situados en calquera lugar en relación entre si.

Agora selecciona a primeira cela do segundo rango (D3) e introduce esta fórmula asustado:

=IF(FILA() -FILA(NonValeiro)+1>NOTROWS(SiBaleiro)-CONTADOR(SiBaleiro);””;INDIRECT(ENDEREZO(MAIS BAIXO((SE(Baleiro<>“”, FILA(Valeiro); FILA()) + FILAS(Hai baleiras))); LINE()-ROW(Sen baleiro)+1); COLUMNA(Hai baleiras); 4)))

Na versión en inglés será:

=IF(FILA()-FILA(Ningún baleiro)+1>FILAS(Baleiro)-CONTADOR(BALERO),””,INDIRECT(ENDEREZO(PEQUENO((IF(Baleiro<>“”,FILA(Valeiro),FILA()) + FILAS (TerValeiro))), FILA () - FILA (Ningún baleiro)+1), COLUMNA (Tener baleiro), 4)))

Ademais, debe introducirse como fórmula matricial, é dicir, premer despois de pegar Entrar (como de costume) e Ctrl + Maiús + Entrar. Agora pódese copiar a fórmula usando o autocompletar (arrastra a cruz negra na esquina inferior dereita da cela) e obteremos o intervalo orixinal, pero sen celas baleiras:

 

Método 3. Función personalizada en VBA

Se hai sospeita de que moitas veces terá que repetir o procedemento para eliminar as celas baleiras dos intervalos, entón é mellor engadir a súa propia función para eliminar as celas baleiras ao conxunto estándar unha vez e usalo en todos os casos posteriores.

Para iso, abra o Editor de Visual Basic (ALT + F11), inserir un novo módulo baleiro (menú Inserir – Módulo) e copia alí o texto desta función:

Función 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 To MaxCells, 1 To 1) For each Rng in DataRange.Cells If Rng.Value <> vbNullString Then N = N + 1 Result(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 = Result Función End If End  

Non esquezas gardar o ficheiro e volver do Editor de Visual Basic a Excel. Para usar esta función no noso exemplo:

  1. Seleccione un intervalo suficiente de celas baleiras, por exemplo F3:F10.
  2. Vaia ao menú Inserir - Función (Inserir — Función)ou prema no botón función de inserción (Inserir función) aba fórmula (Fórmulas) nas versións máis recentes de Excel. En categoría Definido polo usuario (Definido polo usuario) escolle a nosa función NonBlanks.
  3. Especifique o intervalo de orixe con baleiros (B3:B10) como argumento da función e prema Ctrl + Maiús + Entrarpara introducir a función como fórmula matricial.

:

  • Eliminar todas as filas baleiras dunha táboa á vez cunha macro sinxela
  • Eliminando todas as filas baleiras dunha folla de traballo á vez usando o complemento PLEX
  • Enche rapidamente todas as celas baleiras
  • Que son as macros, onde inserir o código de macros en VBA

 

Deixe unha resposta