John tiene una tabla de búsqueda de valores numéricos ascendentes en la columna A y los valores de texto correspondientes en la columna B. Cuando usa la función BUSCARV, devuelve el valor de texto para el valor numérico igual o menor que el valor de búsqueda especificado. John realmente quiere que el primer valor sea igual o mayor que el valor de búsqueda.

No hay forma de cambiar la forma en que BUSCARV hace su trabajo; siempre coincidirá con el valor igual o menor que el valor de búsqueda. Sin embargo, una opción es modificar la fórmula utilizada para realizar la búsqueda real. Considere la siguiente fórmula, que asume que el valor que desea usar para su búsqueda está en la celda D1:

=IF(VLOOKUP(D1,$A$1:$A$10,1)=D1,VLOOKUP(D1,$A$1:$B$10,2), INDEX($B$1:$B$10,1+MATCH(D1,$A$1:$A$10)))

Si el valor de D1 coincide exactamente con un valor de la columna A, se utiliza la fórmula VLOOKUP normal. Si no es así, entonces BUSCARV se abandona en favor de la función INDICE junto con la función COINCIDIR.

Si puede ordenar su tabla de datos en orden descendente, puede usar una fórmula más corta:

=INDEX($A$1:$B$10,MATCH(D1,$A$1:$A$10,-1),2)

La función COINCIDIR usa el valor D1 para buscar el valor más pequeño que sea mayor o igual a ese valor. (Esto es lo que especifica el parámetro -1.) La función COINCIDIR devuelve el número de fila de la fila adecuada, y luego INDEX lo utiliza para obtener el valor.

Otro enfoque interesante del problema es utilizar el inverso de los valores de búsqueda como una columna de control que se utilizará para buscar información en la tabla de datos. Por ejemplo, supongamos que su tabla de datos está en A1: B10, con los valores numéricos reales que usa para la búsqueda en la columna A. Debe insertar una columna a la izquierda de su tabla de datos. En la primera celda de esta nueva columna (ahora columna A), inserte la siguiente fórmula:

=1/B1

Esto proporciona la inversa del valor en B1 y puede copiarlo en las celdas de la columna A. Su tabla de datos ahora tiene tres columnas, A1: C10.

A continuación, ordene su tabla de datos según esta nueva columna, en orden ascendente.

Ahora realiza una pequeña modificación a su fórmula de búsqueda para que busque la inversa de lo que desea. Suponiendo que el valor que desea usar para su búsqueda está en la celda E1, usaría la siguiente fórmula:

=VLOOKUP(1/E1,$A$1:$C$10,3)

Lo que efectivamente termina con es el valor deseado, de la columna C, que está asociado con el valor en la columna B que es igual o menor que el valor en E1.

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (3090) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.