Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosac
Creator II
Creator II

DOBLE CONDICION

Buenos dias.

Tengo el siguiente problema y no se como resolverlo. A modo de ejemplo seria algo asi:

Hay que calcular el precio final que es el resultado de :

Multiplicar kilos por el rango correspondiente en el que se encuentra , pero si el rango superior da un importe supeior , me tengo que quedar con este último es decir...

KILOSpara calcular el precio finalPRECIO FINALRANGO KILOSPRECIO
2el mayor de 2*1 o 2*1,22,40-501
75el mayor de 75*1,2 o 75*1,5112,550-1001,2
100-5001,5

Gracias por anticipado

1 Solution

Accepted Solutions
sorrakis01
Specialist
Specialist

Hola,

Para que no te lies, haz lo siguiente... añade el Precio del siguiente Rango en el INLINE como campo Precio2

Test: (Llámale Tabla de Rangos mejor)

LOAD * Inline [

Minimo, Maximo, Rango, ID Rango, Precio1,Precio2

0, 25, 0-25,1,19,18

26, 50, 26-50,2,18,16

50, 100, 50-100,3,16,14

100,200, 100-200,4,14,12

200,500, 200-500,5,12,10

500,1000, 500-1000,6,10,10

];

Así solo tendrás que multiplicar Kilos * Precio1 y Kilos * Precio2 para sacar el mejor precio de los 2.

Creo que es una solución más sencilla.

Ya me dirás que te parece y si te soluciona el problema. Es mucha mas sencillo.


Saludos

View solution in original post

16 Replies
sorrakis01
Specialist
Specialist

Hola Galvan,

No acabo de entender bien lo que pretendes: Multiplicar kilos por el rango correspondiente en el que se encuentra , pero si el rango superior da un importe supeior , me tengo que quedar con este último es decir...

porque en tu ejemplo pq 2 Kilos lo multiplicas por 2 rangos?

Saludos,

carlosac
Creator II
Creator II
Author

Hola Jordi. Me piden que multiplique los kilos por el rango en que se encuentra y también por el siguiente rango y que de ambas cantidades de precio calculadas me quede con la mayor. Se que es raro pero esto se suele utilizar en empresas logisticas para no penalizar sus beneficios por pedido ya que al aumentar el rango el precio por rango va disminuyendo

sorrakis01
Specialist
Specialist

Ok,

De cuantos rangos dispones?

carlosac
Creator II
Creator II
Author

Aproximadamente unos 10 Jordi

sorrakis01
Specialist
Specialist

Hola,

Y el intervalo de los rangos siempre es el mismo? es decir la diferencia en todos es siempre la misma?

(en este caso sería 50)

0-50

50-100

100-150

Saludos,

sorrakis01
Specialist
Specialist

Galvan,

Como no sé exactamente como tienes montado el proyecto te adjunto un link el cual te puede ayudar, sobre todo con las calses de grupos para que puedas multiplicar el precio y decidir el que mas te convenga.

http://community.qlik.com/message/258160#258160

Espero que te ayude,

Saludos,

carlosac
Creator II
Creator II
Author

Hola Jordi, gracias por adelantado. El rango es siempre este...

Hasta 25 kg
de 26 a 50 kg
de 51 a 100 kg
de 101 a 200 kg
de 201 a 500 kg
de 501 a 1.000 kg
de 1.001 a 2.000 kg
de 2.001 a 4.000 kg
de 4.001 a 6.000 kg
de 6.001 a 8.500 kg
de 8.501 a 12.000 kg
de 12001 a 17000 kg
mas de 17.000 kg
sorrakis01
Specialist
Specialist

Hola,

Te adjunto el script de como lo podrias hacer. Luego ya en una Pivot te haces los cálculos que necesites. Para multiplicar el siguiente rango, sumale 1 al ID Rango.

Test:

LOAD * Inline [

Minimo, Maximo, Rango, ID Rango, Precio

0, 25, 0-25,1,19

26, 50, 26-50,2,18

50, 100, 50-100,3,16

100,200, 100-200,4,14

200,500, 200-500,5,12

500,1000, 500-1000,6,10

];

Datos:

LOAD * Inline [

Kilos, Cliente

55, ClienteA

5, ClientebB

155, ClienteC

683, ClienteD

200, ClienteE

300, ClienteF

85, ClienteG

115, ClienteH

180, ClienteI

260, ClienteJ

];

Left join(Datos)

Intervalmatch(Kilos)

LOAD Minimo, Maximo

RESIDENT Test;

Left join (Datos)

LOAD * resident Test;

drop table Test;

Saludos,

carlosac
Creator II
Creator II
Author

Gracias Jordi por tu ayuda pero no me cuadra... Me sale algoi como asi: Si te das cuenta por ejemplo para 5 coge el ranfo 0-25 pero no el siguiente tambien que seria 26-50..

Perdona por la lata pero no me aclaro...