Cómo filtrar tabla con un valor en otra hoja?

Saludos y de antemano muchas gracias por la ayuda.

Quisiera saber si es posible filtrar una tabla con un valor que se encuentra en otra hoja

El valor en la hoja dos lo obtengo por medio de un BuscarV, es decir (pongo un ejemplo simplificado de una base de datos grande):

Tengo esta tabla en la Hoja1, la cual me quisiera que en automático se filtrara, por medio de un valor que está en la Hoja2, el cual obtengo con una formula de BuscarV, esto para obtener allá uno de los valores que está en la fila 10, es decir de la fila de totales. 

Digamos que A1 de Hoja2 lo obtengo por BuscarV y en B2 de Hoja2 necesito D6 de Hoja1, sé que de inicio lo más simple sería poner en B2 

=Hoja1!D10


 pero aquí la cuestión es que necesito que la tabla se filtre en automático con el valor de A1 de la Hoja2.

El problema con un filtro avanzado es que no es dinámico, es decir, se pone en una celda el valor buscado para que lo filtre y filtra la tabla, pero si se modifica que valor buscado no cambia automáticamente, hay que volver a aplicar el filtro avanzado.

Alguna idea para lograrlo?

Muchas gracias por la ayuda.

1 respuesta

Respuesta
1

¿Basicamente lo que quieres es saber cuantas veces se repite lo que este en A1 o que te traiga el resultado de la columna D en la tabla? No logro entender.

1- Si lo que quieres es que te traiga el resultado de la columna D segun lo que este en A1 lo puedes hacer igual con BuscarV

ejemplo: =BUSCARV(A1,Tabla1[#Todo],4,FALSO)

2- Si lo que quieres es saber cuanto se repite lo que hay en la celda A1 puedes usar CONTAR. SI

Ejemplo: =CONTAR.SI(Tabla1[Matricula],Hoja1!A1)

Pero de no ser esto lo que necesitas talvez puedes explicarte un poco mejor de lo que necesitas y tratare de ayudarte con lo poco que sé.

Salu2

¿Si lo que quieres es que la tabla se te filtre según lo que haya en a1?

Puedes ingresar esta macro y enlazarla a un botón:

Sub FILTRO()

If Range("a1") > "0" Then
     dato = Range("a1")
     Sheets("hoja2").Select
     Range("tabla1").Select
    'aplico el autofiltro
    Selection.AutoFilter
    ActiveSheet.Range("tabla1").AutoFilter Field:=1, Criteria1:=[dato]
    Else
    Range("tabla1").AutoFilter
    End If
    Sheets("hoja1").Select
    Range("a1").Select
End Sub

Hola Henry, muchísimas gracias por tu ayuda.

Efectivamente, lo que quiero es que me traiga el resultado de la columna D según lo que esté en A1, disculpa mi ignorancia pero no entiendo el argumento "Tabla1[#Todo]". Al usar la formula tal cual en el ejemplo pasa esto:

El resultado no es lo que corresponde a la celda D10 de la Hoja1 (que no, efectivamente no me interesa la cuenta, sino el resultado)

Me voy por la opción de buscarV ya que mi conocimiento de macros es en verdad muy limitado. Yo ponía el ejemplo ya que al lograr que la tabla se filtrara con el valor de A1 de la Hoja2 ya que así solamente pondría en B2 de Hoja2

=Hoja1!D10

De nuevo muchísimas gracias por tu ayuda. En caso de creas que la macro es la mejor opción, podrías darme más detalles? sobre todo lo de enlazarla a un botón. Y si correría al abrir el libro. 

Saludos Henry!

Mmm Solo aclarame algo con que objetivo quieres que te traiga el resultado de D10.

Ya que eso el dato de contar las líneas ingresadas en la tabla.

Porque si lo que quieres es contar usa la fórmula =CONTAR(Tabla1[Horario])

Y te traerá exactamente el valor que haya en D10 ya que en esa celda lo que hay es un conteo de la líneas.

____________________________________________

El argumento "Tabla1[#Todo]" lo que hace en conjunto te explico la fórmula.

=BUSCARV(A1,Tabla1[#Todo],4,FALSO)

la formula funciona asi

A1 = al valor ingresado en dicha celda

"Tabla1[#Todo]" = lo que hace es que busca lo que haya en A1 en toda la tabla1 

4 = es el resultado que deseo mostrar en este caso seria la columna 4 de la tabla 1 en nuestro caso la columna 4 de la tabla es Horario por lo tanto es el resultado que te trae.

FALSO = esta es una condición donde especificamos que la coincidencia de A1 contra la Tabla1 deba ser exacta.

Gracias por seguir aquí Henry. Voy a matizar mi pregunta, espero ser claro. 

Sí, quiero que me traiga D10, pero únicamente lo filtrado, filtrado que depende de A1 de la Hoja2. Es decir.

Esta vez en D10 no es contar, sino 

=SUBTOTALES(109,[Minutos])

Y en A1 de la Hoja2 viene 9935, por lo que el resultado de el filtrado de 9935 sería 72, el resultado que quisiera que apareciera en A2 de la Hoja2, que son los que corresponden a la suma de D4 y D6 de la Hoja1, lo que sucedería si se filtrara.

Con la fórmula de BuscarV me sale unicamente 60, no sale el resultado de la suma de minutos correspondientes a la Matrícula 9935 (que pongo en A1 de la Hoja2)

De nuevo agradezco mucho tú atención. Espero haberme explicado mejor.

Saludos Henry!

Ok entonces si quieres que te ayude mejor pásame el archivo y te hecho una mano.

[email protected]

Salu2

¡Muchas gracias Henry! En verdad, por toda tu ayuda y paciencia. Que bueno que aún haya gente que ayuda, muchas gracias por compartir tus conocimientos.

Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas