1. Formato condicional:
* Propósito: Para marcar filas que cumplan con sus criterios (la condición). En lugar de esconderse directamente, cambiaremos la fuente de la fila y llenaremos el color para ser invisible.
* Pasos:
1. Seleccione el rango de datos: Resalte la gama completa de filas y columnas que desea aplicar la condición de ocultación (por ejemplo, `A1:Z100` o por mucho que sean sus datos). Crucialmente, la * primera * fila de su selección se utilizará como referencia para su fórmula.
2. Vaya a formato condicional: En la pestaña "Inicio", haga clic en "Formato condicional"> "Nueva regla ..."
3. Elija "Use una fórmula para determinar qué celdas formatear": Seleccione este tipo de regla.
4. Entra en tu fórmula: En el cuadro de fórmula, ingrese una fórmula que devuelva `True` cuando desee ocultar la fila y 'falso' de lo contrario. * IMPORTANTE:* Use referencias relativas (`$ columnnamerownumber`) o referencias mixtas (` $ columnnamerownumber`) adecuadamente, dependiendo de lo que desee probar.
* Ejemplo 1 (Ocultar filas donde el valor en la columna A es "Ocultar"):
`` `Excel
=$ A1 ="escondite"
`` `` ``
Esta fórmula verifica si el valor en la columna A de la * primera fila * de su rango seleccionado es igual a "Ocultar". Luego aplicará el formato a esa fila. Como seleccionó todo el rango, la fórmula se ajustará automáticamente para cada fila.
* Ejemplo 2 (oculte filas donde el valor en la columna B es menor que 0):
`` `Excel
=$ B1 <0
`` `` ``
Esto oculta filas donde el valor en la columna B es negativo.
* Ejemplo 3 (oculte filas donde el valor en la columna C está en blanco):
`` `Excel
=Isblank ($ C1)
`` `` ``
5. Establezca el formato (para "ocultar"): Haga clic en el botón "Formato ...".
* Font: Cambie el color de fuente para que coincida con el color de fondo de sus celdas. Por lo general, esto es blanco (o sin relleno).
* relleno: Cambie el color de relleno para que coincida con el color de fondo de sus celdas. De nuevo, típicamente blanco (o sin relleno).
* Haga clic en "Aceptar" para cerrar el cuadro de diálogo Formato y luego "Aceptar" nuevamente para crear la regla de formato condicional.
2. VBA Macro (para ajustar la altura de la fila):
* Propósito: Para establecer la altura de la fila en 0 para las filas que coinciden con el formato. Este es el paso final para ocultar visualmente las filas.
* Pasos:
1. Abra el editor VBA: Presione `Alt + F11` para abrir el editor de Visual Basic.
2. Inserte un módulo: En el editor de VBA, vaya a "Insertar"> "Módulo".
3. Pegue el siguiente código: Pegue este código VBA en el módulo:
`` `VBA
Sub HiderowsBaseDonFormat ()
Dim rng como rango, celda como rango
Dim WS como hoja de trabajo
CONDFORMATO DIMA AS FORMATCONDITION
'Cambiar "Hoja1" al nombre de su hoja
Establecer ws =thisworkbook.sheets ("Hoja1")
'Cambiar A1:Z100 al rango real donde se aplica el formato condicional
Establecer rng =ws.range ("A1:Z100")
'Recorre cada celda en el rango
Para cada celda en rng.rows
'Suponga que inicialmente no te escondas
Cell.hidden =falso
'Reunir a través de todos los formatos condicionales
Para cada condformat en celda.formatConditions
Si Condformat.Type =XlexPression entonces
'Evaluar la fórmula, si es cierto, entonces esconderse
Si ws.Evaluate (Condformat.Formula1) entonces
Cell.hidden =True
Salir
Final si
Final si
Siguiente Condformat
Siguiente celda
Final
SubhideAllrows ()
Dim WS como hoja de trabajo
'Cambiar "Hoja1" al nombre de su hoja
Establecer ws =thisworkbook.sheets ("Hoja1")
ws.rows.hidden =falso
Final
`` `` ``
4. Personalice el código:
* `ws =thisworkbook.sheets (" hoja1 ")` :Cambiar `" Hoja1 "` al nombre real de la hoja de trabajo donde están sus datos.
* `set rng =ws.range (" a1:z100 ")` :Cambiar `" A1:Z100 "` al mismo rango de datos que utilizó al crear la regla de formato condicional.
5. Ejecute la macro: Regrese al editor de VBA (si lo cerró) y presione `F5` para ejecutar la macro` HidersBaseDonFormat`. Alternativamente, desde Excel, vaya a la pestaña "Desarrollador" (si no la ve, deberá habilitarlo en Opciones de Excel)> "Macros", seleccione `HidersBasedonFormat` y haga clic en" Ejecutar ".
6. (opcional) Agregue un botón: Puede insertar un botón en su hoja de trabajo (insertar -> formas -> botón) y asignarle la macro `hidersBasedOnformat`. Esto proporciona una forma fácil de usar de volver a ocultar las filas cada vez que cambia los datos. También puede agregar un botón para 'UnhideAllrows'.
Explicación:
* Formato condicional: Esto marca las filas que queremos esconder.
* VBA Macro: Este código itera a través de las filas, verificando si el formato condicional se aplica a cada fila. Si lo hace, establece el `Rowheight` en 0, haciendo que la fila sea efectivamente invisible. Utilizamos la fórmula de formato condicional como parte de la macro, por lo que no se basa solo en el formato, ya que eso puede cambiar.
Consideraciones importantes:
* Rendimiento: Si tiene un conjunto de datos muy grande (decenas de miles de filas), este enfoque * puede * ser lento porque itera a través de cada fila. Puede haber soluciones VBA más complejas pero más rápidas si el rendimiento es crítico.
* Recalculación: Cuando sus datos cambian (y las reglas de formato condicional se vuelven a calcular), deberá volver a ejecutar la macro para volver a ocultar las filas si las condiciones han cambiado. Puede automatizar esto usando un controlador de eventos en VBA (por ejemplo, `Worksheet_change` para activar la macro cada vez que se modifica una celda en la hoja). Sin embargo, tenga cuidado, ya que ejecutar una macro en cada cambio también puede retrasar las cosas.
Ejemplo con el evento `Worksheet_change` (escondite automático):
Para hacer la ocultación automática cada vez que cambia los datos, puede modificar el código VBA de la siguiente manera. En lugar de colocar el código en un módulo, colóquelo en la ventana del código * de la hoja de trabajo *:
1. Haga clic con el botón derecho en la pestaña de la hoja (por ejemplo, "Hoja1") en Excel y seleccione "Vista del código". Esto abrirá el editor VBA directamente al módulo de código de la hoja de trabajo.
2. Pegue el siguiente código en la ventana de código de la hoja de trabajo:
`` `VBA
Sub -Worksheet_change privado (objetivo BYVAL como rango)
'Llame a la macro HidersBasedOnformat cada vez que cambia la hoja.
HidersBaseDonFormat
Final
Sub HiderowsBaseDonFormat ()
Dim rng como rango, celda como rango
Dim WS como hoja de trabajo
CONDFORMATO DIMA AS FORMATCONDITION
'Cambiar "Hoja1" al nombre de su hoja
Establecer ws =thisworkbook.sheets ("Hoja1")
'Cambiar A1:Z100 al rango real donde se aplica el formato condicional
Establecer rng =ws.range ("A1:Z100")
'Recorre cada celda en el rango
Para cada celda en rng.rows
'Suponga que inicialmente no te escondas
Cell.hidden =falso
'Reunir a través de todos los formatos condicionales
Para cada condformat en celda.formatConditions
Si Condformat.Type =XlexPression entonces
'Evaluar la fórmula, si es cierto, entonces esconderse
Si ws.Evaluate (Condformat.Formula1) entonces
Cell.hidden =True
Salir
Final si
Final si
Siguiente Condformat
Siguiente celda
Final
SubhideAllrows ()
Dim WS como hoja de trabajo
'Cambiar "Hoja1" al nombre de su hoja
Establecer ws =thisworkbook.sheets ("Hoja1")
ws.rows.hidden =falso
Final
`` `` ``
* IMPORTANTE: Reemplace `" Hoja1 "` y `" A1:Z100 "` con su nombre de hoja real y rango de datos, como antes.
Ahora, cada vez que cambia un valor en la hoja, la macro `hidersbasedOnformat` se ejecutará automáticamente, volviendo a ocultar cualquier fila que cumpla con los criterios de formato condicionales.
Recuerde guardar su archivo de Excel como un libro de trabajo Macro habilitado (.XLSM) para preservar el código VBA.
Este enfoque proporciona una forma flexible de "ocultar" dinámicamente filas en Excel en función de una fórmula, aunque requiere el uso de formateo condicional y VBA. Elija el método que mejor se adapte a sus necesidades y al nivel de comodidad con VBA. La macro más simple y activada por botones es a menudo un buen punto de partida.