¿Como puedo ejecutar de forma adecuada la fórmula buscar V en el programa Microsoft Excel?

Como hacer para que con la fórmula buscarV, o bien mediante otro proceso, al encontrar el dato buscado, no detenga su búsqueda ahí, sino más bien, continué y si encuentra otro, también lo traiga,

1 respuesta

Respuesta
1
No sé si será esto lo que necesitas, pero suponiendo que el rango A1:A10 de una hoja tuviera estos valores
1
2
3
1
4
5
1
6
7
1
La siguiente fórmula matricial (hay que introducirla pulsando Mayúsculas + Control + Entrada):
=K.ESIMO.MAYOR((A$1:A$10=1)*FILA(A$1:A$10);FILA())
Situada en, por ejemplo, el rango B1:B10 mostrará, ordenados de mayor a menor, los números de fila de las celdas de A1:A10 cuyo valor sea 1.
Cuando no haya más unos, la fórmula comenzará a mostrar ceros, o sea que con los valores que he puesto arriba la fórmula devolvería:
10
7
4
1
0
...
0
Perdón creo que no me explique bien, mi problema es el siguiente:
=SI(ESNOD(BUSCARV(E14,'Base de Datos'!E13:F169,2,FALSO))=VERDADERO,"UBICACIÓN NO ENCONTRADA",BUSCARV(E14,'Base de Datos'!E13:F169,2,FALSO))
Donde E14, es el dato buscado, pero solo me regresa el primer valor encontrado, lo que yo necesito es generar un macro, que me permita ademas de el primer valor tener la posibilidad de enconcontrar otros que son iguales.
Creo que es una función find next,... espero haberme explicado.
De antemano muchas gracias por tu tiempo
La fórmula matricial que puse en mi anterior contestación debería funcionar, y tiene la ventaja de no tener que usar código. Pero si prefieres código, la siguiente función quizás te sirva.
Lo que hace es devolver el número de ocurrencia que se desee de lo que se esté buscando. Por ejemplo, para obtener la 3ª celda cuyo valor es "a" en un rango llamado RangoBúsqueda la sintaxis sería:
=BuscarVV(RangoBúsqueda,"a",3)
Pero esto no tiene demasiado sentido porque lo que devolvería la función es, lógicamente, una "a". Lo interesante es que se puede añadir un "desplazamiento" hacia la derecha o hacia la izquierda. Por ejemplo:
=BuscarVV(RangoBúsqueda,"a",3,2)
Devolvería el valor de la celda situada dos columnas a la derecha de la tercera aparición de "a" en RangoBúsqueda.
La función es:
Function BuscarVV(RangoBúsqueda As Range, Valor As Variant, Ocurrencia As Long, Optional FilaDesv As Integer) As Variant
    Dim mtr As Variant
    Select Case VarType(Valor)
        Case 7 'Fecha
            Valor = CLng(Valor)
        Case 8 'Texto
            Valor = """" & Valor & """"
    End Select
    mtr = Evaluate("=if(" & RangoBúsqueda.Address(external:=True) & "=" & Valor & ",((" & RangoBúsqueda.Address(external:=True) & ")=" & Valor & ")*row(" & RangoBúsqueda.Address(external:=True) & "))")
    BuscarVV = WorksheetFunction.Index(RangoBúsqueda, WorksheetFunction.Small(mtr, Ocurrencia) - RangoBúsqueda.Row + 1).Offset(, FilaDesv)
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas