Nascondere/mostrare righe e colonne non necessarie

Formulazione del problema

Supponiamo di avere un tavolo del genere con cui dobbiamo "ballare" ogni giorno:

 

A chi la tabella sembra piccola, moltiplicala mentalmente venti volte per area, aggiungendo un paio di isolati e due dozzine di grandi città. 

Il compito è rimuovere temporaneamente dallo schermo le righe e le colonne che non sono attualmente necessarie per il lavoro, ad es. 

  • nascondi i dettagli per mese, lasciando solo trimestri
  • nascondi i totali per mesi e trimestri, lasciando solo il totale per sei mesi
  • nascondere le città che al momento non sono necessarie (lavoro a Mosca, perché dovrei vedere San Pietroburgo?), ecc.

Nella vita reale, ci sono un mare di esempi di tali tavoli.

Metodo 1: nascondere righe e colonne

Il metodo, francamente, è primitivo e poco conveniente, ma si possono dire due parole a riguardo. Qualsiasi riga o colonna precedentemente selezionata su un foglio può essere nascosta facendo clic con il pulsante destro del mouse sull'intestazione della colonna o della riga e selezionando il comando dal menu contestuale nascondere (Nascondere):

 

Per la visualizzazione inversa, selezionare righe/colonne adiacenti e, facendo clic con il pulsante destro del mouse, selezionare dal menu, rispettivamente, dalla visualizzazione (Scopri).

Il problema è che devi gestire ogni colonna e riga individualmente, il che è scomodo.

Metodo 2. Raggruppamento

Se selezioni più righe o colonne, quindi seleziona dal menu Dati – Gruppo e struttura – Gruppo (Dati — Gruppo e Struttura — Gruppo), verranno quindi racchiusi tra parentesi quadre (raggruppati). Inoltre, i gruppi possono essere nidificati l'uno nell'altro (sono consentiti fino a 8 livelli di nidificazione):

Un modo più comodo e veloce consiste nell'utilizzare una scorciatoia da tastiera per raggruppare righe o colonne preselezionate. Alt+Maiusc+Freccia destrae per separare Alt+Maiusc+Freccia sinistra, Rispettivamente.

Questo metodo per nascondere i dati non necessari è molto più conveniente: puoi fare clic sul pulsante con il "+" o "-", o sui pulsanti con un livello di raggruppamento numerico nell'angolo in alto a sinistra del foglio, tutti i gruppi del livello desiderato verranno compressi o espansi contemporaneamente.

Inoltre se la tua tabella contiene righe o colonne di riepilogo con la funzione di sommare le celle adiacenti, ovvero una possibilità (non vera al 100%) che Excel creerà tutti i gruppi necessari nella tabella con un movimento – attraverso il menu Dati – Gruppo e struttura – Crea struttura (Dati — Gruppo e struttura — Crea struttura). Sfortunatamente, una tale funzione funziona in modo molto imprevedibile e talvolta completa sciocchezze su tabelle complesse. Ma puoi provare.

In Excel 2007 e versioni successive, tutte queste gioie sono nella scheda Dati (Data) in gruppo   Structure (Schema):

Metodo 3. Nascondere righe/colonne contrassegnate con una macro

Questo metodo è forse il più versatile. Aggiungiamo una riga vuota e una colonna vuota all'inizio del nostro foglio e segniamo con qualsiasi icona quelle righe e colonne che vogliamo nascondere:

Ora apriamo l'editor di Visual Basic (ALT + F11), inserisci un nuovo modulo vuoto nel nostro libro (menu Inserisci – Modulo) e copia lì il testo di due semplici macro:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Disabilita l'aggiornamento dello schermo per accelerare per ogni cella in ActiveSheet.UsedRange.Rows(1).Cells 'Esegui l'iterazione su tutte le celle nella prima riga Se cell.Value = "x " Quindi cella .EntireColumn.Hidden = True 'se nella cella x - nascondi colonna Avanti per ogni cella In ActiveSheet.UsedRange.Columns(1).Cells 'passa attraverso tutte le celle della prima colonna Se cell.Value = "x" Quindi cell.EntireRow.Hidden = True 'se nella cella x - nascondi la riga Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'cancella tutte le righe e le colonne nascoste Rows.Hidden = False End Sub  

Come puoi immaginare, la macro nascondere nasconde e la macro Mostra – Visualizza le righe e le colonne con etichetta posteriore. Se lo si desidera, alle macro possono essere assegnati tasti di scelta rapida (Alt + F8 e pulsante parametri), oppure creare pulsanti direttamente sul foglio per avviarli dalla scheda Sviluppatore – Inserisci – Pulsante (Sviluppatore — Inserisci — Pulsante).

Metodo 4. Nascondere righe/colonne con un determinato colore

Diciamo che nell'esempio sopra, al contrario, vogliamo nascondere i totali, cioè le righe viola e nere e le colonne gialle e verdi. Quindi la nostra macro precedente dovrà essere leggermente modificata aggiungendo, invece di verificare la presenza di "x", un controllo per abbinare il colore di riempimento con celle campione selezionate casualmente:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False per ogni cella 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 = True Next per ogni cella 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  

Tuttavia, non dobbiamo dimenticare un avvertimento: questa macro funziona solo se le celle della tabella di origine sono state riempite di colore manualmente e non utilizzando la formattazione condizionale (questa è una limitazione della proprietà Interior.Color). Quindi, ad esempio, se hai evidenziato automaticamente tutte le offerte nella tabella in cui il numero è inferiore a 10 utilizzando la formattazione condizionale:

Nascondere/mostrare righe e colonne non necessarie

... e vuoi nasconderli in un solo movimento, quindi la macro precedente dovrà essere "finita". Se hai Excel 2010-2013, puoi uscire usando invece della proprietà Interno proprietà DisplayFormat.Interno, che restituisce il colore della cella, indipendentemente da come è stata impostata. La macro per nascondere le linee blu potrebbe quindi assomigliare a questa:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False per ogni cella in ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Quindi cella .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

La cella G2 viene presa come campione per il confronto dei colori. Purtroppo la proprietà DisplayFormat è apparso in Excel solo a partire dalla versione 2010, quindi se hai Excel 2007 o versioni precedenti, dovrai trovare altri modi.

  • Che cos'è una macro, dove inserire il codice della macro, come usarle
  • Raggruppamento automatico in elenchi multilivello

 

Lascia un Commento