Ascunderea/afișarea rândurilor și coloanelor inutile

Formularea problemei

Să presupunem că avem o astfel de masă cu care trebuie să „dansăm” în fiecare zi:

 

Cui tabelul pare mic – înmulțiți-l mental de douăzeci de ori pe zonă, adăugând încă câteva blocuri și două duzini de orașe mari. 

Sarcina este de a elimina temporar de pe ecran rândurile și coloanele care nu sunt în prezent necesare pentru muncă, de exemplu, 

  • ascunde detalii pe lună, lăsând doar sferturi
  • ascunde totalurile pe luni și trimestre, lăsând doar totalul pentru o jumătate de an
  • ascunde orașe care nu sunt necesare în acest moment (lucrez la Moscova – de ce să văd Sankt Petersburg?), etc.

În viața reală, există o mulțime de exemple de astfel de tabele.

Metoda 1: Ascunderea rândurilor și coloanelor

Metoda, sincer, este primitivă și nu foarte convenabilă, dar se pot spune două cuvinte despre ea. Toate rândurile sau coloanele selectate anterior dintr-o foaie pot fi ascunse făcând clic dreapta pe antetul coloanei sau rândului și selectând comanda din meniul contextual Ascunde (Ascunde):

 

Pentru afișarea inversă, selectați rândurile/coloanele adiacente și, făcând clic dreapta, selectați din meniu, respectiv, afișa (Afișează).

Problema este că trebuie să vă ocupați de fiecare coloană și rând individual, ceea ce este incomod.

Metoda 2. Gruparea

Dacă selectați mai multe rânduri sau coloane și apoi selectați din meniu Date – Grup și Structură – Grup (Date — Grup și Structură — Grup), apoi vor fi cuprinse între paranteze drepte (grupate). În plus, grupurile pot fi imbricate unul în altul (sunt permise până la 8 niveluri de imbricare):

O modalitate mai convenabilă și mai rapidă este să utilizați o comandă rapidă de la tastatură pentru a grupa rândurile sau coloanele preselectate. Alt+Shift+Săgeată la dreapta, și pentru degrupare Alt+Shift+Săgeată la stânga, respectiv.

Această metodă de a ascunde datele inutile este mult mai convenabilă - puteți fie să faceți clic pe butonul cu „+"Sau"-„, sau pe butoanele cu un nivel de grupare numerică în colțul din stânga sus al foii – apoi toate grupurile de nivelul dorit vor fi restrânse sau extinse simultan.

De asemenea, dacă tabelul dvs. conține rânduri sau coloane rezumative cu funcția de a aduna celulele învecinate, adică o șansă (nu 100% adevărat) ca Excel el va crea toate grupurile necesare în tabel cu o singură mișcare – prin meniu Date – Grup și Structură – Creare structură (Date — Grupare și schiță — Creare schiță). Din păcate, o astfel de funcție funcționează foarte imprevizibil și uneori face prostii complete pe tabele complexe. Dar poți încerca.

În Excel 2007 și mai nou, toate aceste bucurii sunt pe filă Date (Data) in grup   Structure (Contur):

Metoda 3. Ascunderea rândurilor/coloanelor marcate cu o macrocomandă

Această metodă este poate cea mai versatilă. Să adăugăm un rând și o coloană goală la începutul foii noastre și să marchem cu orice pictogramă acele rânduri și coloane pe care dorim să le ascundem:

Acum să deschidem Editorul Visual Basic (ALT + F11), introduceți un nou modul gol în cartea noastră (meniu Inserare – Modul) și copiați acolo textul a două macrocomenzi simple:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False „Dezactivați actualizarea ecranului pentru a accelera Pentru fiecare celulă din ActiveSheet.UsedRange.Rows(1).Cells” „Iterează peste toate celulele din primul rând Dacă cell.Value = „x " Apoi celula .EntireColumn.Hidden = True 'dacă în celula x - ascunde coloana Următorul pentru fiecare celulă din ActiveSheet.UsedRange.Columns(1).Celulele 'trec prin toate celulele primei coloane Dacă cell.Value = "x" Atunci cell.EntireRow.Hidden = Adevărat 'dacă în celula x - ascunde rândul Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'anulează toate rândurile și coloanele ascunse Rows.Hidden = False End Sub  

După cum ați putea ghici, macro Ascunde ascunsele și macroul Spectacol – Afișează rândurile și coloanele etichetate în spate. Dacă se dorește, macrocomenzilor li se pot atribui taste rapide (Alt + F8 și buton parametrii), sau creați butoane direct pe foaie pentru a le lansa din filă Dezvoltator – Inserare – Buton (Dezvoltator - Inserare - Buton).

Metoda 4. Ascunderea rândurilor/coloanelor cu o culoare dată

Să spunem că în exemplul de mai sus, noi, dimpotrivă, vrem să ascundem totalurile, adică rândurile violet și negre și coloanele galbene și verzi. Apoi macrocomanda noastră anterioară va trebui să fie ușor modificată prin adăugarea, în loc de a verifica prezența lui „x”, o verificare pentru potrivirea culorii de umplere cu celulele eșantionului selectate aleatoriu:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False Pentru fiecare celulă din ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = Adevărat dacă cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next Pentru fiecare celulă din ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Interval ("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  

Cu toate acestea, nu trebuie să uităm de un avertisment: această macrocomandă funcționează numai dacă celulele tabelului sursă au fost umplute manual cu culoare și nu folosind formatarea condiționată (aceasta este o limitare a proprietății Interior.Color). Deci, de exemplu, dacă ați evidențiat automat toate ofertele din tabel unde numărul este mai mic de 10 utilizând formatarea condiționată:

Ascunderea/afișarea rândurilor și coloanelor inutile

… și doriți să le ascundeți într-o singură mișcare, atunci macrocomanda anterioară va trebui să fie „terminată”. Dacă aveți Excel 2010-2013, atunci puteți ieși folosind în loc de proprietate Interior proprietate DisplayFormat.Interior, care scoate culoarea celulei, indiferent de modul în care a fost setată. Macrocomanda pentru a ascunde liniile albastre ar putea arăta astfel:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False Pentru fiecare celulă din ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

Celula G2 este luată ca probă pentru compararea culorilor. Din pacate proprietatea DisplayFormat a apărut în Excel abia începând cu versiunea 2010, așa că dacă aveți Excel 2007 sau mai vechi, va trebui să veniți cu alte modalități.

  • Ce este o macrocomandă, unde se introduce codul macro, cum să le folosească
  • Grupare automată în liste pe mai multe niveluri

 

Lasă un comentariu