Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosac
Creator II
Creator II

ESCOGER VALOR MAXIMO DE 2 CALCULOS

Buenas,

Tengo el siguiente problema....

Me dan una tarifa de precios por rango kilos para un cálculo.

    

kilostarifa que aplicaria€ por kiloa pagar
CASO 1125101 a 200 kg0,5 €62,5 €
CASO 2270201 a 500 kg0,4 €

108,0 €

Los rangos de kilos son de la siguiente forma....

  

rango kg€ por kilo
0 a 501 €
51 a 1000,8 €
101 a 2000,5 €
201 a 5000,4 €

Además me comentan una cosa,, el total a pagar debe ser el MÁXIMO de 2 cálculos:

€  por kilo * kilos  (primer cáulculo que he recreado arriba)

ó

máximo del rango anterior, es decir:

     

kilosrango anteriormaximo del rango kg anteriortarifa ese rangoa pagar
CASO 112551 a 100 kg1000,8 €80,0 
CASO 2270101 a 200 kg2000,5 €

100

Es decir, el total final serian los valores de más abajo: max de 62,5 y de 80 es 80 (primer resultado)  y max de 108 y 100 es 108(segundo resultado).

   

resultado final
CASO 162,580,0------VALOR MAXIMO 80
CASO 2108100------VALOR MAXIMO 108

No se si alguien me puedes ayudar o si al menos me he expliado un poco. Gracias por anticipado....

1 Solution

Accepted Solutions
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Carlos:

Te paso un documento con la solución, lógicamente era una combinación de ambas soluciones.

Por un lado es necesario usar la función Previous() en lugar del Above() y también has de usar el IntervalMatch para localizar el tramo del peso.

Si te queda alguna duda, intentaré aclarala.

Saludos

Joaquín

View solution in original post

11 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Carlos:

Eres capaz de calcular ambos resultados para caso 1 y caso 2 ?

Joaquín

carlosac
Creator II
Creator II
Author

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Querías escribir algo ?

carlosac
Creator II
Creator II
Author

En esta parte es en la que me atasco:

máximo del rango anterior, es decir:

     

kilosrango anteriormaximo del rango kg anteriortarifa ese rangoa pagar
CASO 112551 a 100 kg1000,8 €80,0 
CASO 2270101 a 200 kg2000,5 €

100

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Carlos:

Se me ocurre que adaptes la tarifa para facilitarte el cálculo

 

rango kg€ por kilo Tramo anterior
0 a 501 €0 €
51 a 1000,80 €50 €
101 a 2000,50 €80 €
201 a 5000,40 €100 €

Con la función Above() en el load puedes multiplicar el peso máximo del tramo anterior por su valor para obtener el precio del tramo anterior.

En el load de la tasación tendrás tres campos Tasación por Peso, Tasación Tramo Anterior y un tercero que calcularás con un IF (Tasación por Peso < Tasación Tramo Anterior, Tasación Tramo Anterior, Tasación por Peso) as Tasación.

Espero haber desbloqueado tu atasco.

Saludos,

Joaquín

etendero
Partner - Creator
Partner - Creator

Hola Carlos,

Conforme lo comentas, lo que te hace falta es utilizar la instrucción IntervalMatch en el script.

Te he montado un ejemplo con los datos que nos has pasado para que veas como se utiliza.

Un saludo y espero haberte ayudado.

carlosac
Creator II
Creator II
Author

Buenos dias y gracias antes de nada a los dos.

Emilio me parece muy interesante el ejemplo que me has pasado pero esta parte no me convence .

El cálculo real deberia ser:

kilosrango anteriormaximo del rango kg anteriortarifa ese rangoa pagar
CASO 112551 a 100 kg1000,8 €80,0 
CASO 2270101 a 200 kg2000,5 €

100

y como verás no sale lo mismo.....

Debe coger el máximo del rango anterior :en el CASO 1, el rango anterior es 51 a 100 kg y el máximo es 100 y multiplicarlo por la tarifa de ese rango anteior, es decir 0.8 €, por lo que para el CASO 1 es 100kg *0.8 €= 80 €.

Para el CASO 2, el rango anterior es 101 a 200 kg y el máximo es 200 y multiplicarlo por la tarifa de ese rango anteior, es decir 0.5 €, por lo que para el CASO 2 es 200kg *0.5 €= 100 €.

Sin título.png

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Carlos,

Copia la parte del script donde haces el load de la tarifa, si puede ser con los campos peso desde y peso hasta en dos columnas.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Carlos:

Te paso un documento con la solución, lógicamente era una combinación de ambas soluciones.

Por un lado es necesario usar la función Previous() en lugar del Above() y también has de usar el IntervalMatch para localizar el tramo del peso.

Si te queda alguna duda, intentaré aclarala.

Saludos

Joaquín