Buscarv con doble condición

En la hoja1 tengo una plantilla que genera ordenes de compra y en la hoja2 tengo una base de datos de la cual salen los datos de las ordenes así:
<hoja2>
        A                        B                     C             D                 E
1 Proveedor Tipo producto Producto U/M Precio Unitario
2 juan perez frutas mango kg $500
3 gonzalo g. Abarrotes lenteja kg $600
4 leo toloza frutas mango kg $450
5 maria lenis lacteos leche fresca lt $700
En la primera hoja tengo una celda con una lista desplegable de todos los proveedores así:
<hoja1>
          A
1 Seleccione el proveedor: juan perez
También tengo la tabla de la Orden de Compra así:
         A B C D E
3 Cantidad U/M  Detalle P. Unitario Total
4       2            KG   mango         ?          =(A3*D3)
Mi necesidad es una fórmula que me traiga automáticamente el precio unitario con solo escribir el nombre del producto, yo estoy manejando esta fórmula:
=si.error(buscarv(c4;Hoja2!c2:e5;2;0);"")
Pero, resulta que tengo proveedores que manejan el mismo producto con precios distintos y lo que quiero es que al escribir el nombre del producto me traiga el precio unitario solo si el proveedor al que pertenece es igual al seleccionado en la lista desplegable de la hoja1.

1 respuesta

Respuesta
Puedes hacer una macro, pero es más complejo y te resultará más complicado de mantener en el futuro. Yo te cuento la solución que siempre aplico para estos casos, ya que es muy sencilla y se entiende bien.
1º Te creas en la Hoja2 una columna nueva DE que concatene al proveedor y el producto mediante una fórmula. Por ejemplo:
=C2&"*"&A2
Esto hará que se desplacen la siguientes columnas una posición.
2º En la Hoja1 La fórmula a aplicar para obtener el precio unitario será ahora:
=si.error(buscarv(C4&"*"&$B$1;Hoja2!D2:F5;3;0);"")
Siendo $B$1 la celda donde está seleccionado el proveedor.
Finalmente, si la columna DE insertada en la Hoja2 te molesta puedes ocultarla o ponerla en color gris tenue.
Te agradezco mucho la pronta respuesta... la verdad es que si tuvo el efecto que quería en cuanto al cambio de proveedor, me da el respectivo valor... pero!
Si yo borro el detalle en este caso "mango" en p.unitario se pone automáticamente un precio de otro producto que se encuentra en la base de datos de el proveedor seleccionado.
Queda por defecto.
Quisiera que al borrar el detalle se borrara también el P.Unitario osea (0)...
Creo que le falta un poco más de precisión al resultado.
Ojala me entiendas y me colabores pronto
Prueba a ver así:
=si.error(buscarv(C4&"*"&$B$1;Hoja2!D2:F5;3;VERDADERO);"")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas