Cómo Ocultar Filas Según El Valor De La Celda En Excel (2 Métodos Sencillos)

Última actualización:

¿Te gustaría saber cómo ocultar filas según el valor de la celda en Excel? Trabajar con grandes conjuntos de datos que contienen filas tras filas de datos puedes resultar bastante complicado. En tales casos, buscar datos que coincidan con criterios particulares puedes ser como buscar una aguja en un pajar. Afortunadamente, Excel proporciona algunas características que te permiten ocultar ciertas filas según el valor de la celda para que solo vea las filas que desea ver. Hay dos maneras de hacer esto:

  • Usando filtros
  • Usando VBA

En este tutorial, analizaremos ambos métodos y tú puedes elegir el modo con el que te sientas más cómodo.

Aquí puedes aprender sobre: Cómo Ocultar Filas En Excel De Forma Sencilla. 3 Métodos Fáciles

Uso de filtros para ocultar filas según el valor de la celda en Excel

Supongamos que tiene el conjunto de datos que se muestra a continuación y desea ver datos solo sobre los empleados que todavía están en servicio.

Cómo Ocultar Filas Según El Valor De La Celda En Excel (2 Métodos Sencillos)

Esto es realmente fácil de hacer usando filtros. Estos son los pasos que debe seguir:

Mira También Por Qué Deja De Sonar Un Audífono – Causas Y Soluciones Por Qué Deja De Sonar Un Audífono – Causas Y Soluciones
  1. Paso 1: Selecciona el área de trabajo de tu conjunto de datos.
  2. Paso 2: En la pestaña Datos, selecciona el botón Filtro. Lo encontrarás en el grupo ‘Ordenar y filtrar’.
Ordenar y filtrar
Ordenar y filtrar
  1. Paso 3: Ahora deberías ver un pequeño botón de flecha en cada celda de la fila del encabezado.

Ordenar y filtrar

  1. Paso 4: Estos botones están destinados a ayudarte a filtrar tus células. Puedes hacer clic en cualquier flecha para elegir un filtro para la columna correspondiente.
  2. Paso 5: En este ejemplo, queremos filtrar las filas que contienen el estado de empleo = «En servicio«. Por lo tanto, Selecciona la flecha junto al encabezado Estado de empleo.
  3. Paso 6: Desmarca las casillas junto a todos los estados, excepto «En servicio «. Simplemente puedes desmarcar » Seleccionar todo » para desmarcar rápidamente todo y luego seleccionar » En servicio «.
En servicio
En servicio
  1. Paso 7: Haz clic en Aceptar.

Ahora deberías poder ver solo las filas con Estado de empleo = » En servicio «. Todas las demás filas ahora deberían estar ocultas.

Estado de empleo = " En servicio "
Estado de empleo = » En servicio «

NOTA: Para mostrar las celdas ocultas, simplemente vuelva a hacer clic en el botón Filtro.

Uso de VBA para ocultar filas según el valor de la celda en Excel

El segundo método requiere un poco de codificación. Si estás acostumbrado a usar macros y un poco de codificación usando VBA, entonces obtienes mucho más alcance y flexibilidad para manipular tus datos para que se comporten exactamente de la manera que quieres.

Método 1: Escribiendo el código VBA para ocultar filas según el valor de la celda en Excel

El siguiente código te ayudará a mostrar solo las filas que contienen información sobre los empleados que están ‘en servicio‘ y ocultará todas las demás filas:

Sub HideRows ()

Mira También Qué Es Un Archivo ASC y Cómo Abrirlo Qué Es Un Archivo ASC y Cómo Abrirlo

StartRow = 2

EndRow = 19

ColNum = 3

Para i = StartRow a EndRow

If Cells (i, ColNum) .Value <> «En servicio» Entonces

Celdas (i, ColNum) .EntireRow.Hidden = True

Mira También Cómo Conectar Un Blu Ray A Una Pc – Guía Complate Cómo Conectar Un Blu Ray A Una Pc – Guía Complate

Demás

Celdas (i, ColNum) .EntireRow.Hidden = False

