Buscar cadena de caracteres en matriz

30/03/2011 - 00:03 por papasfritas | Informe spam
¡ Hola !

Que tal mi consulta es, tengo 2 hojas con datos que tienen en común una columna, en ella la longitud es de 13 caracteres de estos solo los primeros 10 coinciden en ambas hojas, la búsqueda la uso así en hoja1, =buscarv(izquierda(a2,10),datos,2,falso), el detalle es que en la hoja2 donde estan los datos, tengo que añadir una columna y extraer los primeros 10 caracteres para hacer la búsqueda, esto lo hago con frecuencia y quiero hacer una función personalizada, que quedo así:
Function BUSCARFC(valor As String, Matriz As Range, _
columna As Integer, Optional Range_look As Boolean)

Dim vFound

vFound = WorksheetFunction.VLookup(Left(valor, 10), Matriz, columna, Range_look)
BUSCARFC = vFound

End Function

Se resuelve en parte la necesidad, pero tengo que seguir insertando en una columna para hacer la búsqueda en hoja2,
Hay alguna manera de indicarle que en la matriz de busqueda la primera columna busque los primeros 10 caracteres?

Muchas gracias y Saludos.
 

Leer las respuestas

#1 Cacho R
30/03/2011 - 01:38 | Informe spam
Hola! papasfritas. La siguiente variante:
__________________

Function BUSCARFC(valor As String, Matriz As Range, columna As
Integer, _
Optional Range_look As Boolean)
Dim Ordenado As String
Ordenado = "False": If Range_look = True Then Ordenado = "True"

BUSCARFC = Evaluate("VLOOKUP( LEFT(""" & valor & """ , 8), LEFT(" & _
Matriz.Address(External:=True) & ", 8), " & _
columna & ", " & Ordenado & ") ")
End Function
__________________

no requiere que insertes columna adicional alguna.
¿Te sirve la idea?

Saludos, Cacho.

On 29 mar, 19:03, papasfritas wrote:
Hola !

 Que tal mi consulta es, tengo 2 hojas con datos que tienen en com n una
 columna, en ella la longitud es de 13 caracteres de estos solo los primeros 10
 coinciden en ambas hojas, la b squeda la uso as  en hoja1,
 =buscarv(izquierda(a2,10),datos,2,falso), el detalle es que en la hoja2 donde
 estan los datos, tengo que a adir una columna y extraer los primeros 10
 caracteres para hacer la b squeda, esto lo hago con frecuencia y quiero
 hacer una funci n personalizada, que quedo as :
 Function BUSCARFC(valor As String, Matriz As Range, _
 columna As Integer, Optional Range_look As Boolean)

 Dim vFound

 vFound = WorksheetFunction.VLookup(Left(valor, 10), Matriz, columna,
Range_look)
 BUSCARFC = vFound

 End Function

 Se resuelve en parte la necesidad, pero tengo que seguir insertando en una
 columna para hacer la  b squeda en hoja2,
 Hay alguna manera de indicarle que en la matriz de busqueda la primera columna
 busque los primeros 10 caracteres?

 Muchas gracias y Saludos.

Preguntas similares