Skjuler/viser unødvendige rækker og kolonner

Formulering af problemet

Antag, at vi har sådan et bord, som vi skal "danse" med hver dag:

 

For hvem bordet virker lille – multiplicer det mentalt tyve gange efter område, tilføj et par blokke mere og to dusin store byer. 

Opgaven er midlertidigt at fjerne rækker og kolonner fra skærmen, der i øjeblikket er unødvendige for arbejdet, dvs. 

  • skjul detaljer efter måned, så kun kvartaler efterlades
  • skjul totaler efter måneder og kvartaler, så kun totalen er tilbage i et halvt år
  • skjule byer, der er unødvendige i øjeblikket (jeg arbejder i Moskva – hvorfor skulle jeg se St. Petersborg?) osv.

I det virkelige liv er der et hav af eksempler på sådanne tabeller.

Metode 1: Skjul rækker og kolonner

Metoden er ærlig talt primitiv og ikke særlig praktisk, men der kan siges to ord om den. Alle tidligere valgte rækker eller kolonner på et ark kan skjules ved at højreklikke på kolonne- eller rækkeoverskriften og vælge kommandoen fra kontekstmenuen Skjule (Skjule):

 

For omvendt visning skal du vælge tilstødende rækker / kolonner og ved at højreklikke vælge fra menuen hhv. udstilling (Vis).

Problemet er, at du skal håndtere hver kolonne og række individuelt, hvilket er ubelejligt.

Metode 2. Gruppering

Hvis du vælger flere rækker eller kolonner og derefter vælger fra menuen Data – Gruppe og Struktur – Gruppe (Data — gruppe og disposition — gruppe), så vil de blive omsluttet af en firkantet parentes (grupperet). Desuden kan grupper indlejres i hinanden (op til 8 indlejringsniveauer er tilladt):

En mere bekvem og hurtigere måde er at bruge en tastaturgenvej til at gruppere forudvalgte rækker eller kolonner. Alt+Shift+højre pil, og for at ophæve grupperingen Alt+Shift+venstre pil, henholdsvis.

Denne metode til at skjule unødvendige data er meget mere praktisk - du kan enten klikke på knappen med "+"Eller"“, eller på knapperne med et numerisk grupperingsniveau i øverste venstre hjørne af arket – så vil alle grupper på det ønskede niveau blive sammenklappet eller udvidet på én gang.

Således, hvis din tabel indeholder opsummerende rækker eller kolonner med funktionen at summere naboceller, det vil sige en chance (ikke 100 % sandt), at Excel han vil oprette alle de nødvendige grupper i bordet med én bevægelse – gennem menuen Data – Gruppe og Struktur – Opret struktur (Data — gruppe og disposition – opret disposition). Desværre fungerer sådan en funktion meget uforudsigeligt og gør nogle gange komplet nonsens på komplekse tabeller. Men du kan prøve.

I Excel 2007 og nyere er alle disse glæder på fanen data (Dato) i gruppe   Struktur (Omrids):

Metode 3. Skjul markerede rækker/kolonner med en makro

Denne metode er måske den mest alsidige. Lad os tilføje en tom række og en tom kolonne til begyndelsen af ​​vores ark og markere med et hvilket som helst ikon de rækker og kolonner, som vi vil skjule:

Lad os nu åbne Visual Basic Editor (ALT + F11), indsæt et nyt tomt modul i vores bog (menu Indsæt – Modul) og kopier teksten fra to simple makroer der:

Sub Hide() Dim celle As Range Application.ScreenUpdating = False 'Deaktiver skærmopdatering for at fremskynde for hver celle i ActiveSheet.UsedRange.Rows(1).Cells 'Generer over alle celler i den første række If cell.Value = "x " Derefter celle .EntireColumn.Hidden = True 'hvis i celle x - skjul kolonne Næste For hver celle I ActiveSheet.UsedRange.Columns(1). Celler 'går gennem alle celler i den første kolonne Hvis cell.Value = "x" Så cell.EntireRow.Hidden = True 'hvis i celle x - skjul rækken Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'annuller alle skjulte rækker og kolonner Rows.Hidden = False End Sub  

Som du måske gætter, makroen Skjule skjuler og makroen show – Viser bagerste mærkede rækker og kolonner. Hvis det ønskes, kan makroer tildeles genvejstaster (Alt + F8 og knappen parametre), eller opret knapper direkte på arket for at starte dem fra fanen Udvikler – Indsæt – Knap (Udvikler — Indsæt — Knap).

Metode 4. Skjul rækker/kolonner med en given farve

Lad os sige, at vi i ovenstående eksempel tværtimod ønsker at skjule totalerne, dvs. lilla og sorte rækker og gule og grønne kolonner. Derefter skal vores tidligere makro ændres en smule ved at tilføje, i stedet for at kontrollere tilstedeværelsen af ​​"x", en kontrol for at matche fyldfarven med tilfældigt udvalgte prøveceller:

Sub HideByColor() Dim celle som område Application.ScreenUpdating = Falsk for hver celle i 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 For Every Cell In 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  

Vi må dog ikke glemme en advarsel: denne makro virker kun, hvis cellerne i kildetabellen blev fyldt med farve manuelt og ikke bruger betinget formatering (dette er en begrænsning af egenskaben Interior.Color). Så for eksempel, hvis du automatisk fremhævede alle tilbud i din tabel, hvor tallet er mindre end 10 ved brug af betinget formatering:

Skjuler/viser unødvendige rækker og kolonner

... og du vil skjule dem i én bevægelse, så skal den forrige makro være "færdig". Hvis du har Excel 2010-2013, så kan du komme ud at bruge i stedet for ejendommen Interior ejendom DisplayFormat.Interiør, som udsender farven på cellen, uanset hvordan den blev indstillet. Makroen til at skjule de blå linjer kan så se sådan ud:

Sub HideByConditionalFormattingColor() Dim celle As Range Application.ScreenUpdating = False For hver celle I ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Derefter celle .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Celle G2 tages som en prøve til farvesammenligning. Desværre ejendommen DisplayFormat dukkede kun op i Excel fra 2010-versionen, så hvis du har Excel 2007 eller ældre, bliver du nødt til at finde på andre måder.

  • Hvad er en makro, hvor skal man indsætte makrokode, hvordan man bruger dem
  • Automatisk gruppering i lister på flere niveauer

 

Giv en kommentar