Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
See why IDC MarketScape names Qlik a 2025 Leader! Read more
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Use of variables

Hi!

I'd like to know how to save a value in a variable and that this will not change unless I decide to clean it.

For example: I calculate the a number that I need to use for an aritmetic operation, but I need that this number doesn't change, only if I decide clean it the variable...


Thank's for help

1 Solution

Accepted Solutions
Not applicable
Author

Ok, ahora entiendo un poco más. Los sum entonces están mal. No es necesario ingresar variables de selecciones actuales.. Como está (o debería estar) todo conectado, al seleccionar un valor en un cuadro de lista de "año fiscal" o un presupuesto en concreto, la expresión SUM(Presupuesto) devuelve el valor en base a lo seleccionado. El Set Analysis es para cuando querés que te devuelva algo por encima de lo seleccionado o "ignorandoló" (por ejemplo, al seleccionar un año fiscal, podés hacer que el SUM devuelva el presupuesto del año fiscal anterior).

Pasando todo en limpio, lo que querés hacer sería:

(vas a necesitar tener el campo fecha separado en 3: AÑO, MES, DIA)

SUM(Prespuesto) / COUNT({DIA}DISTINCT WEEK(FECHA)) * COUNT(DISTINCT WEEK(FECHA))

En la división, el SET ANALYSIS en DIA es para que no considere las selecciones del mismo. Esto es porque al seleccionarse una fecha se selecciona un día, entonces se limita a 1 semana (si seleccionan varios días aparecerán más semanas. Por ejemplo: si tenés el 2 seleccionado y era un lunes, si seleccionás 2, 9  y 16 te van a contar 3 semanas seleccionadas porque tenés 3 lunes de 3 semanas distintas).

Espero haberte ayudado con esto.

View solution in original post

7 Replies
Not applicable
Author

CTRL + ALT + V

Create a variable, click on it, set the expression or value.

Now you can use it in a chart with $(vVar). Or you could change its value with a button/text box with actions/ external/ set variable. Just like this:qliktip018_04_action_variable.jpg

I hope it helped, good luck!

P.S: Si hablas español, no tengo problemas en indicarte en español.

maxgro
MVP
MVP

you can also set a variable in the script,

see in online help let statement

Not applicable
Author

Ok, excelente, te comento, ya puse en practica lo de las variables, pero tengo un detalle para ver si me puedo dar a entender. Hice una variable que me cuenta las semanas en un determinado mes y con base en lo que aparece en la cuenta toma un dato y hace un operación( un división), cuando ocurre lo primero lo hace bien, pero luego cuando cuenta las semanas hace cosas muy raras y si selecciono una semana a veces me cuenta 2 semanas.. entonces obviamente la operación  me da errores

Te muestro un poco el código de las variables:

vCantSemanas=Count(DISTINCT (Semana))


vPresupSemana=If ($(vCantSemanas)=1,

  Num(Sum({<[Año Fiscal]={$(vAñoFiscalActual)}>}$(vPresupuestoVenta)/4.33), '###,##0'),

  if ($(vCantSemanas)>1 and $(vCantSemanas)<2,

  Num(Sum({<[Año Fiscal]={$(vAñoFiscalActual)}>}$(vPresupuestoVenta)/4.33), '###,##0'),

  Num(Sum({<[Año Fiscal]={$(vAñoFiscalActual)}>}$(vPresupuestoVenta)), '###,##0')

  )

  )

Aprecio mucho tu ayuda

Not applicable
Author

Primero necesito saber cómo calculás las semanas, porque evidentemente hay algo raro ahí. Segundo nosé si lo que pasaste ahí es un IF enorme o son dos cosas distintas, porque hacen prácticamente lo mismo...

Para pasarlo en limpio sería:

vPresupSemana=If ($(vCantSemanas)>=1 AND $(vCantSemanas)<2,

Num(Sum({<[Año Fiscal]={$(vAñoFiscalActual)}>}$(vPresupuestoVenta)/4.33), '###,##0', ',' , '.'),

Num(Sum({<[Año Fiscal]={$(vAñoFiscalActual)}>}$(vPresupuestoVenta)), '###,##0', ',' , '.') ) ;


Nosé que te devuelva la variable vCantSemanas (usás un campo "semana"), pero si le ponés de condición al IF >1 AND <2, estás buscando un valor entre 1,1 y 1,9 (en decenas de decimales para facilitar el ejemplo). Y realmente me parecería raro un número decimal en un conteo de semanas (o elegís la cantidad de semanas de lunes a domingo en la que te pueden llegar a salir creo que hasta 6 o 7, o directamente la cantidad de semanas que son la cantidad de días del mes, por ejemplo 31 / 7, son 5 semanas porque el resultado es más que 4). Por otra parte, es buena práctica indicar el separador de decimales y miles al usar num.

Not applicable
Author

Gracias Ramiro por tu respuesta.

Así es como estoy calculando las semanas.

vCantSemanas=Count(DISTINCT Week (Fecha))

Lo curioso es que cuando selecciono una semana en un ListBox entonces la cuenta es extraña y a veces dice 1 o 2 cuando selecccionas una semana.

Lo que necesito hacer es que un campo que se llama Presupuesto se calcula con base en este conteo, es decir si el presupuesto son 100 y la cantidad de semanas seleccionadas es 1 entonces sería tomar esos 100 dividirlos entre la cantidad de semanas que tiene el mes y multiplicarlo por 1, si selecciono dos entonces tomar los 100 dividirlos entre la cantidad de semanas y multiplicarlos por dos.

Espero que esta vez haya sido claro.

Not applicable
Author

Ok, ahora entiendo un poco más. Los sum entonces están mal. No es necesario ingresar variables de selecciones actuales.. Como está (o debería estar) todo conectado, al seleccionar un valor en un cuadro de lista de "año fiscal" o un presupuesto en concreto, la expresión SUM(Presupuesto) devuelve el valor en base a lo seleccionado. El Set Analysis es para cuando querés que te devuelva algo por encima de lo seleccionado o "ignorandoló" (por ejemplo, al seleccionar un año fiscal, podés hacer que el SUM devuelva el presupuesto del año fiscal anterior).

Pasando todo en limpio, lo que querés hacer sería:

(vas a necesitar tener el campo fecha separado en 3: AÑO, MES, DIA)

SUM(Prespuesto) / COUNT({DIA}DISTINCT WEEK(FECHA)) * COUNT(DISTINCT WEEK(FECHA))

En la división, el SET ANALYSIS en DIA es para que no considere las selecciones del mismo. Esto es porque al seleccionarse una fecha se selecciona un día, entonces se limita a 1 semana (si seleccionan varios días aparecerán más semanas. Por ejemplo: si tenés el 2 seleccionado y era un lunes, si seleccionás 2, 9  y 16 te van a contar 3 semanas seleccionadas porque tenés 3 lunes de 3 semanas distintas).

Espero haberte ayudado con esto.

jyothish8807
Master II
Master II

Hi Ricardo,

in script:

set var=ur exp;

Now you can  call your variable in any chart you want.

Regards

KC

Best Regards,
KC