Note: The other languages of the website are Google-translated. Back to English

¿Cómo encontrar y obtener el valor de la primera celda visible después de filtrar en Excel?

En algunos casos, es posible que deba obtener el valor de la primera celda visible en una lista filtrada. ¿Cómo lograrlo? Este artículo le mostrará métodos para resolverlo.

Encuentre y obtenga el valor de la primera celda visible después de filtrar con fórmula de matriz
Encuentre y obtenga el valor de la primera celda visible después de filtrar con VBA


Encuentre y obtenga el valor de la primera celda visible después de filtrar con fórmula de matriz

Puede aplicar la siguiente fórmula de matriz para obtener el valor de la primera celda visible en una lista filtrada. Haz lo siguiente.

1. Seleccione una celda en blanco para colocar el primer valor visible, ingrese la fórmula a continuación y luego presione el botón Ctrl + cambio + Enviar llaves al mismo tiempo

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

Nota:: En la fórmula, C2: C19 es la lista filtrada que desea que devuelva el primer valor de celda visible, C2 es la primera celda de la lista. Puede cambiarlos cuando lo necesite.

Luego, puede ver el valor de la primera celda visible en la lista filtrada rellenada en la celda seleccionada como se muestra en la captura de pantalla anterior.


Encuentre y obtenga el valor de la primera celda visible después de filtrar con VBA

Además de usar la fórmula de matriz anterior para obtener el valor de la primera celda visible en una lista filtrada, puede ejecutar el siguiente script VBA para devolver rápidamente la primera celda visible de una lista filtrada. Haz lo siguiente.

1. Seleccione una celda en blanco como E8 para colocar el primer valor de celda visible de una lista filtrada.

2. Prensa otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.

3. En el Microsoft Visual Basic para aplicaciones ventana, haga clic recuadro > Módulo. Luego copie y pegue el siguiente código VBA en la ventana del Módulo.

Código de VBA: busque y obtenga el valor de la primera celda visible después de filtrar en Excel

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

Nota:: En el código, Sheet1 es el nombre de la hoja que contiene la lista filtrada. "C" es el nombre de la columna de la que desea obtener el primer valor visible. Puede cambiarlos cuando lo necesite.

3. presione el F5 para ejecutar el código, la primera celda visible de la lista filtrada que se ubica en la columna C se completará en la celda E8 inmediatamente.


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (17)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
¿Cómo encontrar y obtener el valor de diez (10) primeras celdas visibles después del filtrado subtotal en Excel?
Este comentario fue minimizado por el moderador en el sitio
Hola,


¿Cómo faço para saber o número de células toda vez que realizo o filtro automático no vba via loop?
Por ejemplo, ao filtrar o valor 1, retornar como linhas 2, 3 y 4. No next loop filtro o valor 2 e return as linhas 19, 20, 22.
¿Cómo faço para que eu realice ese filtro eu pegue exactamente o valor da linha actual da linha do filtro e não o valor da primeira linha da planilha?
Gracias.
Este comentario fue minimizado por el moderador en el sitio
Excelente módulo en VBA, funcionó a la perfección. ¡Agradezco esto! ¡Muchas gracias por esta publicación!
Este comentario fue minimizado por el moderador en el sitio
¿Alguien puede explicar cómo funciona realmente esta fórmula?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Este comentario fue minimizado por el moderador en el sitio
Sigo recibiendo un error de tiempo de ejecución '91' Variable de objeto o Con variable de bloque no configurada. Mi hoja de trabajo es Sheet1 titulada AllBrands. Esta es mi fórmula:

Sub FirstVisibleCell()
Con Hojas de Trabajo("TODAS LAS MARCAS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
End With

End Sub

¡Cualquier ayuda será apreciada!
Este comentario fue minimizado por el moderador en el sitio
Hola Bub,
El código funciona bien en mi caso. ¿Qué versión de Excel estás usando?
Este comentario fue minimizado por el moderador en el sitio
Desafortunadamente, ni la fórmula, que me da un error de #VALOR ni el VBA me funciona y me da un error de tiempo de ejecución '1004'
Lástima que tengo Office 2019 y esperaba que una de estas funciones funcionara al filtrar celdas específicas... :-(
Este comentario fue minimizado por el moderador en el sitio
‌maravilloso🌺 Un millón de gracias🙏
Este comentario fue minimizado por el moderador en el sitio
Un millón de gracias 🙏🌺
Este comentario fue minimizado por el moderador en el sitio
Funciona. Muchas gracias...
Este comentario fue minimizado por el moderador en el sitio
Esta fórmula funciona, pero tenga en cuenta que si tiene celdas en blanco, la fórmula puede funcionar mal y seleccionar el primer valor en toda la tabla, no solo en los resultados filtrados. La solución que encontré fue reemplazar las celdas en blanco con NULL o un espacio.
Este comentario fue minimizado por el moderador en el sitio
Primero tenía espacios en blanco... luego todas las celdas estaban llenas pero aún tenían la respuesta #VALOR. ¡Ojalá esta fórmula también funcione en el texto...! Gracias por el consejo de todos modos ;-)
Este comentario fue minimizado por el moderador en el sitio
Entonces, para mí, la respuesta anterior simplemente no funciona tan bien. Tengo un libro de trabajo con más de 23k filas y es algo en lo que he estado trabajando para optimizar a lo largo de los años. Mi solución me llegó esta mañana en otra chispa de inspiración.
Suponiendo que está utilizando una TABLA para obtener los datos que desea, haga lo siguiente: una fila (la llamé "Rownmbr") está dedicada a: =CELDA([@[SUPRIMERO]])
Fuera de la tabla, crea una fórmula en algún lugar: = INDIRECTO (CONCATENAR ("A"; SUBTOTAL (105; Table1 [Rownmbr])))
Simplemente reemplace la "A" con el lugar del que desee obtener los datos. Para mí, esto funciona muy bien, y no es una fórmula pesada que atasque aún más el documento.
Este comentario fue minimizado por el moderador en el sitio
Esta solución funcionó perfectamente para mí, ya que estaba usando una tabla. Las instrucciones fueron difíciles de seguir, así que espero que esta explicación sea un poco más clara.
Digamos que tiene una tabla de Excel llamada "Table_Name". Primero, cree una nueva columna en su tabla y asígnele el nombre "RowNumber". 
En esa nueva columna, ingrese la fórmula "=ROW([@RowNumber])". Esto luego llenará la nueva columna con
En la celda donde desea mostrar el primer valor visible, ingrese la fórmula "= INDIRECTO ("A" & SUBTOTAL (105, Table_Name [RowNumber]))" La "A" es la letra de la columna que contiene el valor que desea regresar.
La función SUBTOTAL(105,...) devuelve el valor mínimo de todas las filas visibles en un rango determinado, que en el caso anterior devolverá el número de fila de la primera fila visible.
La función INDIRECTA devuelve el valor de la celda para una dirección de celda determinada. Es por eso que necesita que la primera parte de la fórmula contenga la letra de la columna que desea mostrar. La segunda parte de la fórmula devolverá el número de fila.


Este comentario fue minimizado por el moderador en el sitio
¿Puede ayudarme a escribir esta fórmula en la hoja de Google con arrayformula ()?

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Este comentario fue minimizado por el moderador en el sitio
En el siguiente código de VBA, ¿puede explicar qué significa Celdas Especiales(xlCellTypeVisible)(1) ¿significar? Que es (1) usado para despues Celdas especiales (xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Este comentario fue minimizado por el moderador en el sitio
¡Gracias!
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL