Datos repetidos en BUSCARV

15/01/2004 - 11:33 por Miguel | Informe spam
Tengo una fórmula con la que mediante BUSCARV quiero recuperar un dato de un
rango Ax:By. En la columna A tengo varios grupos de datos iguales, quiero
que me recupere los de la columna B. Por lo general BUSCARV si encuentra
varios datos iguales recupera el primero de la lista, yo quiero que me
recupere el primero de la lista y poniendo la misma fórmula abajo luego me
recupere el segundo y así sucesivamente. Mirad si alguna sabeis como hacer
esto.
p.e. BUSCARV("b";{"a";"b";"b"}/{"1";"2";"0"};2;FALSO) ,me devuelve "2"

pues yo quiero que si en la celda de abajo pongo la misma fórmula me
devuelva "0"

Muchas Gracias
 

Leer las respuestas

#1 Benito Merino
15/01/2004 - 14:47 | Informe spam
Hola Miguel

He preparado una función que creo que te irá bien.

Function buscarvbm(valor_buscado As Range, rango_consulta
As Range, area_datos As Range, columna As Integer)
' "valor_buscado" es la celda de la que queremos devolver
el valor
' "rango_consulta" es el área donde esta incluido el
valor_buscado donde observaremos el número de ocurrencia
' "area_datos" es la matriz similar a la de buscarv
' "columnas" es el indicador de columnas, igual que en
buscarv

Dim celdainicial As Range
For Each c In rango_consulta
If c.Value = valor_buscado.Value Then ocurrencia =
ocurrencia + 1
If c.Address = valor_buscado.Address Then Exit For
Next

columna_inicio = area_datos.Column
fila_inicio = area_datos.Row
numerofilas = area_datos.Rows.Count
For Each celda In Range(Cells(fila_inicio,
columna_inicio).Address & ":" & Cells(fila_inicio +
numerofilas - 1, columna_inicio).Address)
If celda.Value = valor_buscado.Value Then nuevaocurrencia
= nuevaocurrencia + 1
If nuevaocurrencia = ocurrencia Then
busquedafinal = celda.Offset(0, columna - 1).Value
Exit For
End If
Next
buscarvbm = busquedafinal

End Function

Saludos,

Benito Merino

Tengo una fórmula con la que mediante BUSCARV quiero


recuperar un dato de un
rango Ax:By. En la columna A tengo varios grupos de datos


iguales, quiero
que me recupere los de la columna B. Por lo general


BUSCARV si encuentra
varios datos iguales recupera el primero de la lista, yo


quiero que me
recupere el primero de la lista y poniendo la misma


fórmula abajo luego me
recupere el segundo y así sucesivamente. Mirad si alguna


sabeis como hacer
esto.
p.e. BUSCARV("b";{"a";"b";"b"}/{"1";"2";"0"};2;FALSO) ,me


devuelve "2"

pues yo quiero que si en la celda de abajo pongo la misma


fórmula me
devuelva "0"

Muchas Gracias



.

Preguntas similares