Terminará si

Siguiente yo

End Sub

La macro recorre cada celda de la columna C y oculta las filas que no contienen el valor «En servicio”. Básicamente, debe analizar cada celda de las filas 2 a 19 y ajustar el atributo ‘Oculto‘ de la fila que desea ocultar.

Mira También Formas De Ajustar Tablas En Word – Guía Completa Formas De Ajustar Tablas En Word – Guía Completa

Para ingresar el código anterior, cópialo y pégalo en la ventana de tu desarrollador. Así es cómo:

  1. Paso 1: En la cinta del menú Desarrollador, selecciona Visual Basic.
Visual Basic
Visual Basic

Una vez que se abra la ventana de VBA, verá todos sus archivos y carpetas en el Explorador de proyectos en el lado izquierdo. Si no ve el Explorador de proyectos, haz clic en Ver-> Explorador de proyectos.

Ver-> Explorador de proyectos
Ver-> Explorador de proyectos

Asegúrate de que ‘ThisWorkbook‘ esté seleccionado en el proyecto VBA con el mismo nombre que su libro de Excel.

Ver-> Explorador de proyectos
Ver-> Explorador de proyectos
  1. Paso 2: Haz clic en Insertar-> Módulo. Deberías ver que se abre una nueva ventana de módulo.
Insertar-> Módulo
Insertar-> Módulo

Ahora puedes empezar a codificar. Copia las líneas de código anteriores y pégalas en la ventana del nuevo módulo.

Insertar-> Módulo

En este ejemplo, queremos ocultar las filas que no contienen el valor ‘ En servicio ‘ en la columna 3. Pero puedes reemplazar el valor del número ColNum de “3” en la línea 4 por el número de columna que contiene los valores de sus criterios.

  1. Paso 3: Cierra la ventana de VBA.

NOTA: Si tu conjunto de datos cubre más de 19 filas, puedes cambiar los valores de las variables StartRow y EndRow a sus números de fila requeridos .

Si no puedes ver la cinta Desarrollador, en el menú Archivo, dirígete a Opciones . Selecciona Personalizar cinta y marca la opción Desarrollador en las pestañas principales .

  1. Paso 4: Finalmente, haz clic en Aceptar.

Tu macro ya está lista para usarse.

Método 2: Ejecutando la macro para ocultar filas según el valor de la celda en Excel

Siempre que necesite usar la macro anterior, todo lo que necesita hacer es ejecutarla, y así es como:

  1. Paso 1: Selecciona la pestaña Desarrollador
  2. Paso 2: Haz clic en el botón Macros (en el grupo Código ).
pestaña Desarrollador
pestaña Desarrollador
  1. Paso 3: Esto abrirá la Ventana de macros , donde encontrarás los nombres de todas las macros que ha creado hasta ahora.
  2. Paso 4: Selecciona la macro (o módulo) llamado HideRows y haz clic en el botón Ejecutar .
botón Ejecutar
botón Ejecutar

Deberías ver todas las filas donde el Estado de empleo no está oculto como » En servicio «.

En servicio
En servicio

Método 3: Explicación del Código para ocultar filas según el valor de la celda en Excel

Aquí hay una explicación línea por línea del código anterior:

En la línea 1 definimos el nombre de la función.

  • Sub HideRows ()

En las líneas 2, 3 y 4 definimos variables para contener la fila inicial y la fila final del conjunto de datos, así como el índice de la columna de criterios.

  • StartRow = 2
  • EndRow = 19
  • ColNum = 3

En las líneas 5 a 11, recorrimos cada celda en la columna “3” (o columna C) de la Hoja de trabajo activa. Si una celda no contiene el valor «En servicio«, entonces establecemos el atributo Oculto de toda la fila (correspondiente a esa celda) en Verdadero, lo que significa que queremos ocultar toda la fila correspondiente.

  • Para i = StartRow a EndRow
  • If Cells (i, ColNum) .Value <> «En servicio» Entonces
  • Celdas (i, ColNum) .EntireRow.Hidden = True
  • Demás
  • Celdas (i, ColNum) .EntireRow.Hidden = False
  • Terminara si
  • Siguiente yo

