Sakrivanje/prikazivanje nepotrebnih redova i kolona

Formulacija problema

Pretpostavimo da imamo takav sto sa kojim moramo da "plešemo" svaki dan:

 

To whom the table seems small – mentally multiply it twenty times by area, adding a couple more blocks and two dozen large cities. 

Zadatak je da se sa ekrana privremeno uklone redovi i kolone koji su trenutno nepotrebni za rad, tj. 

  • sakriti detalje po mjesecima, ostavljajući samo kvartale
  • sakriti iznose po mjesecima i kvartalima, ostavljajući samo zbir za pola godine
  • sakriti gradove koji su u ovom trenutku nepotrebni (radim u Moskvi – zašto da vidim Sankt Peterburg?), itd.

U stvarnom životu postoji more primjera takvih tablica.

Metoda 1: Sakrivanje redova i kolona

Metoda je, iskreno, primitivna i nije baš zgodna, ali o njoj se mogu reći dvije riječi. Bilo koji prethodno odabrani redovi ili kolone na listu mogu se sakriti desnim klikom na kolonu ili zaglavlje reda i odabirom naredbe iz kontekstnog izbornika sakriti (sakrij):

 

Za obrnuti prikaz, odaberite susjedne redove/kolone i desnim klikom odaberite iz menija, odnosno prikaz (Otkrij).

Problem je u tome što morate da se bavite svakom kolonom i redom pojedinačno, što je nezgodno.

Metoda 2. Grupisanje

Ako odaberete više redova ili kolona, ​​a zatim odaberete iz menija Podaci – Grupa i Struktura – Grupa (Podaci — Grupa i Outline — Grupa), onda će biti stavljeni u uglastu zagradu (grupisani). Štaviše, grupe mogu biti ugniježđene jedna u drugu (dozvoljeno je do 8 nivoa ugniježđenja):

Prikladniji i brži način je korištenje prečice na tipkovnici za grupiranje unaprijed odabranih redova ili kolona. Alt+Shift+strelica udesno, i za razgrupisavanje Alt+Shift+strelica lijevo, respektivno.

Ova metoda skrivanja nepotrebnih podataka je mnogo praktičnija – možete kliknuti na dugme sa „+"Ili"-“, ili na dugmadima sa numeričkim nivoom grupiranja u gornjem lijevom uglu lista – tada će se sve grupe željenog nivoa odjednom skupiti ili proširiti.

također, ako vaša tablica sadrži zbirne redove ili stupce sa funkcijom zbrajanja susjednih ćelija, odnosno šansa (nije 100% tačna) da Excel on će stvoriti sve potrebne grupe u tabeli jednim pokretom – kroz meni Podaci – Grupa i struktura – Kreiraj strukturu (Podaci — Grupa i obris — Kreiranje obrisa). Nažalost, takva funkcija radi vrlo nepredvidivo i ponekad čini potpunu glupost na složenim tablicama. Ali možete pokušati.

U programu Excel 2007 i novijim, sve ove radosti su na kartici podaci (Datum) u grupi   Struktura (Okvir):

Metod 3. Sakrivanje označenih redova/kolona pomoću makroa

Ova metoda je možda najsvestranija. Dodajmo prazan red i praznu kolonu na početak našeg lista i označimo bilo kojom ikonicom one redove i kolone koje želimo sakriti:

Sada otvorimo Visual Basic Editor (ALT + F11), ubacite novi prazan modul u našu knjigu (meni Umetak – Modul) i tamo kopirajte tekst dva jednostavna makroa:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Onemogući ažuriranje ekrana da bi se ubrzalo za svaku ćeliju u ActiveSheet.UsedRange.Rows(1).Cells 'Iteriraj preko svih ćelija u prvom redu Ako cell.Value = "x " Zatim ćelija .EntireColumn.Hidden = True 'ako je u ćeliji x - sakrij kolonu Sljedeće za svaku ćeliju u ActiveSheet.UsedRange.Columns(1).Ćelije 'prolaze kroz sve ćelije prve kolone Ako cell.Value = "x" Zatim cell.EntireRow.Hidden = Tačno 'ako je u ćeliji x - sakriti red Sljedeća Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'otkaži sve skrivanje redova i kolona Rows.Hidden = False End Sub  

Kao što možete pretpostaviti, makro sakriti skriva i makro pokazati – Prikazuje unazad označene redove i kolone. Ako želite, makroima se mogu dodijeliti prečice (Alt + F8 i dugme parametri) ili kreirajte dugmad direktno na listu da biste ih pokrenuli sa kartice Programer – Umetanje – Dugme (Programer — Umetanje — Dugme).

Metod 4. Sakrivanje redova/kolona datom bojom

Recimo da u gornjem primjeru, mi, naprotiv, želimo sakriti ukupne vrijednosti, odnosno ljubičaste i crne redove i žute i zelene kolone. Tada će se naš prethodni makro morati malo izmijeniti dodavanjem, umjesto provjere prisutnosti “x”, provjere za podudaranje boje ispune sa nasumično odabranim ćelijama uzorka:

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 Onda cell.EntireColumn.Hidden = Tačno ako cell.Interior.Color = Range("K2").Interior.Color Onda cell.EntireColumn.Hidden = Tačno sljedeće za svaku ćeliju u ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range ("D6").Interior.Color Zatim cell.EntireRow.Hidden = True Ako cell.Interior.Color = Range("B11").Interior.Color Zatim cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Međutim, ne smijemo zaboraviti na jedno upozorenje: ovaj makro funkcionira 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 istakli sve ponude u tablici gdje je broj manji od 10 koristeći uvjetno oblikovanje:

Sakrivanje/prikazivanje nepotrebnih redova i kolona

… a želite da ih sakrijete jednim pokretom, tada će prethodni makro morati da bude „završen“. Ako imate Excel 2010-2013, onda možete izaći koristeći umjesto svojstva unutrašnjost imovina DisplayFormat.Interior, koji daje boju ćelije, bez obzira na to kako je postavljena. Makro za skrivanje plavih linija bi tada mogao 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.DisplayFormat.Interior.Color. .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Ćelija G2 je uzeta kao uzorak za poređenje boja. Nažalost vlasništvo DisplayFormat pojavio se u Excelu tek počevši od verzije 2010, tako da ako imate Excel 2007 ili stariju verziju, morat ćete smisliti druge načine.

  • Šta je makro, gdje umetnuti kod makroa, kako ih koristiti
  • Automatsko grupisanje u višeslojnim listama

 

Ostavite odgovor