¿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.
Esto es realmente fácil de hacer usando filtros. Estos son los pasos que debe seguir:
- Paso 1: Selecciona el área de trabajo de tu conjunto de datos.
- Paso 2: En la pestaña Datos, selecciona el botón Filtro. Lo encontrarás en el grupo ‘Ordenar y filtrar’.
- Paso 3: Ahora deberías ver un pequeño botón de flecha en cada celda de la fila del encabezado.
- 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.
- 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.
- 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 «.
- 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.
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 ()
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
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.
Para ingresar el código anterior, cópialo y pégalo en la ventana de tu desarrollador. Así es cómo:
- Paso 1: En la cinta del menú Desarrollador, selecciona 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.
Asegúrate de que ‘ThisWorkbook‘ esté seleccionado en el proyecto VBA con el mismo nombre que su libro de Excel.
- Paso 2: Haz clic en Insertar-> Módulo. Deberías ver que se abre una nueva ventana de 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.
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.
- 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 .
- 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:
- Paso 1: Selecciona la pestaña Desarrollador
- Paso 2: Haz clic en el botón Macros (en el grupo Código ).
- Paso 3: Esto abrirá la Ventana de macros , donde encontrarás los nombres de todas las macros que ha creado hasta ahora.
- Paso 4: Selecciona la macro (o módulo) llamado ‘HideRows‘ y haz clic en el botón Ejecutar .
Deberías ver todas las filas donde el Estado de empleo no está oculto como » 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.
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:
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:
- Paso 1: En la cinta del menú Desarrollador, selecciona Visual Basic.
- 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.
- 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 .
- Paso 4: Esto abrirá una nueva ventana de módulo para la hoja seleccionada.
- 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« .
- 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.
- 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).
- 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.
- 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.
- 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
- 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.
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.
Me llamo Javier Chirinos y soy un apasionado de la tecnología. Desde que tengo uso de razón me aficioné a los ordenadores y los videojuegos y esa afición terminó en un trabajo.
Llevo más de 15 años publicando sobre tecnología y gadgets en Internet, especialmente en mundobytes.com
También soy experto en comunicación y marketing online y tengo conocimientos en desarrollo en WordPress.