Valor mas actual en base a 3 criterios

Prozac buen dia, necesito resolver con una formula lo siguiente (Excel Office 2007):
- Tengo una base de datos que contiene en cada fila códigos de insumos, fechas, importes y código de proveedor asociado, es un listado histórico de compras de insumos.
Las relaciones código-proveedor entonces se presentan varias veces en diferentes fechas (compras diferentes para el insumo), e inclusive se dan relaciones mismo cod de insumo con diferente cod de proveedor (mismo insumo comprado a diferente proveedor).
Yo tengo hecho un filtro avanzado de 'solo registros únicos' de todas las relaciones cod insumo - proveedor que aparecen en esa matriz.
Mi idea es actualizar precios (de insumos-proveedor), a través del dato de último precio, o sea, teniendo en cuenta la última fecha de precio de la matriz, pero no logro encontrar una fórmula que me lo resuelva (probé con bdmax pero no me sirve o no la se aplicar...).
Necesito saber si podrías orientarme a resolver esta formula, gracias.
Te paso un pequeño ejemplo: para el insumo 0306010401 comprado al prov 301001 Aguinor, el precio que debería obtener en el filtro sería 14.730 porque es el mas reciente de todos -20/07/2011-:
Fecha OC Insumo Prov Compra UN Prec $
10/09/2008 200800001859 0306010401 301001 AGUINOR 100 10,920
24/09/2008 200800001936 0306010401 301001 AGUINOR 2.000 12,500
20/05/2010 200900004217 0306010401 301001 AGUINOR 50 7,100
29/03/2011 200900005329 0306010401 301001 AGUINOR 1.200 15,250
20/07/2011 200900005856 0306010401 301001 AGUINOR 300 14,730

1 Respuesta

Respuesta
1

Para el ejemplo que das la solución es la siguiente:

=VLOOKUP(MAX(A2:A6);A2:G6;7)

He incluido tu ejemplo a partir de A1 y el resultado en cualquier celda que no esté en el rango A2:G6 y donde quieras obtener el valor.

Aclaro que necesito extraer de una gran matriz (las compras históricas anuales), el valor mas actual de cada relación item/proveedor que aparece en ella, por eso hago el filtro avanzado con 'solo registros únicos', o sea, son muchos items/proveedor de los que debo conseguir su valor mas actual, la formula vlookup hace referencia al rango fecha pero no esta teniendo en cuenta que también necesito la relación item/proveedor.

Completo un poco mas el ejemplo asi me puedo explicar mejor:

Fecha OC Insumo Prov Compra UN Prec $
10/09/2008 200800001859 0306010401 301001 AGUINOR 100 10,920
24/09/2008 200800001936 0306010401 301001 AGUINOR 2.000 12,500
20/05/2010 200900004217 0306010401 301001 AGUINOR 50 7,100
29/03/2011 200900005329 0306010401 301001 AGUINOR 1.200 15,250
20/07/2011 200900005856 0306010401 301001 AGUINOR 300 14,730

01/09/2009 200800002031 0458606010 210005 FAPSA 400 8,900
20/03/2012 200900001214 0458606010 210005 FAPSA 5.100 8,650

01/04/2011 200800005841 0306010401 121001 NUTFIL 600 11,590
10/05/2010 200900002021 0306010401 121001 NUTFIL 150 9,950

Entonces el resultado que busco (que me traiga una formula), para cada fila del filtro realizado debería ser:

Insumo Prov Ultimo Precio
0306010401 301001 AGUINOR 14,730
0458606010 210005 FAPSA 8,650
0306010401 121001 NUTFIL 11,590

Donde el insumo 0306010401 se compra a dos proveedores (o sea, tengo mas de una relación item/proveedor), y donde también hay otros items en la matriz general.

Gracias por tu respuesta.

Bueno la cosa es un poco más complicada. El resultado que yo obtengo es:

J K L

Compra Min Precio
AGUINOR 10/09/08 10,92
FAPSA 01/09/09 8,9
NUTFIL 10/05/10 9,95

Los datos están en A1 a G10 incluyendo cabeceras.

Los pasos de cálculo son los siguientes:

- Desde J2 hacia abajo copio los valores de las empresas sin duplicados.

- En K2, introduzco la siguiente fórmula array:

=MIN(IF($E$2:$E$10=J2;$A$2:$A$10))

Como es una fórmula array tengo que pulsar Control+Shift+Enter. Si lo hago bien aparecerán unas llaves {} alrededor de la fórmula en la barra de edición.

Arrastro la fórmula hacia abajo para tener el resto de valores

En tu caso en lugar de MIN sería MAX.

- En L2 introduzco lo siguiente:

=VLOOKUP(K2;$A$2:$G$10;7;False)

Para que me de el valor.

Ojo. Si tienes valores repetidos el VLookUp te dará el primero que puede no corresponder al mínimo de cada comprador. En ese caso tendrías que introducir el rango correcto (el que tiene cada comprador) en el Vlookup o ir a fórmulas de tipo Index/Match. Te lo dejo como ejercicio :) . Creo que lo podrás hacer viendo la fórmula del mínimo.

Recuerda que siempre que escribas una fórmula array tienes que "validarla" con Control+Sifth+Enter, de lo contrario tendrás un error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas