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

Cargar variables desde Excel

Que tal, tengo un problema al cargar mis variables de un excel a Qlik View, se cargan de manera correcta pero no se reconocen en las tablas. Pero la elimino y luego las vuelvo a definir exactamente igual y Qlik si las carga de manera normal. Alguien sabe por que no reconoce las variables aunque si las carga?

Este es mi codigo 

TablaVariables:
LOAD VARIABLE,
SENTENCIA
FROM [..\..\3_XLS\Variables\VARIABLES.xlsx]
(ooxml, embedded labels, table is Hoja1);

for v=0 to NoOfRows('TablaVariables')
let vVariable=Peek('VARIABLE',$(v),'TablaVariables');
let $(vVariable)=Peek('SENTENCIA',$(v),'TablaVariables');
NEXT v

let v = null();
let vName = null();

 

 

9 Replies
rubenmarin

Hola, no entiendo a qué te refieres con que las carga pero no se reconocen. ¿Aparecen en el panel de variables? ¿O en un objeto Cuadro de Entrada?
Lo único que le veo al código es que debería ser NoOfRows('TablaVariables')-1 (porque el bucle empieza con cero y NoOfRows con 1). Y el último vName=null(), que no creo que deba estar.
Saludos.
Eloyvelur
Contributor
Contributor
Author

Que tal, si me aparecen en el panel de variables e incluso tienen la sintaxis correcta. Pero no se reconoce en el Set Analisys a ninguna. Cuando elimino alguna variable y la declaro  exactamente igual en el panel de variables de forma manual si la reconoce. 

rubenmarin

Igual es porque en el excel también estás declarando las variables con un igual delante, por ejemplo:

LET vAñoActual = Year(Today);

En el excel solo debería ser Year(Today), si en el excel está como =Year(Today()) se encontrará con dos iguales, que dependiendo del contexto donde se use puede dar un error de sintaxis.

También puede ser al revés: que necesite ese signo igual adicional y no se está poniendo.

Si pudieses poner algún ejemplo concreto sería más fácil depurarlo.

Eloyvelur
Contributor
Contributor
Author

Ya intente quitarle el igual y también ponerlo, en algunos ejemplos encontré que ponían una comillla simple.  Pero obtengo el mismo resultado.Estas son las variables que intento cargar como prueba en una app donde solo usa estas tres variables 

VARIABLESENTENCIA 
V_Año_ActuaLmax([Año Apple])
v_Año_Antmax([Año Apple])-1
v_MaxTrimestreActuaLMax({$<[Año Apple]={$(V_Año_Actual)}>}[Trimestre Especial Numerico])
rubenmarin

Puedes pensar en los $-expansion como si pegase el contenido de la variable tal cual, hecho así, al expandir los $ se quedaría como:Max({$<[Año Apple]={max([Año Apple])}>}[Trimestre Especial Numerico])

Lo cual dará un error

Si a la variable V_Año_ActuaL le añades el = al principio para que evalue la expresión sí que pasaría el valor

V_Año_ActuaL=max([Año Apple])
v_Año_Ant=max([Año Apple])-1
v_MaxTrimestreActuaLMax({$<[Año Apple]={$(V_Año_Actual)}>}[Trimestre Especial Numerico])

 

Eloyvelur
Contributor
Contributor
Author

Si, me suena muy lógico en realidad pensé que iba a funcionar pero no. Aunque si las carga de manera correcta no hay cambio en el resultado, las tablas siguen sin aparacer. Dejo un ejemplo de lo que sucede con la aplicacion con varibles cargadas de manera manual y las que cargo desde el Excel 

Screenshot_1.png

rubenmarin

Por lo que veo, si la de la derecha  es la correcta, lo que le falta es añadir también el = a la variable v_MaxTrimestreActuaL

VARIABLESENTENCIA 
V_Año_ActuaL=max([Año Apple])
v_Año_Ant=max([Año Apple])-1
v_MaxTrimestreActuaL=Max({$<[Año Apple]={$(V_Año_Actual)}>}[Trimestre Especial Numerico])
Eloyvelur
Contributor
Contributor
Author

Si, ya han quedo exactamente igual, es por eso que pienso que el problema debe ir por otro lado. Ya que en apariencia están igual e incluso e intentado las variaciones antes mencionadas pero no encuentro la razón por la cual no las reconoce.

Anexo una captura de el cambio sugerido. Screenshot_2.png

rubenmarin

Otra diferencia que veo es que en el que no funciona la última L de Actual esta en mayúscula y en el otro documento en minúscula, habría que dejar los nombres en minúscula como el original.