Skrivanje/prikazivanje nepotrebnih redaka i stupaca

Formulacija problema

Pretpostavimo da imamo takav stol s kojim moramo "plesati" svaki dan:

 

Kome se tablica čini malom - mentalno je pomnožite dvadeset puta po površini, dodajući još nekoliko blokova i dva tuceta velikih gradova. 

Zadatak je privremeno ukloniti s ekrana retke i stupce koji su trenutno nepotrebni za rad, tj. 

  • sakriti detalje po mjesecima, ostavljajući samo kvartale
  • sakriti ukupne iznose po mjesecima i kvartalima, ostavljajući samo ukupni iznos za pola godine
  • sakriti gradove koji su trenutno nepotrebni (radim u Moskvi – zašto bih trebao vidjeti St. Petersburg?), itd.

U stvarnom životu postoji more primjera takvih tablica.

Metoda 1: Skrivanje redaka i stupaca

Metoda je, iskreno, primitivna i nije baš zgodna, ali o njoj se mogu reći dvije riječi. Svi prethodno odabrani reci ili stupci na listu mogu se sakriti desnim klikom na zaglavlje stupca ili retka i odabirom naredbe iz kontekstnog izbornika sakriti (Sakriti):

 

Za obrnuti prikaz, odaberite susjedne retke / stupce i desnim klikom odaberite iz izbornika, odnosno, prikaz (Otkrij).

Problem je što se morate baviti svakim stupcem i redom pojedinačno, što je nezgodno.

Metoda 2. Grupiranje

Ako odaberete više redaka ili stupaca, a zatim odaberete iz izbornika Podaci – Grupa i Struktura – Grupa (Podaci — Grupa i Pregled — Grupa), tada će biti u uglatoj zagradi (grupirani). Štoviše, grupe se mogu ugniježđivati ​​jedna u drugu (dopušteno je do 8 razina ugniježđivanja):

Prikladniji i brži način je korištenje tipkovničkog prečaca za grupiranje unaprijed odabranih redaka ili stupaca. Alt+Shift+strelica desno, i za razgrupiranje Alt+Shift+Strelica lijevo, Respektivno.

Ova metoda skrivanja nepotrebnih podataka mnogo je praktičnija - možete kliknuti gumb s "+"Ili"-“, ili na gumbima s numeričkom razinom grupiranja u gornjem lijevom kutu lista – tada će se sve grupe željene razine odjednom sažeti ili proširiti.

Dakle, ako vaša tablica sadrži retke ili stupce sažetka s funkcijom zbrajanja susjednih ćelija, odnosno mogućnost (nije 100% istina) da Excel on će stvoriti sve potrebne grupe u tablici jednim pokretom – kroz izbornik Podaci – Grupa i struktura – Stvaranje strukture (Podaci — Grupiraj i nacrt — Stvori nacrt). Nažalost, takva funkcija radi vrlo nepredvidivo i ponekad radi potpunu glupost na složenim tablicama. Ali možete pokušati.

U Excelu 2007 i novijim, sve ove radosti su na kartici Datum (Datum) u grupi   Struktura (Nacrt):

Metoda 3. Skrivanje označenih redaka/stupaca pomoću makronaredbe

Ova metoda je možda najsvestranija. Dodajmo prazan redak i prazan stupac na početak našeg lista i označimo bilo kojom ikonom one retke i stupce koje želimo sakriti:

Sada otvorimo Visual Basic Editor (ALT + F11), umetnite novi prazan modul u našu knjigu (izbornik Umetak – Modul) i tamo kopirajte tekst dvije jednostavne makronaredbe:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Onemogući ažuriranje zaslona radi ubrzanja za svaku ćeliju u ActiveSheet.UsedRange.Rows(1).Cells 'Iteracija preko svih ćelija u prvom retku If cell.Value = "x " Zatim ćelija .EntireColumn.Hidden = True 'ako je u ćeliji x - sakrij stupac Dalje Za svaku ćeliju u ActiveSheet.UsedRange.Columns(1).Cells 'prolazi kroz sve ćelije prvog stupca Ako ćelija.Value = "x" Zatim cell.EntireRow.Hidden = True 'ako je u ćeliji x - sakrij red Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'otkaži sve sakrivene retke i stupce Rows.Hidden = False End Sub  

Kao što možete pretpostaviti, makro sakriti skriva i makro Pokazati – Prikazuje unatrag označene retke i stupce. Po želji se makronaredbama mogu dodijeliti prečaci (Alt + F8 i gumb Parametri), ili kreirajte gumbe izravno na listu da biste ih pokrenuli s kartice Programer – Umetni – Gumb (Programer — Umetni — Gumb).

Metoda 4. Skrivanje redaka/stupaca zadanom bojom

Recimo da u gornjem primjeru, naprotiv, želimo sakriti zbrojeve, tj. ljubičaste i crne retke te žute i zelene stupce. Tada će se naša prethodna makronaredba morati malo modificirati dodavanjem, umjesto provjere prisutnosti "x", provjere podudaranja boje ispune s nasumično odabranim uzorcima ćelija:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False Za svaku ćeliju u ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next Za svaku ćeliju u ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range ("D6").Interior.Color Then cell.EntireRow.Hidden = True If cell.Interior.Color = Range("B11").Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Međutim, ne smijemo zaboraviti jedno upozorenje: ova makronaredba radi samo ako su ćelije izvorne tablice popunjene bojom ručno, a ne korištenjem uvjetnog oblikovanja (ovo je ograničenje svojstva Interior.Color). Tako, na primjer, ako ste automatski istaknuli sve ponude u svojoj tablici gdje je broj manji od 10 pomoću uvjetnog oblikovanja:

Skrivanje/prikazivanje nepotrebnih redaka i stupaca

... i želite ih sakriti jednim pokretom, tada će prethodni makro morati biti "dovršen". Ako imate Excel 2010-2013, tada možete izaći koristeći umjesto svojstva Unutrašnjost nekretnina DisplayFormat.Interior, koji daje boju ćelije, bez obzira na to kako je postavljena. Makronaredba za skrivanje plavih linija tada bi mogla izgledati ovako:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False Za svaku ćeliju u ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Ćelija G2 uzima se kao uzorak za usporedbu boja. Nažalost vlasništvo DisplayFormat pojavio se u Excelu tek počevši od verzije 2010, pa ako imate Excel 2007 ili stariji, morat ćete smisliti druge načine.

  • Što je makronaredba, gdje umetnuti makro kod, kako ih koristiti
  • Automatsko grupiranje u višerazinske liste

 

Ostavi odgovor