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

Announcements
April 13–15 - Dare to Unleash a New Professional You at Qlik Connect 2026: Register Now!
cancel
Showing results for 
Search instead for 
Did you mean: 
raadwiptec
Creator II
Creator II

multiple loads

I have many excel files with the same starting name but for different month and years

my files are as following

invoice_01_2016

invoice_02_2016

..

invoice_01_2017 etc

For ex:

Select

... *

Applymap('test',invoice) as invoiceamount

from invoices_*.xls....

but here i have another file from example: invoiceamount_2016.xls , invoiceamount_2017.xls ,

test:

Mapping Load

invoice

invoice amount

from

invoiceamount_2016.xls

so here for using  an applymap ..i cannot use on all at once.. i need to load each year in seperate files..

thant means i can load invoice_* at a time.. but when applymap comes i need to divide the file and reiterate each year with each year applymaps..


is there an efficient way here?

5 Replies
rahulpawarb
Specialist III
Specialist III

Hello Raadwiptec,

Trust that you are doing great!

As a workaround you can make use of below script:

Map_Invoice_Amount:

Mapping LOAD

     SubField(FileBaseName(),'_', 2) & '|' & Invoice As InvoiceKey,

     Amount

FROM

Data\InvoiceAmount_*.xlsx

(ooxml, embedded labels, table is Sheet1);

InvoiceData:

LOAD Invoice,

     Date,

     QTY,

     ApplyMap('Map_Invoice_Amount', SubField(FileBaseName(),'_', 3) & '|' & Invoice, 'No Invoice Amount') AS InvoiceAmount

FROM

Data\Invoice_*.xlsx

(ooxml, embedded labels, table is Sheet1);

Also refer the sample application attached herewith.

Hope this will be helpful.

Regards!

Rahul

raadwiptec
Creator II
Creator II
Author

Hi Rahul,

My filebase name is invoice_13_01 .....invoice_15_01.......can you adjust the code for this... can you also tell me the logic behind 2 and 3 in your script..

rahulpawarb
Specialist III
Specialist III

Hello Raadwiptech,

I have used Subfield() function to extract substring components from a parent string field i.e. result of FileBaseName() function (This function will return the base file name without extension which is being loaded in QlikView); where the original record fields consist of two or more parts separated by a delimiter.

//Syntax

SubField(text, delimiter[, field_no ])

//Example

SubField(FileBaseName(),'_', 2)    \\ Returns the second field i.e. 2016 separated by _ delimiter if FileBaseName() function returns InvoiceAmount_2016

SubField(FileBaseName(),'_', 3)    \\ Returns the third field i.e. 2016 separated by _ delimiter if FileBaseName() function returns Invoice_01_2016

Please refer below modified code for your reference (I haven't tested it; please do the needful):

Map_Invoice_Amount:

Mapping LOAD

    Right(SubField(FileBaseName(),'_', 2),2) & '|' & Invoice As InvoiceKey,

    Amount

FROM

Data\InvoiceAmount_*.xlsx

(ooxml, embedded labels, table is Sheet1);

InvoiceData:

LOAD Invoice,

    Date,

    QTY,

    ApplyMap('Map_Invoice_Amount', SubField(FileBaseName(),'_', 2) & '|' & Invoice, 'No Invoice Amount') AS InvoiceAmount

FROM

Data\Invoice_*.xlsx

(ooxml, embedded labels, table is Sheet1);


Hope this will be helpful.

Regards!

Rahul

Kushal_Chawda

try like below

test:

Mapping Load

invoice

invoiceamount

FROM invoiceamount_*.xls


T1:

LOAD *,

Applymap('test',invoice) as invoiceamount

from invoice_*.xls