Ocultar/mostrar filas e columnas innecesarias

Formulación do problema

Supoñamos que temos unha mesa coa que temos que "bailar" todos os días:

 

To whom the table seems small – mentally multiply it twenty times by area, adding a couple more blocks and two dozen large cities. 

A tarefa consiste en eliminar temporalmente da pantalla as filas e columnas que actualmente non son necesarias para o traballo, é dicir, 

  • ocultar detalles por mes, deixando só cuartos
  • ocultar os totais por meses e trimestres, quedando só o total durante medio ano
  • ocultar cidades que non son necesarias neste momento (traballo en Moscova, por que debería ver San Petersburgo?), etc.

Na vida real, hai un mar de exemplos deste tipo de táboas.

Método 1: ocultar filas e columnas

O método, francamente, é primitivo e non moi conveniente, pero pódense dicir dúas palabras respecto diso. Calquera fila ou columna seleccionada previamente nunha folla pódese ocultar facendo clic co botón dereito na cabeceira da columna ou da fila e seleccionando o comando no menú contextual. Agochar (Ocultar):

 

Para a visualización inversa, seleccione as filas/columnas adxacentes e, facendo clic co botón dereito, seleccione no menú, respectivamente, amosar (Mostrar).

O problema é que tes que tratar con cada columna e fila individualmente, o que é un inconveniente.

Método 2. Agrupación

Se selecciona varias filas ou columnas e despois selecciona no menú Datos – Grupo e Estrutura – Grupo (Datos — Grupo e esquema — Grupo), entón irán encerrados entre corchetes (agrupados). Ademais, os grupos pódense aniñar uns noutros (permítense ata 8 niveis de anidación):

Unha forma máis cómoda e rápida é usar un atallo de teclado para agrupar filas ou columnas preseleccionadas. Alt+Maiús+Frecha dereita, e para desagrupar Alt+Maiús+Frecha esquerda, Respectivamente.

Este método de ocultar datos innecesarios é moito máis cómodo: podes facer clic no botón co botón "+"Ou"-", ou nos botóns cun nivel de agrupación numérico na esquina superior esquerda da folla; entón todos os grupos do nivel desexado contraeranse ou expandiranse á vez.

Ademais, se a túa táboa contén filas ou columnas de resumo coa función de sumar celas veciñas, é dicir, unha oportunidade (non 100% verdade) de que Excel creará todos os grupos necesarios na táboa cun só movemento: a través do menú Datos - Grupo e Estrutura - Crear estrutura (Datos — Grupo e esquema — Crear esquema). Desafortunadamente, tal función funciona de forma moi imprevisible e ás veces fai un disparate completo en táboas complexas. Pero podes probar.

En Excel 2007 e máis recentes, todas estas alegrías están na pestana Data (Data) en grupo   estrutura (esquema):

Método 3. Ocultar filas/columnas marcadas cunha macro

Este método é quizais o máis versátil. Engadimos unha fila e unha columna baleiras ao comezo da nosa folla e marquemos con calquera icona aquelas filas e columnas que queremos ocultar:

Agora imos abrir o Editor de Visual Basic (ALT + F11), inserir un novo módulo baleiro no noso libro (menú Inserir – Módulo) e copie alí o texto de dúas macros sinxelas:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Desactivar a actualización da pantalla para acelerar Para cada cela en ActiveSheet.UsedRange.Rows(1).Cells' Iterar sobre todas as celas da primeira fila Se cell.Value = "x " A continuación, a cela .EntireColumn.Hidden = True 'se está na cela x - ocultar a columna Seguinte para cada cela en ActiveSheet.UsedRange.Columns(1).As celas' pasan por todas as celas da primeira columna Se cell.Value = "x" Entón cell.EntireRow.Hidden = Verdadero 'se está na cela x - ocultar a fila Seguinte Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = Falso 'cancelar todas as filas e columnas ocultas Rows.Hidden = Falso Sub Sub.  

Como podes adiviñar, a macro Agochar ocultas e a macro mostra - Mostra as filas e columnas etiquetadas traseiras. Se o desexa, pódense asignar teclas de acceso rápido ás macros (Alt + F8 e botón Parámetros), ou crear botóns directamente na folla para inicialos desde a pestana Desenvolvedor - Inserir - Botón (Desenvolvedor - Inserir - Botón).

Método 4. Ocultar filas/columnas cunha cor determinada

Digamos que no exemplo anterior, nós, pola contra, queremos ocultar os totais, é dicir, filas moradas e negras e columnas amarelas e verdes. Entón, a nosa macro anterior terá que modificarse lixeiramente engadindo, en lugar de comprobar a presenza de "x", unha comprobación para facer coincidir a cor de recheo coas celas de mostra seleccionadas aleatoriamente:

Sub HideByColor() Dim cell as Range Application.ScreenUpdating = False for each cell in ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = Verdadero Se cell.Interior.Color = Rango("K2").Interior.Color Entón cell.EntireColumn.Hidden = Verdadero Seguinte para cada cela en ActiveSheet.UsedRange.Columns(2).Cell If cell.Interior.Color = Intervalo ("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  

Non obstante, non debemos esquecernos dunha advertencia: esta macro só funciona se as celas da táboa de orixe se encheron de cor manualmente e non se utiliza o formato condicional (esta é unha limitación da propiedade Interior.Color). Así, por exemplo, se resaltou automaticamente todas as ofertas na súa táboa onde o número sexa inferior a 10 mediante o formato condicional:

Ocultar/mostrar filas e columnas innecesarias

... e quere ocultalos nun movemento, entón a macro anterior terá que estar "acabada". Se tes Excel 2010-2013, podes saír usando en lugar da propiedade Interior propiedade DisplayFormat.Interior, que saca a cor da cela, independentemente de como se axustou. A macro para ocultar as liñas azuis pode verse así:

Sub HideByConditionalFormattingColor() Dim cell as Range Application.ScreenUpdating = Falso para cada cela en 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  

A cela G2 tómase como mostra para a comparación de cores. Desafortunadamente a propiedade Formato de visualización apareceu en Excel só a partir da versión 2010, polo que se tes Excel 2007 ou anterior, terás que buscar outras formas.

  • Que é unha macro, onde inserir o código de macro, como usalas
  • Agrupación automática en listas multinivel

 

Deixe unha resposta