“Conocimiento software>

¿Puede ocultar filas en Excel usando una fórmula o declaración de condición?

2011/11/17
Sí, puede ocultar filas en Excel usando una fórmula o declaración condicional, pero no * directamente * dentro de una fórmula celular. En su lugar, debe usar formateo condicional con una fórmula personalizada junto con una macro VBA . Aquí le mostramos cómo hacerlo:

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.

¿Por qué en Excel cuando copia celdas no adyacentes hace todo lo que seleccione y A1 B1 E1 pero péguelo C1 D1 E1?
¿Qué función de Excel se usa para realizar un cálculo condicional?
Cada vez que guardo archivos de Excel o Word, van a la carpeta Mis documentos de forma predeterminada. ¿Cómo hago para ir a la subcarpeta de la unidad D?
¿Cómo se imprime la selección en cada página de Excel?
¿Qué se puede hacer con un Excel VBA?
¿Cómo se agrega otra pestaña de hoja en Microsoft Excel?
¿Cómo funciona las notas cortas de la oficina de MS de MS?
¿Cómo sabes que Excel está en modo de copia?
Más categorías
    没有任何同级栏目
Conocimiento de la computadora © http://www.ordenador.online