Tyhjien solujen poistaminen alueelta

Ongelman muotoilu

Meillä on joukko soluja, joiden tiedot sisältävät tyhjiä soluja:

 

Tehtävänä on poistaa tyhjät solut jättäen vain solut, joissa on tietoa.

Menetelmä 1. Karkea ja nopea

  1. Alkuperäisen alueen valinta
  2. Paina näppäintä F5, seuraava-painike Korostaa (erikois). Valitse avautuvasta ikkunasta Tyhjät solut(Tyhjät) ja valitse OK.

    Tyhjien solujen poistaminen alueelta

    Kaikki alueen tyhjät solut valitaan.

  3. Annamme valikossa komennon poistaa valitut solut: napsauta hiiren kakkospainikkeella- Poista solut (Poista solut) ylöspäin siirtymällä.

Menetelmä 2: Array Formula

Yksinkertaistamisen vuoksi nimetään työalueemme käyttämällä Name Manager (Nimipäällikkö) kieleke kaava (Kaavat) tai Excel 2003:ssa ja sitä vanhemmissa versioissa valikko Lisää – Nimi – Määritä (Lisää — Nimi — Määritä)

 

Nimeä alue B3:B10 OnkoTyhjä, alue D3:D10 – Ei mitäänTyhjä. Alueiden on oltava täysin samankokoisia, ja ne voivat sijaita missä tahansa suhteessa toisiinsa.

Valitse nyt toisen alueen ensimmäinen solu (D3) ja kirjoita siihen tämä pelottava kaava:

=JOS(RIVI() -RIVI(EiTyhjä)+1>NOTROWS(KylläTyhjä)-COUNTTYHJÄ(KylläTyhjä);””;PUOLA(OSOITE(ALIN((JOS(Tyhjä<>“”,RIVI(Tyhjä);RIVI) + RIVIT(Tyhjiä on))); LINE()-RIVI(Ei tyhjiä)+1); SARAKE(Tyhjiä on); 4)))

Englanninkielisessä versiossa se tulee olemaan:

=JOS(RIVI()-RIVI(EiTyhjä)+1>RIVIT(Tyhjä)-LASKETYYHJÄ(Tyhjä),"",PUOLA(OSOITE(PIENI((JOS(Tyhjä<>"",RIVI(Tyhjä),RIVI()) +RIVIT(Tyhjänä))),RIVI()-RIVI(Ei tyhjää)+1),SARAKE(Tyhjä),4)))

Lisäksi se on syötettävä taulukkokaavana eli paina liittämisen jälkeen enter (tavalliseen tapaan) ja Ctrl + Vaihto + Enter. Nyt kaava voidaan kopioida alas automaattisen täydennyksen avulla (vetämällä mustaa ristiä solun oikeassa alakulmassa) - ja saamme alkuperäisen alueen, mutta ilman tyhjiä soluja:

 

Tapa 3. Mukautettu toiminto VBA:ssa

Jos epäillään, että joudut usein toistamaan tyhjien solujen poistamistoimenpiteet alueilta, on parempi lisätä oma toiminto tyhjien solujen poistamiseksi standardijoukkoon kerran ja käyttää sitä kaikissa myöhemmissä tapauksissa.

Voit tehdä tämän avaamalla Visual Basic -editorin (ALT + F11), aseta uusi tyhjä moduuli (valikko Insert – moduuli) ja kopioi tämän funktion teksti sinne:

Funktio NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() Kuten Variantti Dim R Kuten Pitkä Dim C Kuten Pitkä MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) For DataRange.Cells jokaiselle Rng:lle If Rng.Value <> vbNullString Then N = N + 1 Result(N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Tulos(N2, 1) = vbNullString Seuraava N2 Jos Application.Caller.Rows.Count = 1 Sitten EiTyhjät = Application.Transpose(Result) Muuten EiTyhjät = Tulos End If End -toiminto  

Muista tallentaa tiedosto ja vaihtaa takaisin Visual Basic Editorista Exceliin. Voit käyttää tätä toimintoa esimerkissämme seuraavasti:

  1. Valitse riittävä määrä tyhjiä soluja, esimerkiksi F3:F10.
  2. Siirry valikkoon Insert – toiminto (Lisää — toiminto)tai napsauta painiketta Lisää toiminto (Lisää funktio) kieleke kaava (Kaavat) Excelin uudemmissa versioissa. Luokassa Käyttäjän määrittelemä (Käyttäjän määrittelemä) valitse toimintomme EiBlanks.
  3. Määritä lähdealue, jossa on tyhjät kohdat (B3:B10) funktion argumentiksi ja paina Ctrl + Vaihto + Entersyöttääksesi funktion taulukkokaavana.

:

  • Taulukon kaikkien tyhjien rivien poistaminen kerralla yksinkertaisella makrolla
  • Kaikkien tyhjien rivien poistaminen laskentataulukosta kerralla PLEX-lisäosan avulla
  • Täytä kaikki tyhjät solut nopeasti
  • Mitä makrot ovat, mihin makrokoodi lisätään VBA: ssa

 

Jätä vastaus