AYUDA EXCEL

2 envíos / 0 nuevos
Último envío
Diana Carolina
Imagen de Diana Carolina
Offline
última acción: Hace 6 años 4 meses
alta: 21/11/2017 - 16:33
Puntos: 25
AYUDA EXCEL

 

BUEN DIA.

Agradezco si alguien me me puede ayudar con lo siguiente.

Quiero saber si dentro de la funcion BUSCARV puedo agregarle algun condicional, para que me coloque el valor mayor encontrado y no el primer valor que encuentra del listado, cuando lo que busco se encuentra repetido. 

Gracias.

Ejemplo: 

035-0443-0011OLD REV.
035-0443-0012OLD REV.


Deseo que al darle Bucarv y encuentre dos busquedas iguales (en este caso 035-0443-001) el valor que me coloque sea en 2 y no el 1 (ya que el dos es mayor) 

Espero me haya sabido explicar 

 

Gracias

 

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Bueno, eso con BUSCARV es

Bueno, eso con BUSCARV es imposible, pues al encontrar el primer resultado, la función para y no sabe qué hay más allá.

Sin embargo, se puede hacer con algo un poco más complicado, que es con una función matricial y utilizando los valores VERDADERO y FALSO, recordando que VERDADERO es igual a 1 y FALSO es igual a 0.

Yo haría lo siguiente:

Para localizar el valor mayor de la segunda columna que cumple el valor que buscamos en la primera, la fórmula es así:

=MAX((A:A=F3)*B:B)

Esta fórmula, para que funcione, hay que introducirla como función matricial, es decir, la escribes y para terminar pulsas Control+Enter. Si la introduces con Enter solo, o cambiando de celda, no funcionará.

De esta manera, la fórmula aparecerá con dos llaves alrededor, que las pone Excel, no nosotros, y la verás así:

{=MAX((A:A=F3)*B:B)}

Estamos suponiendo que tu primera columna es la A, y la segunda es la B. Esto lo que hace es recorrer toda la columna A, y ver dónde el valor de la celda es igual al que tenemos en F3 (que es la casilla de búsqueda en nuestro ejemplo), por lo que tendremos una ristra de valores FALSO o VERDADERO. Esos valores los multiplicamos por el valor de la celda correspondiente en B. De esta forma, tendremos una lista que tendrá el valor de B en donde el valor anterior era VERDADERO (recuerda, verdadero = 1, verdadero * valor = valor) y 0 en donde la celda de A no es igual que el valor de búsqueda (falso * cualquier valor = 0)

Cuando calculamos el máximo de esa lista de valores, tendremos el mayor valor de B que cumple A.

Una vez hecho esto, podemos introducir otra fórmula matricial para localizar el valor que hemos calculado junto con el que buscábamos al principio para que nos devuelva el valor de la tercera columna. Para localizar el valor, una vez lo restringimos al máximo en B sabemos que solo hay uno, por lo que podemos pedirle a Excel que nos devuelva la suma de la lista de valores. Sabremos que todos serán 0 excepto uno, el que cumple en A y en B.

Si lo ponemos todo en la misma fórmula, nos queda algo como esto:

=INDICE(C:C;SUMA((A:A=F3)*(B:B=MAX((A:A=F3)*B:B))*FILA(C:C)))

Que, al introducirla como fórmula matricial, con Control+Enter, se nos pondrá de esta manera:

{=INDICE(C:C;SUMA((A:A=F3)*(B:B=MAX((A:A=F3)*B:B))*FILA(C:C)))}

 

Y nos devolverá el valor de la columna C que cumple con el máximo valor de la columna B que, a su vez, cumple con el valor que buscamos en A.

 

Un lío, pero una oportunidad para aprender un poco de fórmulas matriciales.

 

Te adjunto un pequeño ejemplo para que puedas trastearlo.

Un saludo

AdjuntoTamaño
File busqueda_mayor.xlsx9.77 KB