Sadržaj
Formulacija problema
Imamo niz ćelija s podacima koji sadrže prazne ćelije:
Zadatak je ukloniti prazne ćelije, ostavljajući samo ćelije s informacijama.
Metoda 1. Grubo i brzo
- Odabir izvornog raspona
- Pritisnite tipku F5, sljedeći gumb Istaknuti (posebno). U prozoru koji se otvori odaberite Prazne ćelije(praznine) i kliknite OK.
Odabrane su sve prazne ćelije u rasponu.
- Dajemo naredbu u izborniku za brisanje odabranih ćelija: desni klik- Brisanje ćelija (Brisanje ćelija) s pomakom prema gore.
Metoda 2: Formula polja
Da pojednostavimo, nazovimo naše radne raspone pomoću Upravitelj imena (Upravitelj naziva) kartica formula (Formule) ili, u Excelu 2003 i starijim, izbornik Umetni – Ime – Dodijeli (Umetni — Ime — Definiraj)
Imenujte raspon B3:B10 HaveEmpty, raspon D3:D10 – NoneEmpty. Rasponi moraju biti strogo iste veličine i mogu se nalaziti bilo gdje jedan u odnosu na drugi.
Sada odaberite prvu ćeliju drugog raspona (D3) i u nju unesite ovu zastrašujuću formulu:
=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;INDIRECT(ADDRESS(LOWEST((IF(Empty<>“”,ROW(Empty);ROW() + ROWS(Ima praznih))); LINE()-ROW(Nema praznih)+1); COLUMN(Ima praznih); 4)))
U engleskoj verziji to će biti:
=IF(ROW()-ROW(NoEmpty)+1>ROWS(Empty)-COUNTBLANK(prazno),””,INDIRECT(ADDRESS(SMALL((IF(Empty<>“”,ROW(Empty),ROW() +ROWS(ImaPrazno))),RED()-RED(BezPrazno)+1),COLUMN(ImaPrazno),4)))
Štoviše, mora se unijeti kao formula polja, tj. pritisnuti nakon lijepljenja ući (kao i obično) i Ctrl + Shift + Enter. Sada se formula može kopirati pomoću automatskog dovršavanja (povucite crni križ u donjem desnom kutu ćelije) - i dobit ćemo izvorni raspon, ali bez praznih ćelija:
Metoda 3. Prilagođena funkcija u VBA
Ako postoji sumnja da ćete često morati ponavljati postupak uklanjanja praznih ćelija iz raspona, onda je bolje jednom dodati vlastitu funkciju za uklanjanje praznih ćelija u standardni skup i koristiti je u svim sljedećim slučajevima.
Da biste to učinili, otvorite Visual Basic Editor (ALT + F11), umetnite novi prazan modul (izbornik Umetak – Modul) i tamo kopirajte tekst ove funkcije:
Funkcija 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) Za svaki Rng u 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 = Rezultat End If End funkcija
Ne zaboravite spremiti datoteku i vratiti se s uređivača Visual Basic na Excel. Za korištenje ove funkcije u našem primjeru:
- Odaberite dovoljan raspon praznih ćelija, na primjer F3:F10.
- Idite na izbornik Umetanje – funkcija (Umetni — funkcija)ili kliknite na gumb Funkcija umetanja (Umetni funkciju) kartica formula (Formule) u novijim verzijama Excela. U kategoriji Korisnik definiran (Korisnik definiran) izabrati našu funkciju Nema praznina.
- Navedite izvorni raspon s prazninama (B3:B10) kao argument funkcije i pritisnite Ctrl + Shift + Enterza unos funkcije kao formule polja.
:
- Brisanje svih praznih redaka u tablici odjednom jednostavnom makronaredbom
- Uklanjanje svih praznih redaka na radnom listu odjednom pomoću PLEX dodatka
- Brzo ispunite sve prazne ćelije
- Što su makronaredbe, gdje umetnuti makro kod u VBA