La línea 12 simplemente delimita el final de la función HideRows .

  • End Sub

De esta forma, el código anterior oculta todas las filas que no contienen el valor ‘ En servicio ‘ en la columna C.

Mostrar columnas según el valor de la celda

Ahora que hemos podido ocultar con éxito las filas no deseadas, ¿qué pasa si queremos volver a ver las filas ocultas?

Hacer esto es bastante fácil. Solo necesitas hacer un pequeño cambio en la función HideRows .

Sub UnhideRows ()

StartRow = 2

EndRow = 19

ColNum = 3

Para i = StartRow a EndRow

Celdas (i, ColNum) .EntireRow.Hidden = False

Siguiente yo

End Sub

Aquí, simplemente nos aseguramos de que, independientemente del valor, se muestren todas las filas (estableciendo la propiedad Oculto de todas las filas en False).

Puedes ejecutar esta macro exactamente de la misma manera que HideRows.

HideRows
HideRows

Ocultar filas basadas en valores de celda en tiempo real

En el primer ejemplo, las columnas están ocultas solo cuando se ejecuta la macro. Sin embargo, la mayoría de las veces, queremos ocultar columnas sobre la marcha, según el valor de una celda en particular.

Entonces, ahora veamos  otro ejemplo que demuestra esto. En este ejemplo, tenemos el siguiente conjunto de datos:

HideRows

La única diferencia con el primer conjunto de datos es que tenemos un valor en la celda A21 que determinará qué filas deben ocultarse. Entonces, cuando la celda A21 contiene el valor ‘Retirado‘, solo se ocultan las filas que contienen el Estado de empleo ‘Retirado’.

De manera similar, cuando la celda A21 contiene el valor ‘ En período de prueba ‘, solo se ocultan las filas que contienen el Estado de empleo ‘En período de prueba‘.

Cuando no hay nada en la celda A21, queremos que se muestren todas las filas.

Queremos que esto suceda en tiempo real, cada vez que cambie el valor en la celda A21. Para esto, necesitamos hacer uso de la función Worksheet_SelectionChange de Excel.

El evento Worksheet_SelectionChange para ocultar filas según el valor de la celda en Excel

El procedimiento Worksheet_SelectionChange es un evento de VBA integrado en Excel

Viene preinstalado con la hoja de trabajo y se llama cada vez que un usuario selecciona una celda y luego cambia su selección a otra celda.

Dado que esta función viene preinstalada con la hoja de trabajo, debe colocarla en el módulo de código de la hoja correcta para poder usarla.

En nuestro código, vamos a poner todas nuestras líneas dentro de esta función, para que se ejecuten cada vez que el usuario cambie el valor en A21 y luego Selecciona alguna otra celda.

Escribiendo el código VBA para ocultar filas según el valor de la celda en Excel

Aquí está el código que vamos a utilizar:

  • StartRow = 2
  • EndRow = 19
  • ColNum = 3
  • Para i = StartRow a EndRow
  • Si Celdas (i, ColNum) .Value = Rango («A21»). Valor Entonces
  • Celdas (i, ColNum) .EntireRow.Hidden = True
  • Demás
  • Celdas (i, ColNum) .EntireRow.Hidden = False
  • Terminara si
  • Siguiente yo

Para ingresar el código anterior, debes copiarlo y pegarlo en la ventana de tu desarrollador, dentro del procedimiento Worksheet_SelectionChange de tu hoja de trabajo. Así es cómo debes hacerlo:

  1. Paso 1: En la cinta del menú Desarrollador, selecciona Visual Basic.
  2. Paso 2: Una vez que se abra la ventana de VBA, verás todos los archivos y carpetas de tu proyecto en el Explorador de proyectos en el lado izquierdo.
  3. Paso 3: En el Explorador de proyectos , haz doble clic en el nombre de tu hoja de trabajo, debajo del proyecto VBA con el mismo nombre que su libro de Excel. En este ejemplo, estamos trabajando con Sheet1 .
