Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Buscar cadena de caracteres en matriz

64 views
Skip to first unread message

papasfritas

unread,
Mar 29, 2011, 6:03:35 PM3/29/11
to
¡ 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.

Cacho R

unread,
Mar 29, 2011, 7:38:29 PM3/29/11
to
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 <papasfri...@domain-xyz.in> 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,

papasfritas

unread,
Mar 30, 2011, 11:54:24 AM3/30/11
to
papasfritas escribió el 30/03/2011 00:03 :
> ¡ 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.
>
Me he quedado sin palabras, sí, es la solución a el problema,
muchas gracias por tu respuesta en tan corto tiempo, Saludos!!!
0 new messages