Eliminació de cel·les buides d'un interval

Formulació del problema

Tenim un rang de cel·les amb dades que contenen cel·les buides:

 

La tasca és eliminar les cel·les buides, deixant només les cel·les amb informació.

Mètode 1. Aspre i ràpid

  1. Selecció del rang original
  2. Premeu la tecla F5, botó següent Destacar (Especial). A la finestra que s'obre, seleccioneu Cel·les buides(En blanc) and clic OK.

    Eliminació de cel·les buides d'un interval

    Es seleccionen totes les cel·les buides de l'interval.

  3. Donem una ordre al menú per eliminar les cel·les seleccionades: clic dret- Eliminar cel·les (Suprimeix cel·les) amb desplaçament ascendent.

Mètode 2: Fórmula de matriu

Per simplificar, posem un nom als nostres rangs de treball Gestor de noms (Nom Gestor) llengüeta fórmula (Fórmules) o, a Excel 2003 i anteriors, el menú Insereix – Nom – Assigna (Insereix — Nom — Definiu)

 

Anomena l'interval B3:B10 Haveempty, rang D3:D10 – CapBuit. Els intervals han de ser estrictament de la mateixa mida i es poden situar en qualsevol lloc entre ells.

Ara seleccioneu la primera cel·la del segon rang (D3) i introduïu-hi aquesta fórmula espantosa:

=SI(FILA() -FILA(NoBuida)+1>NOTROWS(SíBuida)-COUNTBLANK(SíBuida);””;INDIRECT(ADREÇA(MÉS BAIXA((SI(Buida<>“”, FILA(Buida); FILA())) + FILES (Hi ha buits))); LÍNIA () - FILA (No està buit)+1); COLUMNA (Hi ha buits); 4)))

En la versió anglesa serà:

=IF(FILA()-FILA(NoBuida)+1>FINES(Buida)-CONTREBLANK(Buida),””,INDIRECT(ADREÇA(PETIT((IF(Buida<>“”, FILA(Buida), FILA())) + FILES (Ten buit))), FILA () - FILA (Sense buit)+1), COLUMNA (Ten buit), 4)))

A més, s'ha d'introduir com a fórmula de matriu, és a dir, premeu després d'enganxar-lo Enter (com és habitual) i Ctrl + Maj + Retorn. Ara la fórmula es pot copiar mitjançant l'autocompletar (arrossegar la creu negra a la cantonada inferior dreta de la cel·la) i obtindrem l'interval original, però sense cel·les buides:

 

Mètode 3. Funció personalitzada en VBA

Si hi ha la sospita que sovint haureu de repetir el procediment per eliminar les cel·les buides dels intervals, és millor afegir la vostra pròpia funció per eliminar les cel·les buides al conjunt estàndard una vegada i utilitzar-la en tots els casos posteriors.

Per fer-ho, obriu l'Editor de Visual Basic (ALT + F11), inseriu un nou mòdul buit (menú Inserir – Mòdul) i copieu-hi el text d'aquesta funció:

Funció NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng Com Range Dim MaxCells As Long Dim Result() Com Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) Resultat ReDim (1 a MaxCells, 1 a 1) per a cada Rng a DataRange.Cells Si Rng.Value <> vbNullString Aleshores N = N + 1 Resultat (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ó End If End  

No oblideu desar el fitxer i tornar de l'Editor de Visual Basic a Excel. Per utilitzar aquesta funció al nostre exemple:

  1. Seleccioneu un rang suficient de cel·les buides, per exemple F3:F10.
  2. Aneu al menú Inserir - Funció (Insereix — Funció)o feu clic al botó Funció d'inserció (Funció d'inserció) llengüeta fórmula (Fórmules) en les noves versions d'Excel. En categoria Usuari definit (Usuari definit) triar la nostra funció NoBlanks.
  3. Especifiqueu l'interval d'origen amb buits (B3:B10) com a argument de funció i premeu Ctrl + Maj + Retornper introduir la funció com a fórmula matricial.

:

  • Eliminació de totes les files buides d'una taula alhora amb una macro simple
  • Eliminació de totes les files buides d'un full de treball alhora amb el complement PLEX
  • Ompliu ràpidament totes les cel·les buides
  • Què són les macros, on inserir el codi de macro a VBA

 

Deixa un comentari