En el siguiente ejemplo, tenemos una serie de nombres junto con su primer, y, segundo apellido, su teléfono, y, su ID correspondiente.
Queremos elegir un nombre, primer y segundo apellido, y, que nos devuelva su ID, para este ejercicio, usaremos la función BUSCARX.
Vamos a crear un primer desplegable, para seleccionar un nombre, en el modelo los nombres se repiten, por lo que debemos de crear una lista única, para ello, con una celda dentro del modelo, vamos a la pestaña de datos, dentro del grupo ordenar y filtrar, hacemos clic en avanzadas.
Se abre la ventana filtro avanzado, en la ventana rango de la lista, seleccionamos la columna B.
Marcamos copiar a otro lugar.
En la ventana copiar a, seleccionamos la celda donde vamos a ponerla.
Marcamos la casilla solo registros únicos, y, aceptamos.
Ya tenemos los nombres únicos, junto con el encabezado.
También, podríamos hacerlo con la función ORDENAR, y, UNICOS, de la siguiente manera:
=ORDENAR(UNICOS(B2:B14))
Pues, vamos a la pestaña de datos, dentro del grupo herramientas de datos, hacemos clic en validación de datos.
Desplegamos permitir, y, seleccionamos lista, y, en la ventana origen, en mi caso, la lista única la he realizado con la función UNICOS, y, ORDENAR, por lo que seleccione la celda I1, y, añado el operador de rango derramado (#), de esta manera, nos aseguramos de que el rango sea dinámico.
Aceptamos.
La segunda lista se debe de rellenar con los primeros apellidos del nombre seleccionado, para ello, voy a usar el condicional SI, donde voy a preguntar si en el rango B2:B14, es igual al valor de la celda G2, que me devuelva la misma posición, pero del rango C2:C14, en caso contrario, que ponga un texto en blanco.
=SI(B2:B14=G2;C2:C14;””)
Aceptamos, y, tenemos una matriz desbordada con los apellidos correspondiente al nombre seleccionado, y, donde no hay coincidencia, pone un texto en blanco.
También, podría hacerlo con la función FILTRAR, donde como argumento array, selecciono la columna apellido1, y, como argumento include, selecciono la columna nombre, y, lo igualo al nombre seleccionado.
=FILTRAR(C2:C14;B2:B14=G2)
Tenemos una matriz desbordada, con los apellidos que corresponden al nombre seleccionado, la diferencia con la expresión, donde hemos usado el condicional SI, es que la función FILTRAR, solo devuelve los valores donde hay coincidencias, por lo que no devuelve celdas en blanco.
Debido a la actualización de validación de datos, cuando creamos una lista donde se incluyen valores en blanco, estos son ignorados, por lo que podemos usar cualquiera de las funciones, usadas anteriormente, ahora, voy a crear directamente la lista, para ello, vamos a la pestaña de datos, dentro del grupo herramientas de datos, hacemos clic en validación de datos.
Desplegamos permitir, y, seleccionamos lista, y, en la ventana origen, voy a usar la expresión con el condicional SI, pongo la celda M1, seguido del operador de rango derramado.
Aceptamos.
Vamos a por la tercera lista, que es el apellido 2, para este caso, debe de coincidir tanto el nombre, como el apellido 1.
Si usamos el condicional SI, seria anidado, porque debemos de realizar dos preguntas, como sigue:
=SI(B2:B14=G2;SI(C2:C14=H2;D2:D14;"");"")
Obteniendo una matriz desbordada con el o los apellidos donde hay coincidencia, y, una celda en blanco, donde no la hay.
Ahora, lo hacemos, pero con la función FILTRAR, donde como argumento array, seleccionamos la columna de apellido 2, como argumento include, entre paréntesis, ponemos la primera condición, que es que el nombre de la columna nombre, sea igual al seleccionado, y, la siguiente condición, es que el apellido 1, de la columna apellido 1, sea igual al apellido 1 seleccionado, todo ello separado por el símbolo de asterisco.
Aceptamos, y, tenemos una matriz desbordada con los apellidos que corresponden, pero sin espacios en blanco.
Ya tenemos los datos para poder buscarlo, que lo haremos con la función BUSCARX.
Bien, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.
=BUSCARX(
Como argumento valor buscado, concatenamos el nombre, apellido1, y, apellido2.
=BUSCARX(G2&H2&I2;
Como argumento matriz de búsqueda, seleccionamos la columna de nombre, la concatenamos con la columna de apellido 1, y, concatenamos con la columna de apellido 2.
=BUSCARX(G2&H2&I2;B2:B14&C2:C14&D2:D14;
Y, como argumento matriz devuelta, seleccionamos la columna de ID.
Cerramos paréntesis, y, aceptamos.
=BUSCARX(G2&H2&I2;B2:B14&C2:C14&D2:D14;A2:A14)
Obtenemos el ID de la persona que hemos seleccionado.
También, podría hacerlo con la función FILTRAR, pero concatenando.
=FILTRAR(A2:A14;(B2:B14&C2:C14&D2:D14=G2&H2&I2))
Obtenemos el mismo resultado.
Comments