Explorador de proyectos
Explorador de proyectos
  1. Paso 4: Esto abrirá una nueva ventana de módulo para la hoja seleccionada.
  2. Paso 5: Haz clic en la flecha desplegable a la izquierda de la ventana. Deberías ver una opción que dice «Hoja de trabajo« .
Hoja de trabajo
Hoja de trabajo
  1. Paso 6: Haz clic en la opción ‘Hoja de trabajo’. De forma predeterminada, verás el procedimiento Worksheet_SelectionChange creado para ti en la ventana del módulo.
Worksheet_SelectionChange
Worksheet_SelectionChange
  1. Paso 7: Ahora puedes empezar a codificar. Copie las líneas de código anteriores y péguelas en el procedimiento Worksheet_SelectionChange , justo después de la línea: Private Sub Worksheet_SelectionChange (ByVal Target As Range).
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  1. Paso 8: Cierra la ventana de VBA.

Ejecutando la macro para ocultar filas según el valor de la celda en Excel

El procedimiento Worksheet_SelectionChange comienza a ejecutarse tan pronto como haya terminado de codificar. Por lo tanto, no es necesario ejecutar explícitamente la macro para que comience a funcionar.

  1. Paso 1: Intenta escribir ‘Retirado’en la celda A21, luego haz clic en cualquier otra celda. Deberías encontrar que todas las filas que contienen el valor ‘Retirado’ en la columna C desaparecen.
Retirado'en la celda A21
Retirado’en la celda A21
  1. Paso 2: Ahora intenta reemplazar el valor en la celda A21 por ‘ En período de prueba‘, luego haz clic en cualquier otra celda. Deberías encontrar todas las filas que contienen el valor ‘ En período de prueba ‘ en la columna C desaparecer.

En período de prueba

En período de prueba
En período de prueba
  1. Paso 3: Ahora intenta eliminar el valor en la celda A21 y déjalo vacío. Luego haz clic en cualquier otra celda. Deberías encontrar que ambas filas se vuelven visibles nuevamente.

Cómo Ocultar Filas Según El Valor De La Celda En Excel (2 Métodos Sencillos)

Esto significa que el código funciona en tiempo real cuando se realizan cambios en la celda B20.

Explicación del Código

Dediquemos unos minutos a comprender este código ahora.

Las líneas 1, 2 y 3 definen variables para contener la fila inicial y la fila final del conjunto de datos, así como el índice de la columna de criterios. Puedes cambiar los valores según sus necesidades.

  • StartRow = 2
  • EndRow = 19
  • ColNum = 3

Líneas 4 a 10, recorren cada celda en la columna “3” (o columna C) de la hoja de trabajo. Si la celda contiene el valor en la celda A21, entonces establecemos el atributo ‘Oculto’ de toda la fila (correspondiente a esa celda) en Verdadero, lo que significa que queremos ocultar toda la fila correspondiente.

  • Para i = StartRow a EndRow
  • Si Celdas (i, ColNum) .Value = Rango («A21»). Valor Entonces
  • Celdas (i, ColNum) .EntireRow.Hidden = True
  • Demás
  • Celdas (i, ColNum) .EntireRow.Hidden = False
  • Terminara si
  • Siguiente yo

De esta manera, el código anterior oculta las filas del conjunto de datos según el valor en la celda A21. Si A21 no contiene ningún valor, el código muestra todas las filas.

También te puede interesar leer sobre: MS Excel: Cómo Utilizar La Declaración FOR NEXT VBA En Excel

Conclusión

En este tutorial, te mostramos cómo puedes usar Filtros y Excel VBA para ocultar filas según el valor de una celda en Excel. Hicimos esto con la ayuda de dos ejemplos simples: uno que elimina las filas requeridas solo cuando la macro se ejecuta explícitamente y otro que funciona en tiempo real. Esperamos que hayamos tenido éxito en ayudarte a comprender el concepto detrás del código para que pueda personalizarlo y usarlo en tus propias aplicaciones.

Deja un comentario