Dölja/visa onödiga rader och kolumner

Formulering av problemet

Anta att vi har ett sådant bord som vi måste "dansa" med varje dag:

 

För vem bordet verkar litet – multiplicera det mentalt tjugo gånger med område, lägg till ytterligare ett par kvarter och två dussin stora städer. 

Uppgiften är att tillfälligt ta bort rader och kolumner från skärmen som för närvarande är onödiga för arbete, dvs. 

  • dölj detaljer efter månad och lämna bara kvarts
  • dölj totalsummor efter månader och kvartal, och lämna bara summan i ett halvår
  • dölja städer som är onödiga för tillfället (jag jobbar i Moskva – varför ska jag se St. Petersburg?) osv.

I verkliga livet finns det ett hav av exempel på sådana tabeller.

Metod 1: Dölja rader och kolumner

Metoden är uppriktigt sagt primitiv och inte särskilt bekväm, men två ord kan sägas om den. Alla tidigare valda rader eller kolumner på ett ark kan döljas genom att högerklicka på kolumnen eller radrubriken och välja kommandot från snabbmenyn Dölja (Dölj):

 

För omvänd visning, välj intilliggande rader/kolumner och, genom att högerklicka, välj från menyn, respektive, display (Visa).

Problemet är att du måste hantera varje kolumn och rad individuellt, vilket är obekvämt.

Metod 2. Gruppering

Om du väljer flera rader eller kolumner och sedan väljer från menyn Data – Grupp och struktur – Grupp (Data — Grupp och disposition — Grupp), då kommer de att omges av en hakparentes (grupperade). Dessutom kan grupper kapslas in i varandra (upp till 8 kapslingsnivåer är tillåtna):

Ett bekvämare och snabbare sätt är att använda en kortkommando för att gruppera förvalda rader eller kolumner. Alt+Skift+Högerpiloch för att avgruppera Alt+Skift+vänsterpil, Respektive.

Denna metod att dölja onödiga data är mycket bekvämare - du kan antingen klicka på knappen med "+"Eller"-“, eller på knapparna med en numerisk grupperingsnivå i det övre vänstra hörnet av arket – då kommer alla grupper på den önskade nivån att komprimeras eller utökas på en gång.

Också, om din tabell innehåller sammanfattande rader eller kolumner med funktionen att summera närliggande celler, det vill säga en chans (inte 100% sant) att Excel han kommer att skapa alla nödvändiga grupper i bordet med en rörelse – genom menyn Data – Grupp och struktur – Skapa struktur (Data — Grupp och disposition – Skapa disposition). Tyvärr fungerar en sådan funktion väldigt oförutsägbart och gör ibland fullständigt nonsens på komplexa tabeller. Men du kan försöka.

I Excel 2007 och nyare finns alla dessa glädjeämnen på fliken Data (Datum) i grupp   Structure (Översikt):

Metod 3. Dölja markerade rader/kolumner med ett makro

Denna metod är kanske den mest mångsidiga. Låt oss lägga till en tom rad och en tom kolumn i början av vårt ark och markera med valfri ikon de rader och kolumner som vi vill dölja:

Låt oss nu öppna Visual Basic Editor (ALT + F11), infoga en ny tom modul i vår bok (meny Infoga – Modul) och kopiera texten från två enkla makron dit:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Inaktivera skärmuppdatering för att påskynda för varje cell i ActiveSheet.UsedRange.Rows(1).Cells 'Iterera över alla celler i första raden If cell.Value = "x " Sedan cell .EntireColumn.Hidden = True 'if in cell x - hide column Next For Every cell In ActiveSheet.UsedRange.Columns(1).Cells 'går igenom alla celler i den första kolumnen Om cell.Value = "x" Då cell.EntireRow.Hidden = True 'om i cell x - dölj raden Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'avbryt alla dolda rader och kolumner Rows.Hidden = False End Sub Show()  

Som du kanske gissar, makrot Dölja gömmer och makrot Show – Visar tillbaka märkta rader och kolumner. Om så önskas kan makron tilldelas snabbtangenter (Alt + F8 och knapp parametrar), eller skapa knappar direkt på arket för att starta dem från fliken Utvecklare – Infoga – Knapp (Utvecklare — Infoga — Knapp).

Metod 4. Dölja rader/kolumner med en given färg

Låt oss säga att i exemplet ovan vill vi tvärtom dölja summorna, dvs lila och svarta rader och gula och gröna kolumner. Då måste vårt tidigare makro ändras något genom att lägga till, istället för att kontrollera närvaron av "x", en kontroll för att matcha fyllningsfärgen med slumpmässigt valda provceller:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False för varje cell i ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Sedan cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next För varje cell i 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 får dock inte glömma en varning: detta makro fungerar bara om cellerna i källtabellen fylldes med färg manuellt och inte använder villkorlig formatering (detta är en begränsning av egenskapen Interior.Color). Så, till exempel, om du automatiskt har markerat alla erbjudanden i din tabell där antalet är mindre än 10 med villkorlig formatering:

Dölja/visa onödiga rader och kolumner

... och du vill dölja dem i en rörelse, då måste det föregående makrot vara "avslutat". Om du har Excel 2010-2013 kan du komma ut med istället för egendomen Interiör egenskapen DisplayFormat.Interior, som matar ut färgen på cellen, oavsett hur den var inställd. Makrot för att dölja de blå linjerna kan då se ut så här:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False för varje cell i ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Sedan cell .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Cell G2 tas som ett prov för färgjämförelse. Tyvärr fastigheten DisplayFormat dök upp i Excel endast från och med 2010-versionen, så om du har Excel 2007 eller äldre måste du komma på andra sätt.

  • Vad är ett makro, var man infogar makrokod, hur man använder dem
  • Automatisk gruppering i flernivålistor

 

Kommentera uppropet