Búsqueda por campo con INDICE y COINCIDIR

miércoles, marzo 26, 2008

Supongamos que tenemos una lista como ésta



Queremos crear una fórmula que nos permita hacer una búsqueda o por nombre o por número de identidad. Esta situación refleja varias de las consultas que he recibido últimamente.

Podemos pensar en una solución usando BUSCARV, pero en esta nota veremos como hacerlo usando INDICE, COINCIDIR y validación de datos.

Empezamos por crear dos nombres, que usaremos en validación de datos:

Identidad = Hoja1!$B$2:$B$8
nombre = Hoja1!$A$2:$A$8

En otro lugar de la hoja creamos una tabla donde mostraremos los datos extraídos



En la celda A12 creamos una lista desplegable con Validación de datos



En la celda B12 también creamos una lista desplegable. Aquí usamos la función INDIRECTO para que en la lista aparezcan los valores del rango del nombre que ha sido elegido en la celda A12



En las celdas C12 y D12, donde queremos que aparezcan los datos buscados, ponemos esta fórmula, basada en INDICE y COINCIDIR:

Para el campo Edad: =INDICE(C2:C8,COINCIDIR(B12,INDIRECTO(A12),0))

Para el campo Profesión: =INDICE(D2:D8,COINCIDIR(B12,INDIRECTO(A12),0))

Hay que prestar atención al uso de la función INDIRECTO para interpretar el valor de la celda A12 como rango nominado.



Un detalle a agregar es dar formato condicional a las celdas C12 y D12, para evitar ver el valor #N/A cuando cambiamos el valor de la celda A12




Usamos la función ESERROR y el color de la fuente, en caso de ser VERDADERO, blanco. De esta manera, en caso de error, el contenido de la celda se vuelve "invisible".

El archivo del ejemplo se puede descargar aquí


Technorati Tags:

9 comments:

Naycol 31 marzo, 2008 02:37  

Hola!

Bueno he llegado akí mientras buskaba la mejor solución para lo ke kería lograr en excel ^^
Esta entrada es una de las ke más me ayudó...

Se agradece el tiempo dedikado a todo esto ^^

Saludos!

PD: kreo ke me pasaré bien seguido por akí ^^

Jorge 02 abril, 2008 03:46  

Me gusta ver entradas valiosas que aportas en este blog. mi comentario es que no me queda claro por qué INDIRECTO va a la cela A12 y nó a B12 que devuelve yá el dato buscado

Anónimo,  02 abril, 2008 15:33  

ME GUSTARIA REALIZARTE UNA PREGUNTA JORGE.
QUIERO REPRESENTAR UN GRAFICO DE UNA ÚNICA SERIE PERO LOS DATOS ESTÁN DISTRIBUIDOS COMO UNA MATRIZ.
COMO PUEDO PASAR LOS DATOS DE UNA MATRIZ A SOLO UNA COLUMNA??

GRACIAS POR ADELANTADO

Jorge L. Dunkelman 02 abril, 2008 18:33  

Hola Jorge
lo que hace indirecto es interpretar el valor que aparece en A12 como nombre que contiene un rango. De esta manera la lista desplegable en B12 cambia de acuerdo a lo que pusimos en A12.

Jorge L. Dunkelman 02 abril, 2008 21:03  

En relación a la pregunta sobre como pasar datos de una matriz a una única columna o fila, se puede hacer con funciones (también con macros). La respuesta no es trivial y la estaré publicando en los próximos días.

Kaze 05 marzo, 2009 23:17  

Hola Jorge, hace tiempo que no uso excel y estoy siguiendo tus tutoriales para hacer un formulario,
Mi duda es que yo tengo solo dos casillas, una donde selecciono mis opciones dentro de una lista desplegable, y la otra donde deberían de aparecer los precios (dependiendo de la opción que hayas elejido).
En ese caso, como debería de estar escrita la fórmula? he tratado de quitar el indirecto y me salen errores D:
Ayuda! >:

Jorge L. Dunkelman 06 marzo, 2009 15:54  

No me queda claro qué es lo que estás intentando hacer. Puedes mandarme el archivo por mail con una explicación?

lucas 09 marzo, 2009 16:42  

Hola Jorge: He leido esta entrada y creo que es exactamente lo que busco. Sin embargo al completar la casilla B12 me da: error" El origen actualmente evalúa un error ¿desea continuar?"
En la casilla A12 al utilizar la validación al abrir la flecha sale solo el nombre de los nombres definidos: nombres e identificacion. Sospecho que la definición de nombres es incorrecta y por eso la validación no llama a los nombres, sin embargo al marcar la columna respectiva, aparece el nombre por lo que supuestamente sí esta tomando el nombre. desde ya gracias, y muy interesante le blog.
Lucas

Jorge L. Dunkelman 09 marzo, 2009 23:06  

Siempre puedes descargar el archivo con el ejemplo y ver dónde está el problema en tu modelo.

Publicar un comentario

Seguidores

Google+ Followers

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP