2–3 minutos

Versión 1


El otro día se me planteó un problema a la hora de localizar la posición de un registro dentro de un conjunto de datos. Imaginemos este conjunto de datos:

Resulta que queremos escribir un valor en la celda B3 (por ejemplo XavI) y obtener la posición en la que se encuentra el valor en la tabla (10)

La primera cosa que conviene saber es que, para hacer búsquedas que sean sensibles a mayúsculas y minúsculas, la función IGUAL es la que nos permite eso.

Opción BUSCARV

Antes de llegar a la función BUSCARV es necesario entender la función ELEGIR.

La función ELEGIR permite definir respuestas a distintos valores. Imaginemos que tenemos las notas de los alumnos y deseamos convertirlas en nombres (ejemplos: 3 es I-, 5 es S o 8 es N+)

Para este ejemplo hemos creado una matriz aleatoria de valores para la columna Nota y, en la columna Calificación, hemos utilizado una función ELEGIR que tome cada uno de los valores de la matriz de notas y devuelva el literal adecuado.

=ELEGIR(C4#;"MD-"; "MD+"; "I-"; "I+"; "S";"B";"N-";"N+";"E";"MH")

Ahora vamos a ver como podemos utilizar esa función con nuestros datos.

La función ELEGIR tiene 2 argumentos obligatorios: el número de índice y el valor del índice cuando el número de índice vale 1. Se pueden ir añadiendo valores de índice para todos los números que se desee.

  • El número de índice puede ser una referencia a una celda o un valor constante.
  • Los valores de índice pueden ser literales, referencias a una celda o, incluso, matrices.

Sabiendo que el número índice puede ser una constante, nos permitimos suponer que también aceptará una matriz de constantes. Y dado que los valores de índice pueden ser matrices, generamos una función como esta en la celda E7:

=ELEGIR({1\2};tblNombres[Nombre];tblNombres[Posición])

Vemos que, al utilizar la matriz de constantes, se devuelven los valores de índice para 1 y 2.

La siguiente parte del truco es sustituir la primera columna de esa matriz por valores VERDADERO/FALSO cuando el nombre mostrado coincida exactamente con el buscado. Para ello necesitamos utilizar la función IGUAL que devuelve VERDADERO cuando dos textos son exactamente iguales teniendo en cuenta mayúsculas y minúsculas.

Modificaremos la función para que la primera columna haga esa comparativa:

Ahora solo se trata de utilizar un BUSCARV sobre la matriz buscando el valor VERDADERO y devolviendo la segunda columna. Eso lo podemos hacer en una sola función en la celda C3

Ahora ya podemos eliminar la matriz de la celda E7 porque ya no se utiliza.

Opción INDICE + COINCIDIR + IGUAL

Una técnica muy parecida a la anterior que primero obtiene una matriz de valores VERDADERO y FALSO utilizando una función IGUAL

A continuación obtenemos la posición del VERDADERO dentro de esa matriz utilizando la función COINCIDIR.

Finalmente buscamos esa posición dentro de la primera columna mediante la función INDICE. Lo hacemos ya directamente en la celda C3.

¿Se te ocurre otra forma de hacerlo?



0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *