Selecionar la mejor oferta en costos entre varios proveedores automaticamente

11/12/2009 - 15:32 por Mario Caricola | Informe spam
Saludos a todos y gracias a de antemano por su ayuda

En una misma hoja tengo una lista de precios con varias columnas con los
costos cotizados por los diferentes proveedores (una columna por proveedor)
de un mismo producto, es decir, para un producto llamado "hilo" el
Proveedor1 cotizo 3,4 Proveedor2 cotizo 3,8 Proveedor3 cotizo 4,1
Proveedor4 cotizo 2,4

Me gustaria que en una columna llamada Oferta ganadora me selcciones el
monto mas bajo de todos, en este ejemplo seria 2,4 y en otra el nombre que
seria Proveedor4

Espero haberme explicado bien y una vez mas gracias y disculpen si esta
fácil pero ando medio tapao

Atte.,
MC

Preguntas similare

Leer las respuestas

#1 Benito Merino
11/12/2009 - 17:10 | Informe spam
On 11 dic, 15:32, "Mario Caricola" wrote:
Saludos a todos y gracias a de antemano por su ayuda

En una misma hoja tengo una lista de precios con varias columnas con los
costos cotizados por los diferentes proveedores (una columna por proveedor)
de un mismo producto, es decir, para un producto llamado "hilo" el
Proveedor1 cotizo 3,4      Proveedor2 cotizo 3,8      Proveedor3 cotizo 4,1
Proveedor4 cotizo 2,4

Me gustaria que en una columna llamada Oferta ganadora me selcciones el
monto mas bajo de todos, en este ejemplo seria 2,4 y en otra el nombre que
seria Proveedor4

Espero haberme explicado bien y una vez mas gracias y disculpen si esta
fácil pero ando medio tapao

Atte.,
MC



Hola Mario.

He preparado una función personalizada que te funciona.

Esta función te devuelve dos tipos de datos:
nombre del proveedor (argumento tipo tiene que ser igual a 1)
importe mínimo (argumento tipo tiene que ser igual a 2)


Function oferta(rango As Range, tipo As Integer)


For Each c In rango
contador = contador + 1
a = Split(c.Value, " ")
nombreprov = a(0)
importeprov = a(UBound(a))
If contador = 1 Then
importemin = importeprov
provmin = nombreprov
ElseIf importemin >= importeprov Then
importemin = importeprov
provmin = nombreprov
End If
Next
If tipo = 1 Then
oferta = provmin
ElseIf tipo = 2 Then
oferta = importemin
End If

End Function


Saludos,

Benito
Barcelona
Respuesta Responder a este mensaje
#2 Héctor Miguel
11/12/2009 - 17:13 | Informe spam
hola, Mario !

En una misma hoja tengo una lista de precios con varias columnas
con los costos cotizados por los diferentes proveedores (una columna por proveedor) de un mismo producto
es decir, para un producto llamado "hilo"
el Proveedor1 cotizo 3,4 Proveedor2 cotizo 3,8 Proveedor3 cotizo 4,1 Proveedor4 cotizo 2,4
Me gustaria que en una columna llamada Oferta ganadora me selcciones el monto mas bajo de todos
en este ejemplo seria 2,4 y en otra el nombre que seria Proveedor4 ...



todo dependera del "arreglo" que tengas de esos datos, pero prueba funcines como...

para obtener el precio mas bajo:
=min(<rango cotizaciones>)

para obtener el nombre del proveedor:
=indice(<rango proveedores>,coincidir(<precio minimo>,<rango de cotizaciones>,0))

si tienes cotizaciones "empatadas"... (habra que desarrollar otro tipo de formulas ?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Mario Caricola
12/12/2009 - 02:38 | Informe spam
Gracias Miguel, gracias Benito,

El método que he utilizado es el de Miguel y me ha dado resultado, funciona
perfecto, no conocía la función MIN(rango)
Ahora me gustaría hacer en el mismo caso, que colocara el fondo rojo a la
celda donde se encuentre una cotización que los demás proveedores no
cotizaron, es decir, una única cotización de algún producto.

Nota: las celdas adyacentes (de otros proveedores) estarían vacías, es decir
en blanco

Y si es posible que en una misma fila coloree el fondo de las cotización que
arroje la función min(rango cotización) y estén empatadas, es decir, que un
una misma fila hayan dos o mas costos iguales y todos sean el menor.

Gracias de antemano por este aporte!

Atte.,
MC

"Héctor Miguel" escribió en el mensaje de
noticias:
hola, Mario !

En una misma hoja tengo una lista de precios con varias columnas
con los costos cotizados por los diferentes proveedores (una columna por
proveedor) de un mismo producto
es decir, para un producto llamado "hilo"
el Proveedor1 cotizo 3,4 Proveedor2 cotizo 3,8 Proveedor3
cotizo 4,1 Proveedor4 cotizo 2,4
Me gustaria que en una columna llamada Oferta ganadora me selcciones el
monto mas bajo de todos
en este ejemplo seria 2,4 y en otra el nombre que seria Proveedor4 ...



todo dependera del "arreglo" que tengas de esos datos, pero prueba
funcines como...

para obtener el precio mas bajo:
=min(<rango cotizaciones>)

para obtener el nombre del proveedor:
=indice(<rango proveedores>,coincidir(<precio minimo>,<rango de
cotizaciones>,0))

si tienes cotizaciones "empatadas"... (habra que desarrollar otro tipo de
formulas ?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Respuesta Responder a este mensaje
#4 Héctor Miguel
12/12/2009 - 04:33 | Informe spam
hola, Mario !

Ahora me gustaria hacer en el mismo caso, que colocara el fondo rojo a la celda
donde se encuentre una cotizacion que los demas proveedores no cotizaron
es decir, una única cotizacion de algun producto.
Nota: las celdas adyacentes (de otros proveedores) estarian vacias, es decir en blanco

Y... que en una misma fila coloree el fondo de las... que arroje la funcion min(rango cotizacion) y esten empatadas
es decir, que un una misma fila hayan dos o mas costos iguales y todos sean el menor...



para este caso puedes aplicar formatos condicionales por formula (dos condiciones)
usando como primera condicion la que sea mas "dificil" de que se cumpla (de lo contrario, las demas no son evaluadas)
y se requiere mantener referencias del tipo columna-absoluta y fila-relativa ($A1)
asi que suponiendo un rango de datos [B2:E10] <=?= OJO: ajusta las formulas segun tu rango real

- selecciona el rango completo (la celda activa debera ser B2)
- aplica (menu:) formato / formato condicional

- condicion1 (formula): =y(contar($b2:$e2)=1,b2>0)
- aplica el formato segun tus necesidades (fondo rojo ?)

- condicion2 (formula): ²=min($b2:$e2)
- aplica el formato segun tus necesidades (fondo verde ?)

saludos,
hector.
Respuesta Responder a este mensaje
#5 Mario Caricola
12/12/2009 - 06:44 | Informe spam
Excelente, gracias por el aporte Hector!!



"Héctor Miguel" escribió en el mensaje de
noticias:
hola, Mario !

Ahora me gustaria hacer en el mismo caso, que colocara el fondo rojo a la
celda
donde se encuentre una cotizacion que los demas proveedores no cotizaron
es decir, una única cotizacion de algun producto.
Nota: las celdas adyacentes (de otros proveedores) estarian vacias, es
decir en blanco

Y... que en una misma fila coloree el fondo de las... que arroje la
funcion min(rango cotizacion) y esten empatadas
es decir, que un una misma fila hayan dos o mas costos iguales y todos
sean el menor...



para este caso puedes aplicar formatos condicionales por formula (dos
condiciones)
usando como primera condicion la que sea mas "dificil" de que se cumpla
(de lo contrario, las demas no son evaluadas)
y se requiere mantener referencias del tipo columna-absoluta y
fila-relativa ($A1)
asi que suponiendo un rango de datos [B2:E10] <=?= OJO: ajusta las
formulas segun tu rango real

- selecciona el rango completo (la celda activa debera ser B2)
- aplica (menu:) formato / formato condicional

- condicion1 (formula): =y(contar($b2:$e2)=1,b2>0)
- aplica el formato segun tus necesidades (fondo rojo ?)

- condicion2 (formula): ²=min($b2:$e2)
- aplica el formato segun tus necesidades (fondo verde ?)

saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida