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: 
Anonymous
Not applicable

¿cómo cargar registros opcionales desde el editor? (QlikSense)

Hola, soy muy nuevo en esto de QlikSense y en general apenas estoy aprendiendo a programar.

Estoy usando en QlikSense el "Data Load Editor", para hacer la carga de datos, sin embargo, QlikSense me genera error, cada que le pido que cargue un registro y el editor no lo encuentra, por lo que solicito de su ayuda...

[Table1]:
    LOAD
[Field1],
[Field2],
[Field3],
[Field4],
                    [Field5]
               FROM [lib://REGIONES/SR.xlsx]
               (ooxml, embedded labels);

Supongamos que el "Field5" no se encuentra en el archivo de excel, aquí me generaría un error QlikSense. Intenté con la palabra "MATCH", y funcionó con algunos campos, excepto con aquellos que tienen alias, por lo que estoy trabado ahí...


[Table1]:
     LOAD
                  MATCH(
[Field1],
[Field2],
[Field3],
[Field4],
[Field5] as [Field100] )
     FROM [lib://REGIONES/SR.xlsx]
     (ooxml, embedded labels);


Si no le pusiera Alias al "Field5" (es decir "as Field100"), la palabra MATCH funcionaría sin problema, desafortunadamente, existen muchísimos registros a los que se les debe de poner un alias. ¿Alguna ayuda?. Por otro lado...cómo puedo hacer lo mismo, pero ahora en lugar de que sea un registro "opcional" dentro de una tabla, que se un archivo "opcional" dentro de una ruta de acceso (una carpeta), es decir, en el ejemplo de arriba estoy cargando el archivo "SR.xlsx", qué puedo hacer si necesito cargar otro archivo digamos "SR2.xlsx" que algunas veces estará y otras nó...

5 Replies
jvitantonio
Luminary Alumni
Luminary Alumni

Hola Adonay,

No estoy seguro si entiendo bien lo que estas haciendo pero creo que quieres cargar campos de un archivo sin necesariamente saber si esos campos existen. Tampoco estoy seguro para que estas usando match.

Lo que yo haria es cargar todos los campos de ese archivo:

[Table1]:
    LOAD
*
              FROM [lib://REGIONES/SR.xlsx]
              (ooxml, embedded labels);
Si quieres cargar todos los archivos que se encuentra en una carpeta y empiezan de la misma forma (en tu caso SR...) puedes agregar un asterisco/estrella en el nombre del archivo.
[Table1]:
    LOAD
*
              FROM [lib://REGIONES/SR*.xlsx]
              (ooxml, embedded labels);
Esto cargara todos los archivos .xlsx que empiecen con el nombre SR.

Espero te sirva.

Saludos

Juan

Anonymous
Not applicable
Author

Muchas gracias por responder jvitantonio‌, debido a que incorporo 6 archivos de excel en QlikSense y cada uno de esos archivos de excel tienen al menos 60 campos cada uno, con registros -algunos- de mas de medio millón, si elijo cargar todos los registros con un " * ", pasa que la aplicación queda extremadamente lenta y en ocasiones se llega a trabar, por ello me dí a la tarea de analizar los campos que verdaderamente se utilizan, solo que de mi universo de campos que se utilizan, algunos clientes llegarán a tener uno de esos campos, mientras que otros nó, es decir, uno de esos campos es una encuesta que se le hace a algunos clientes, sin embargo debo considerar ese campo.
     Una vez que le digo específicamente los campos que quiero cargar, si no encuentra alguno de ellos, ejemplo, el campo "encuesta" (que se encuentra en mis 6 archivos en escalas de medidas completamente diferentes entre si), al no encontrarlo, arroja un error y me evita continuar hasta que encuentre el campo o elimine el nombre de ese campo del script.

     Por otro lado, tengo un problema, porque no todos los archivos que recibo o que se descargan vienen en el mismo formato, a veces vienen formato ".xlsx", otros como ".xls", como ".xlsm", etc. entonces esperaba ver si de alguna forma puedo decirle que me cargue los archivos solo por el nombre que les doy (en mi ejemplo el nombre es SR, que a veces puede ser SR.xlsx, a veces SR.xls ó SR.xlsm), pero también hay variaciones entre los nombres de los archivos, algunos se llamarán SR, otros BI, otros CMR, etc, con sus respectivas variaciones de extension.

     Saludos

jvitantonio
Luminary Alumni
Luminary Alumni

Hola Adonay, si quieres cargar todos los archivos de una carpeta, puedes usar *.*. Examplo:

Load * FROM ;

Con respecto a las columnas, tienes que especificarlas y seguramente cargar los archivos uno por uno. Otra idea es poner en carpetas diferentes los archivos que tengan columnas iguales, y luego hacer un LOAD por cada carpeta:

LOAD

  miCampo1, miCampo2

FROM ;

LOAD

   miCampo5, miCampo6

FROM ;

Saludos

Juan

jvitantonio
Luminary Alumni
Luminary Alumni

Si te sirvio por favor marca las respuesta como Util/Correcta.

Anonymous
Not applicable
Author

Muchas gracias por tus respuestas. Justo estoy probando esta solución (y de paso estoy aprendiendo un poco mas), en cuanto termine, pongo algún comentario y si me funciona con gusto la marcaré como Util/Correcta, con un muy sincero gesto de aprecio...