excel - sino - Verifique uno, dos o tres dígitos en una BUSCARV
formula buscarv en excel de una hoja a otra (3)
Si sus números en la columna A son siempre de 6 dígitos + la longitud del código, puede usar esto:
=VLOOKUP(--LEFT(A1,LEN(A1)-6),E2:F5,2,FALSE)
Tengo alrededor de 30 números que son 1, 2 o 3 dígitos que son códigos. Estos códigos están adjuntos a otros números. Quiero saber qué código está delante de un número, por ejemplo, para el número 35467036
los primeros dos dígitos coinciden con el código 35
. Entonces quiero que la salida sea 1.5
.
Esta es mi configuración actual, tengo una tabla con todos los códigos seguidos por la salida en la columna siguiente. Si todos los códigos tienen tres dígitos, podría hacer esto =VLOOKUP((LEFT(E6,3)&"*"),D1:E3,2,FALSE)
pero desafortunadamente no lo son.
También intenté usar declaraciones IF anidadas, pero solo puedo llegar hasta 7 niveles.
¿Esto solo será posible en VBS o hay otro camino?
La columna de código tiene el formato de texto. Si ingreso el valor 3 a la IZQUIERDA, no funciona para dos dígitos. ¿Hay alguna forma de que pueda hacer que funcione para códigos de 1, 2 y 3 dígitos? Además, los códigos no se superponen, por ejemplo, no habrá 96 y 965 en la tabla de códigos.
Siete IF anidados como un límite apunta a una versión muy antigua de Excel. Es posible que desee considerar la actualización a una versión que aún se admite en este milenio.
Pero su principal problema es que el tipo de datos de su valor de búsqueda es texto, porque concatenan una cadena con un comodín. Mientras que la primera columna de su tabla de búsqueda probablemente esté compuesta de números.
Para resolver esto, deberá agregar una columna de texto a su tabla de búsqueda que represente el valor numérico como valor de texto.
Si desea usar Vlookup, esa columna auxiliar deberá ser la primera columna de su rango de búsqueda.
Puede utilizar un índice / coincidencia en lugar de Vlookup para que sea independiente del orden de las columnas, ya que esta captura de pantalla muestra:
La columna H muestra la fórmula que se aplicó en la columna G.
Editar:
De acuerdo con la captura de pantalla que publicó, desea buscar desde la tabla en las columnas E a F y esta tabla solo tiene los códigos cortos. Por lo tanto, no tiene sentido agregar un comodín al valor de búsqueda. Solo necesita extraer el valor que desea usar para la búsqueda.
Si desea buscar solo dos dígitos, debe extraer solo dos dígitos. Agregar un comodín no hace nada para eliminar el tercer dígito.
En la captura de pantalla siguiente, una columna auxiliar alimenta a la función IZQUIERDA () con el número de caracteres que se extraerán, y luego usa ese valor en la vista V.
=VLOOKUP(LEFT(A1,B1),$E$1:$F$5,2,FALSE)
=INDEX($G$2:$G$5,
SMALL(
IF(LEFT(A1,3)*1=$F$2:$F$5,ROW($G$2:$G$5)-1,
IF(LEFT(A1,2)*1=$F$2:$F$5,ROW($G$2:$G$5)-1,
IF(LEFT(A1,1)*1=$F$2:$F$5,ROW($G$2:$G$5)-1))),1))
=INDEX(LookupValues,Small(ArrayOfRowsFromIfStatements,FirstRow))
Esta es una fórmula de matriz por lo que deberá usar Ctrl + Shift + Enter mientras se encuentre en la barra de fórmulas.
Usamos If para construir una matriz de números de Fila donde las condiciones coinciden o devuelven FALSE si no es así. La función Pequeña devuelve el resultado más pequeño en la matriz, que será la primera fila donde coincidan las condiciones.
Luego indexamos los resultados devolviendo ese número de fila (-1 deducido de las filas para compensar los encabezados).