Buscar dato en varias hojas de un libro

Comunidad quiero hacer una fórmula, pero no doy con la tecla,

Tengo un libro con muchas hojas, identificadas por fechas, cada hoja tiene los datos de personas, que se repiten a lo largo de estas fechas acumuladas.

Mi intención es con el DNI o con o el teléfono me dé el código que tiene asignado cada persona buscando en las hoja.

Espero haberme explicado

Un saludo.

Respuesta
1

El problema es que hay que "decirle" a las fórmulas el día inicial y el final, es decir el día de la primera hoja y el día de la última.
Por ejemplo, si el primer día es el 01.07.21 y el último el 31.08.21, la fórmula para buscar por DNI (suponiendo que el DNI a buscar está en B1) podría ser:

=INDICE(INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa")&"!C:C");B1)>0;0))&"!A:A");COINCIDIR(B1;INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa")&"!C:C");B1)>0;0))&"!C:C")))

y para buscar por teléfono (suponiendo que el teléfono a buscar está en B2:

=INDICE(INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa")&"!D:D");B2)>0;0))&"!A:A");COINCIDIR(B2;INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"01/07/21"&":"&--"31/08/21"));"dd.mm.aa")&"!D:D");B2)>0;0))&"!D:D")))

Ambas fórmulas son matriciales, por lo que han de ser introducidas pulsando mayúsculas control entrada al mismo tiempo.

Saludos_

Pongo unas pocas letras en minúsculas para que esto me deje enviar la respuesta

Gracias por tu tiempo,

Modifique algunas cosas, como el nombre de las hojas y donde esta la celda del dni pero aun así me da error #¡REF!

Si uso la fórmula matricial me sale #N/D

=INDICE(INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"04-08-2020"&":"&--"31-08-2021"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"04-08-2020"&":"&--"31-08-2021"));"dd.mm.aa")&"!C:C");C2)>0;0))&"!A:A");COINCIDIR(C2;INDIRECTO(INDICE(TEXTO(FILA(INDIRECTO(--"04-08-2020"&":"&--"31-08-2021"));"dd.mm.aa");COINCIDIR(VERDADERO;CONTAR.SI(INDIRECTO(TEXTO(FILA(INDIRECTO(--"04-08-2021"&":"&--"31-08-2021"));"dd.mm.aa")&"!C:C");C2)>0;0))&"!C:C")))

#¡REF!,

Un saludo.

He subido un ejemplo con las fórmulas funcionando a http://www.jrgc.es/ejemplos/20210830b.xlsx

Las únicas hojas con datos son 15.08.21 y 31.08.21

Las fórmulas están en Hoja7

Saludos_

Gracias otra vez por tu tiempo,

Volví a modificar la fórmula por el tema de las hojas

=indice(indirecto(indice(texto(fila(indirecto(--"04.08.2020"&":"&--"31.08.2021"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04.08.2020"&":"&--"31.08.2021"));"dd.mm.aa")&"!c:c");c1)>0;0))&"!a:a");coincidir(c1;indirecto(indice(texto(fila(indirecto(--"04.08.2020"&":"&--"31.08.2021"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04.08.2020"&":"&--"31.08.2021"));"dd.mm.aa")&"!c:c");c1)>0;0))&"!c:c")))

ahora solo me sale #¡VALOR! No se que estoy haciendo mal, mire tu hoja, no doy con la tecla

Un saludo

El problema es que Excel no es capaz de convertir "04.08.2020" en el número de serie de ese día. Habría que sustituir los puntos por barras o guiones.

Las fórmulas para esas fechas (04/08/2020 al 31/08/2021) creo que deberían ser:

=indice(indirecto(indice(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa")&"!c:c");b1)>0;0))&"!a:a");coincidir(b1;indirecto(indice(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa")&"!c:c");b1)>0;0))&"!c:c")))

y

=indice(indirecto(indice(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa")&"!d:d");b2)>0;0))&"!a:a");coincidir(b2;indirecto(indice(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa");coincidir(verdadero;contar.si(indirecto(texto(fila(indirecto(--"04/08/20"&":"&--"31/08/21"));"dd.mm.aa")&"!d:d");b2)>0;0))&"!d:d")))

A tener en cuenta que, para esas fechas, las fórmulas han de crear varias matrices de 392 elementos cada una y hacer varias operaciones con ellas, así que tal vez el rendimiento del libro a la hora de ser recalculado no sea el mejor.

Saludos_

¡Gracias!

Lo curioso que si copio los datos a tu hoja de excel no da error, pero no da todos los resultados y me da códigos aleatorios y repetidos

Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas