Rimozione di celle vuote da un intervallo

Formulazione del problema

Abbiamo un intervallo di celle con dati che contengono celle vuote:

 

Il compito è rimuovere le celle vuote, lasciando solo le celle con informazioni.

Metodo 1. Ruvido e veloce

  1. Selezione dell'intervallo originale
  2. Premi il tasto F5, pulsante successivo Highlight (Speciale). Nella finestra che si apre, seleziona Celle vuote(Spazi vuoti) e fare clic su OK.

    Rimozione di celle vuote da un intervallo

    Vengono selezionate tutte le celle vuote nell'intervallo.

  3. Diamo un comando nel menu per eliminare le celle selezionate: fare clic con il tasto destro- Elimina le celle (Elimina celle) con spostamento verso l'alto.

Metodo 2: formula di matrice

Per semplificare, diamo un nome ai nostri intervalli di lavoro utilizzando Nome Manager (Nome Gestore) linguetta formula (formule) o, in Excel 2003 e versioni precedenti, il menu Inserisci – Nome – Assegna (Inserisci — Nome — Definisci)

 

Assegna un nome all'intervallo B3:B10 AvereVuoto, gamma D3:D10 – NessunoVuoto. Gli intervalli devono essere rigorosamente della stessa dimensione e possono essere posizionati ovunque l'uno rispetto all'altro.

Ora seleziona la prima cella del secondo intervallo (D3) e inserisci questa formula spaventosa al suo interno:

=SE(RIGA() -RIGA(NoVuoto)+1>NOTROWS(SìVuoto)-COUNTBLANK(SìVuoto);””;INDIRETTO(INDIRIZZO(BASSO((SE(Vuoto<>“”,RIGA(Vuoto);RIGA() + ROWS(Ci sono vuoti))); LINE()-ROW(Nessun vuoto)+1); COLUMN(Ci sono vuoti); 4)))

Nella versione inglese sarà:

=IF(ROW()-ROW(NessunVuoto)+1>ROWS(Vuoto)-COUNTBLANK(Vuoto),””,INDIRECT(ADDRESS(SMALL((IF(Vuoto<>“”,ROW(Vuoto),ROW() +ROWS(HaveVuoto))),ROW()-ROW(NessunoVuoto)+1),COLUMN(HaveVuoto),4)))

Inoltre, deve essere inserita come formula di matrice, ovvero premere dopo aver incollato entrare (come al solito) e CTRL + MAIUSC + INVIO. Ora la formula può essere copiata in basso usando il completamento automatico (trascina la croce nera nell'angolo in basso a destra della cella) e otterremo l'intervallo originale, ma senza celle vuote:

 

Metodo 3. Funzione personalizzata in VBA

Se c'è il sospetto che dovrai ripetere spesso la procedura per rimuovere le celle vuote dagli intervalli, è meglio aggiungere una volta la tua funzione per rimuovere le celle vuote al set standard e usarla in tutti i casi successivi.

Per fare ciò, apri l'editor di Visual Basic (ALT + F11), inserire un nuovo modulo vuoto (menu Inserisci – Modulo) e copia lì il testo di questa funzione:

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 To MaxCells, 1 To 1) Per ogni 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 Funzione End If End  

Non dimenticare di salvare il file e tornare da Visual Basic Editor a Excel. Per utilizzare questa funzione nel nostro esempio:

  1. Seleziona un intervallo sufficiente di celle vuote, ad esempio F3:F10.
  2. Vai al menu Inserisci – Funzione (Inserisci — Funzione)oppure fare clic sul pulsante Inserisci funzione (Inserisci funzione) linguetta formula (formule) nelle versioni più recenti di Excel. In categoria Definito dall'utente (Definito dall'utente) scegli la nostra funzione Niente spazi vuoti.
  3. Specificare l'intervallo di origine con vuoti (B3:B10) come argomento della funzione e premere CTRL + MAIUSC + INVIOper immettere la funzione come formula di matrice.

:

  • Eliminazione di tutte le righe vuote in una tabella contemporaneamente con una semplice macro
  • Rimozione di tutte le righe vuote in un foglio di lavoro contemporaneamente utilizzando il componente aggiuntivo PLEX
  • Riempi rapidamente tutte le celle vuote
  • Cosa sono le macro, dove inserire il codice macro in VBA

 

Lascia un Commento