Mittevajalike ridade ja veergude peitmine/näitamine

Probleemi sõnastamine

Oletame, et meil on selline laud, millega peame iga päev “tantsima”:

 

Kellele tundub tabel väike – korrutage see mõtteliselt pindala järgi paarkümmend korda, lisades veel paar kvartalit ja kaks tosinat suurlinna. 

Ülesandeks on ajutiselt ekraanilt eemaldada read ja veerud, mis on hetkel tööks ebavajalikud, st. 

  • peida üksikasjad kuude kaupa, jättes alles vaid kvartalid
  • peida kogusummad kuude ja kvartalite kaupa, jättes pooleks aastaks ainult kogusumma
  • peita hetkel mittevajalikud linnad (töötan Moskvas – miks peaksin nägema Peterburi?) jne.

Reaalses elus on selliste tabelite näiteid meri.

1. meetod: ridade ja veergude peitmine

Meetod on ausalt öeldes primitiivne ja mitte eriti mugav, kuid selle kohta võib öelda kaks sõna. Kõik eelnevalt valitud read või veerud lehel saab peita, paremklõpsates veeru või rea päisel ja valides kontekstimenüüst käsu varjama (Peida):

 

Tagurpidi kuvamiseks valige külgnevad read/veerud ja paremklõpsates valige menüüst vastavalt ekraan (Näita peidust).

Probleem on selles, et peate tegelema iga veeru ja reaga eraldi, mis on ebamugav.

Meetod 2. Rühmitamine

Kui valite mitu rida või veergu ja seejärel menüüst Andmed – rühm ja struktuur – rühm (Andmed – rühm ja ülevaade – rühm), siis suletakse need nurksulgu (rühmitatakse). Lisaks saab rühmi üksteisesse pesastada (lubatud on kuni 8 pesastustaset):

Mugavam ja kiirem viis on eelvalitud ridade või veergude grupeerimiseks kasutada kiirklahvi. Alt+Shift+paremnoolja rühmituste eemaldamiseks Alt+Shift+vasaknool, Vastavalt.

See mittevajalike andmete peitmise meetod on palju mugavam – võite klõpsata nupul "+"Või"-“ või lehe vasakus ülanurgas numbrilise grupeerimistasemega nuppudel – siis ahendatakse või laiendatakse korraga kõik soovitud tasemega rühmad.

Niisiis, kui teie tabel sisaldab kokkuvõtlikke ridu või veerge naaberlahtrite liitmise funktsiooniga, see tähendab, et võimalus (ei ole 100% tõsi), et Excel ta loob kõik vajalikud rühmad tabelis ühe liigutusega – läbi menüü Andmed – rühm ja struktuur – loo struktuur (Andmed – rühm ja kontuur – loo ülevaade). Kahjuks töötab selline funktsioon väga ettearvamatult ja teeb mõnikord keeruliste tabelite peal täielikku jama. Aga sa võid proovida.

Excel 2007 ja uuemates versioonides on kõik need rõõmud vahekaardil kuupäev (Kuupäev) rühmas   struktuur (Outline):

Meetod 3. Märgistatud ridade/veergude peitmine makroga

See meetod on võib-olla kõige mitmekülgsem. Lisame oma lehe algusesse tühja rea ​​ja veeru ning märgime suvalise ikooniga need read ja veerud, mida tahame peita:

Nüüd avame Visual Basicu redaktori (ALT + F11), sisestage meie raamatusse uus tühi moodul (menüü Sisesta – moodul) ja kopeerige sinna kahe lihtsa makro tekst:

Sub Hide() Dim cell as Range Application.ScreenUpdating = False 'Keela ekraani värskendamine, et kiirendada iga lahtri ActiveSheet.UsedRange.Rows(1).Cells puhul 'Itereerige üle kõik esimese rea lahtrid Kui cell.Value = "x" " Siis lahter .EntireColumn.Hidden = Tõene 'kui lahtris x - peida veerg Järgmine Iga lahtri jaoks jaotises ActiveSheet.UsedRange.Columns(1). Lahtrid "läbivad kõik esimese veeru lahtrid If cell.Value = "x" Seejärel cell.EntireRow.Hidden = Tõene 'kui lahtris x - peida rida Next Application.ScreenUpdating = Tõene lõpu alam-Show() Columns.Hidden = Väär 'tühista kõik ridade ja veergude peitmine Rows.Hidden = Vale lõpu alam  

Nagu võite arvata, makro varjama peidud ja makro show – Kuvab tagumise sildistatud read ja veerud. Soovi korral saab makrodele määrata kiirklahve (Alt + F8 ja nuppu parameetrid) või looge nupud otse lehel, et neid vahekaardilt käivitada Arendaja – Sisesta – nupp (Arendaja – Sisesta – nupp).

Meetod 4. Etteantud värviga ridade/veergude peitmine

Oletame, et ülaltoodud näites tahame vastupidiselt peita kogusummad, st lillad ja mustad read ning kollased ja rohelised veerud. Seejärel tuleb meie eelmist makrot veidi muuta, lisades selle asemel, et kontrollida x olemasolu, täitevärvi vastavuse kontrolli juhuslikult valitud näidislahtritega:

Sub HideByColor() Dim cell as Range Application.ScreenUpdating = Väär iga lahtri jaoks ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Siis cell.EntireColumn.Hidden = Tõene Kui cell.Interior.Color = Range("K2").Interior.Color Siis cell.EntireColumn.Hidden = Tõene Järgmine iga lahtri jaoks ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Vahemik ("D6").Interior.Color Siis cell.EntireRow.Hidden = Tõene Kui cell.Interior.Color = Vahemik ("B11").Interior.Color Siis cell.EntireRow.Hidden = Tõene Järgmine rakendus.ScreenUpdating = True End Sub  

Kuid me ei tohi unustada üht hoiatust: see makro töötab ainult siis, kui lähtetabeli lahtrid täideti käsitsi, mitte tingimusvormingus (see on atribuudi Interior.Color piirang). Näiteks kui tõstsite tingimusvormingu abil automaatselt esile kõik pakkumised, mille arv on alla 10:

Mittevajalike ridade ja veergude peitmine/näitamine

… ja soovite need ühe liigutusega peita, siis tuleb eelmine makro "lõpetada". Kui teil on Excel 2010–2013, saate vara asemel välja tulla Interjöör kinnisvara DisplayFormat.Interior, mis väljastab lahtri värvi, olenemata selle määramisest. Siniste joonte peitmise makro võib sel juhul välja näha järgmine:

Sub HideByConditionalFormattingColor() Dim cell as Range Application.ScreenUpdating = Väär iga lahtri jaoks jaotises ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Siis lahter .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Lahter G2 võetakse värvide võrdlemiseks prooviks. Kahjuks vara Kuvavorming ilmus Excelis alles alates 2010. aasta versioonist, nii et kui teil on Excel 2007 või vanem, peate leidma muid võimalusi.

  • Mis on makro, kuhu sisestada makrokood, kuidas neid kasutada
  • Automaatne rühmitamine mitmetasandilistes loendites

 

Jäta vastus