Contidos
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
- Selección do intervalo orixinal
- Prema a tecla F5, botón seguinte Resaltar (especial). Na xanela que se abre, seleccione Celas baleiras(Brazos en branco) e prema OK.
Seleccionáronse todas as celas baleiras do intervalo.
- 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:
- Seleccione un intervalo suficiente de celas baleiras, por exemplo F3:F10.
- 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.
- 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