Ta bort tomma celler från ett intervall

Formulering av problemet

Vi har ett intervall av celler med data som innehåller tomma celler:

 

Uppgiften är att ta bort tomma celler, vilket bara lämnar celler med information.

Metod 1. Grovt och snabbt

  1. Välja det ursprungliga intervallet
  2. Tryck på knappen F5, nästa knapp Markera (Särskild). Välj i fönstret som öppnas Tomma celler(Tomt) och klicka OK.

    Ta bort tomma celler från ett intervall

    Alla tomma celler i intervallet är markerade.

  3. Vi ger ett kommando i menyn för att ta bort markerade celler: högerklicka- Ta bort celler (Ta bort celler) med förskjutning uppåt.

Metod 2: Matrisformel

För att förenkla, låt oss namnge våra arbetsområden med hjälp av Namnhanterare (namnhanterare) fliken formeln (Formler) eller, i Excel 2003 och äldre, menyn Infoga – Namn – Tilldela (Infoga — Namn — Definiera)

 

Namnge området B3:B10 Har tomt, område D3:D10 – Ingen Tom. Områden måste vara strikt lika stora och kan placeras var som helst i förhållande till varandra.

Välj nu den första cellen i det andra intervallet (D3) och skriv in denna skrämmande formel i den:

=OM(RAD() -RAD(NejTom)+1>NOTROWS(JaTom)-COUNTBLANK(JaTom);””;INDIREKT(ADRESS(LÄGSTA((OM(Tom<>“”,RAD(Tom);RAD() + RADER(Det finns tomma))); LINE()-RAD(Inga tomma)+1); KOLUMN(Det finns tomma); 4)))

I den engelska versionen blir det:

=OM(RAD()-RAD(Ingen Tom)+1>RADER(Tom)-COUNTTOM(Tom),",",INDIREKT(ADRESS(LITEN((OM(Tom<>“”,RAD(Tom),RAD() +RADER(Har Tom))),RAD()-RAD(Ingen Tom)+1),KOLUMN(Har Tom),4)))

Dessutom måste den anges som en matrisformel, dvs tryck efter inklistring ange (som vanligt) och Ctrl + Skift + Enter. Nu kan formeln kopieras ner med autokomplettering (dra det svarta krysset i det nedre högra hörnet av cellen) – så får vi det ursprungliga intervallet, men utan tomma celler:

 

Metod 3. Anpassad funktion i VBA

Om det finns en misstanke om att du ofta måste upprepa proceduren för att ta bort tomma celler från intervall, är det bättre att lägga till din egen funktion för att ta bort tomma celler till standarduppsättningen en gång och använda den i alla efterföljande fall.

För att göra detta, öppna Visual Basic Editor (ALT + F11), infoga en ny tom modul (meny Infoga – Modul) och kopiera texten till denna funktion dit:

Funktion 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) För varje Rng i DataRange.Cells Om Rng.Value <> vbNullString Då 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 End If End-funktion  

Glöm inte att spara filen och byta tillbaka från Visual Basic Editor till Excel. För att använda den här funktionen i vårt exempel:

  1. Välj ett tillräckligt antal tomma celler, till exempel F3:F10.
  2. Gå till menyn Infoga – Funktion (Infoga — Funktion)eller klicka på knappen Infoga funktion (Infoga funktion) fliken formeln (Formler) i nyare versioner av Excel. I kategori Användardefinierad (Användardefinierad) välja vår funktion Noblanks.
  3. Ange källområdet med tomrum (B3:B10) som funktionsargument och tryck Ctrl + Skift + Enterför att ange funktionen som en matrisformel.

:

  • Ta bort alla tomma rader i en tabell på en gång med ett enkelt makro
  • Ta bort alla tomma rader i ett kalkylblad på en gång med PLEX-tillägget
  • Fyll snabbt i alla tomma celler
  • Vad är makron, var ska man infoga makrokod i VBA

 

Kommentera uppropet