Excel: BUSCARV en celda con función

BenZ -  
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   -
Hola a todos,

Quiero realizar la función "BUSCARV" en una celda que contiene una fórmula derecha(A1;10). La función BUSCARV no parece funcionar.

La configuración de mi archivo de excel:
Columna A: una referencia del tipo P0000000000 (una letra seguida de 10 dígitos)
Columna B: la función "derecha(A1;10)" para devolver solo los 10 dígitos
Columna C: La función "BUSCARV(B1;'sheet2'!A:B;2;FALSO)"

La hoja "sheet2" contiene las referencias de 10 dígitos sin la letra.

¿Es posible realizar una búsqueda sobre una parte de la celda y no sobre la celda completa? (una combinación de BUSCARV() y derecha() en cierto modo)

¿O bien parametrizar la función BUSCARV para poder realizar una búsqueda en una celda que ya contiene una función?

PD: reemplazar FALSO por VERDADERO en la función BUSCARV no me da el resultado correcto

Muchas gracias de antemano

Configuración: Windows Vista / Internet Explorer 7.0

4 respuestas

Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
 
Hola

es posible que su lista de códigos en sheet2 (por lo tanto, sin la letra) sea valores numéricos, mientras que DERECHA(A1;10) le devuelve texto a partir de la referencia con letra
Intente transformar su fórmula en B1:
=DERECHA(A1;10)*1 que debería transformar el resultado en num.

por supuesto puede usar directamente el código en la fórmula BUSCAR:
=BUSCARV(DERECHA(A1;10)*1;'sheet2'!A:B;2;0)

también asegúrese de que su código inicial con letra no contenga espacios que puedan interferir con la edición derecha

regrese si no funciona todavía

cordialmente

Preguntémonos si no somos los únicos en entender lo que se explica?
3
BenZ
 
¡Muchas gracias, funciona muy bien!

¿Existe alguna función para evitar #valor en las celdas vacías como ocurre con #NA y la función SI(ESNA())?

¿También existe una manera de eliminar la letra en la visualización? (es decir, que el valor de la celda sea P0000000000 pero que solo se muestre 0000000000)

No encuentro la opción en el formato de celda...

Atentamente,
0
BenZ
 
He encontrado la respuesta a mi primera pregunta para aquellos a quienes les interese:
=SI(ESTERROR(BUSCARV(DERECHA(A1;10)*1;'sheet2'!A:B;2;FALSO));"";BUSCARV(DERECHA(A1;10)*1;'sheet2'!A:B;2;FALSO))

Todavía estoy a la espera de una respuesta para mi segunda pregunta, no logro modificar las propiedades de visualización con texto, parece que solo funciona con valores numéricos...

Gracias de antemano.
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
Hola Benz y Vaucluse

poniendo la celda en formato número - número personalizado; tipo
"P"0000000000
--
Michel
0
Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
 
Hola Michel

Creo que es al contrario de lo que Benz quiere hacer, si no me equivoco, es decir, ingresar P100000000 y no ver la P... pero eso, yo no sé hacerlo a priori.

Sin embargo, si es para el uso de la fórmula de búsqueda, efectivamente, mostrar la P a partir de un formato como el que indicas permite buscar los valores numéricos sin recurrir al artificio de DERECHA. Puede ser la solución para Benz.

Saludos.
0
BenZ
 
Gracias por tu contribución michel_m, pero no es lo que busco
Vaucluse tiene razón, busco "ingresar P100000000 y no ver la P"...

No deseo usarlo para la función de búsqueda, es solo por estética para tener las referencias que correspondan exactamente a los listados

¿Parece imposible entonces?

Gracias a ambos de todos modos.
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
¡Perdona, la hora de la siesta es implacable!

Miro más tarde, pero va a salir caro (¡imagen!) el estética.
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
venga, un poco de estética en este mundo de brutos:
columnas B1:B20 a adaptar
Sub estetica() For lig = 1 To 20 If Left(Range("B" & lig), 1) = "P" And Len(Range("B" & lig)) = 11 Then Range("B" & lig).Characters(Start:=1, Length:=1).Font.ColorIndex = 2 End If Next End Sub

Michel
0