Versteek/wys onnodige rye en kolomme

Formulering van die probleem

Gestel ons het so 'n tafel waarmee ons elke dag moet “dans”:

 

Vir wie die tafel klein lyk – vermenigvuldig dit verstandelik twintig keer volgens area, voeg nog 'n paar blokke en twee dosyn groot stede by. 

Die taak is om rye en kolomme wat tans onnodig is vir werk, tydelik van die skerm te verwyder, bv. 

  • versteek besonderhede per maand, en laat slegs kwartale
  • versteek totale volgens maande en kwartale, en laat net die totaal vir 'n halfjaar
  • steek stede weg wat op die oomblik onnodig is (ek werk in Moskou – hoekom moet ek St. Petersburg sien?), ens.

In die werklike lewe is daar 'n see van voorbeelde van sulke tabelle.

Metode 1: Versteek rye en kolomme

Die metode is eerlikwaar primitief en nie baie gerieflik nie, maar twee woorde kan daaroor gesê word. Enige voorheen geselekteerde rye of kolomme op 'n blad kan versteek word deur met die rechtermuisknop op die kolom of rykopskrif te klik en die opdrag in die konteks kieslys te kies Steek (Versteek):

 

Vir omgekeerde vertoning, kies aangrensende rye/kolomme en, deur regs te klik, kies onderskeidelik uit die kieslys, vertoon (Versteek).

Die probleem is dat jy elke kolom en ry individueel moet hanteer, wat ongerieflik is.

Metode 2. Groepering

As jy veelvuldige rye of kolomme kies en dan uit die kieslys kies Data – Groep en Struktuur – Groep (Data — Groep en uiteensetting — Groep), dan sal hulle in 'n vierkantige hakie (gegroepeer) ingesluit word. Boonop kan groepe in mekaar geneste word (tot 8 nesvlakke word toegelaat):

'n Geriefliker en vinniger manier is om 'n sleutelbordkortpad te gebruik om vooraf geselekteerde rye of kolomme te groepeer. Alt+Shift+regspyltjie, en vir ontgroepering Alt+Shift+Linkspyltjie, Onderskeidelik.

Hierdie metode om onnodige data weg te steek is baie geriefliker - jy kan óf op die knoppie klik met die "+"Of"-“, of op die knoppies met 'n numeriese groeperingsvlak in die boonste linkerhoek van die blad – dan sal alle groepe van die verlangde vlak gelyktydig saamgevou of uitgebrei word.

Ook, as jou tabel opsommingsrye of kolomme bevat met die funksie om naburige selle op te som, dit wil sê 'n kans (nie 100% waar nie) dat Excel hy sal al die nodige groepe skep in die tabel met een beweging – deur die spyskaart Data – Groep en struktuur – Skep struktuur (Data — Groep en uiteensetting — Skep uiteensetting). Ongelukkig werk so 'n funksie baie onvoorspelbaar en doen soms volslae nonsens op komplekse tabelle. Maar jy kan probeer.

In Excel 2007 en nuwer is al hierdie vreugdes op die blad data (Datum) in groep   struktuur (Buitelyn):

Metode 3. Versteek gemerkte rye/kolomme met 'n makro

Hierdie metode is miskien die veelsydigste. Kom ons voeg 'n leë ry en 'n leë kolom by die begin van ons blad en merk met enige ikoon daardie rye en kolomme wat ons wil versteek:

Kom ons maak nou die Visual Basic Editor oop (ALT + F11), voeg 'n nuwe leë module in ons boek (kieslys Voeg in – Module) en kopieer die teks van twee eenvoudige makros daarheen:

Sub Hide() Dim sel As Range Application.ScreenUpdating = Onwaar 'Deaktiveer skermopdatering om te bespoedig vir elke sel In ActiveSheet.UsedRange.Rows(1).Selle 'Itereer oor alle selle in die eerste ry If cell.Value = "x " Dan sel .EntireColumn.Hidden = Waar 'as in sel x - versteek kolom Volgende Vir Elke sel In ActiveSheet.UsedRange.Columns(1).Selle 'gaan deur alle selle van die eerste kolom As sel.Value = "x" Dan cell.EntireRow.Hidden = Waar 'as in sel x - versteek die ry Volgende Application.ScreenUpdating = True End Sub Show() Columns.Hidden = False 'kanselleer alle versteekte rye en kolomme Rows.Hidden = False End Sub  

Soos jy dalk raai, die makro Steek huide en die makro Wys - Vertoon rye en kolomme met 'n etiket. As jy wil, kan makro's sneltoetse toegewys word (Alt + F8 en knoppie Grense), of skep knoppies direk op die blad om dit vanaf die oortjie te begin Ontwikkelaar – Voeg in – Knoppie (Ontwikkelaar - Voeg in - Knoppie).

Metode 4. Versteek rye/kolomme met 'n gegewe kleur

Kom ons sê dat ons in die voorbeeld hierbo, inteendeel, die totale wil wegsteek, dws pers en swart rye en geel en groen kolomme. Dan sal ons vorige makro effens gewysig moet word deur, in plaas daarvan om te kyk vir die teenwoordigheid van "x", 'n tjek by te voeg om die vulkleur met ewekansig geselekteerde monsterselle te pas:

Sub HideByColor() Dim sel As Omvang Application.ScreenUpdating = Onwaar vir elke sel In 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 = Waar Volgende Vir Elke sel In ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Reeks ("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  

Ons moet egter nie van een waarskuwing vergeet nie: hierdie makro werk net as die selle van die brontabel handmatig met kleur gevul is, en nie voorwaardelike formatering gebruik nie (dit is 'n beperking van die Interior.Color-eienskap). So, byvoorbeeld, as jy outomaties alle transaksies in jou tabel uitgelig het waar die getal minder as 10 is met behulp van voorwaardelike formatering:

Versteek/wys onnodige rye en kolomme

... en jy hulle in een beweging wil wegsteek, dan sal die vorige makro "klaar" moet wees. As jy Excel 2010-2013 het, kan jy uitgaan in plaas van die eiendom Binne eiendom DisplayFormat.Interior, wat die kleur van die sel uitvoer, ongeag hoe dit gestel is. Die makro om die blou lyne te versteek kan dan soos volg lyk:

Sub HideByConditionalFormattingColor() Verduister sel as reeks Application.ScreenUpdating = Vals vir elke sel in ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Dan sel .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Sel G2 word as 'n monster geneem vir kleurvergelyking. Ongelukkig die eiendom Vertoonformaat het eers vanaf die 2010-weergawe in Excel verskyn, so as jy Excel 2007 of ouer het, sal jy ander maniere moet uitdink.

  • Wat is 'n makro, waar om makro-kode in te voeg, hoe om dit te gebruik
  • Outomatiese groepering in multivlak-lyste

 

Lewer Kommentaar