Encontrar el n-esimo valor en lista excel
Hola, la cuestión es la siguiente:
Tengo un listado de valores, y necesito encontrar cual es la posición absoluta de un valor en especial, me explico:
En una lista de los números del 1 al 10 ingresados en la columna B, empezando en la fila 1; ¿He reemplazado los números 4,7 y 9 por "2" (entonces tengo cuatro "2") ok?.
Necesito crear una fórmula personalizada (lo necesito para una tabla de calculo y la verdad no quiero usar una macro, porque la idea es que se actualice automáticamente y permita usar la referencia a otras celdas, bueno la macro funcionaria pero quiero hacerlo por acá, vamos a ver si es posible).
He trabajado en el código pero me arroja la posición del ultimo valor, no logro hacer que funcione limitando el numero de veces que lo busca (se va a un loop infinito, por tanto he suprimido algunas lineas en este código)
Function find_by_val(valorbuscado As Double, rango As Range, indice As Integer) As Integer
Dim celda As Range
Dim fila As Integer
On Error Resume Next
Application.Volatile
For Each celda In rango
If Val(celda) = valorbuscado Then
fila = celda.Row
End If
Next celda
find_by_val = fila
End Function
valorbuscado es el valor o la referencia a la celda que estoy buscando
rango es la lista donde debe ser buscado el valor
indice es el numero de veces que debe buscar
Si uso la fórmula así: find_by_val(2, b1:b10, 3) me arroja "9" pero es que ese valor corresponde a la ultima fila que contiene el valor buscado (2), pero la idea es que arroje "7" ya que es en esta fila que se encuentra el tercer "2" que hay en la lista.
Perdón por haberme extendido tanto, pero creo que quedo claro.
Quedo pendiente, y desde ya, Gracias
Tengo un listado de valores, y necesito encontrar cual es la posición absoluta de un valor en especial, me explico:
En una lista de los números del 1 al 10 ingresados en la columna B, empezando en la fila 1; ¿He reemplazado los números 4,7 y 9 por "2" (entonces tengo cuatro "2") ok?.
Necesito crear una fórmula personalizada (lo necesito para una tabla de calculo y la verdad no quiero usar una macro, porque la idea es que se actualice automáticamente y permita usar la referencia a otras celdas, bueno la macro funcionaria pero quiero hacerlo por acá, vamos a ver si es posible).
He trabajado en el código pero me arroja la posición del ultimo valor, no logro hacer que funcione limitando el numero de veces que lo busca (se va a un loop infinito, por tanto he suprimido algunas lineas en este código)
Function find_by_val(valorbuscado As Double, rango As Range, indice As Integer) As Integer
Dim celda As Range
Dim fila As Integer
On Error Resume Next
Application.Volatile
For Each celda In rango
If Val(celda) = valorbuscado Then
fila = celda.Row
End If
Next celda
find_by_val = fila
End Function
valorbuscado es el valor o la referencia a la celda que estoy buscando
rango es la lista donde debe ser buscado el valor
indice es el numero de veces que debe buscar
Si uso la fórmula así: find_by_val(2, b1:b10, 3) me arroja "9" pero es que ese valor corresponde a la ultima fila que contiene el valor buscado (2), pero la idea es que arroje "7" ya que es en esta fila que se encuentra el tercer "2" que hay en la lista.
Perdón por haberme extendido tanto, pero creo que quedo claro.
Quedo pendiente, y desde ya, Gracias
1 Respuesta
Respuesta de Elsa Matilde
1