Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Announcements
BARC’s The BI Survey 19 makes it official. BI users love Qlik. GET REPORT
berstrom
New Contributor II

Assign table names in a for loop

Hey! Is there a possibility to assign table names in a for loop that looks like follows:

for each vSheet in 'A', 'B', 'C'

[Table Name]:

load F1, F2, F3

from [data.xlsx]
(ooxml, embedded labels, table is $(vSheet));

next;

wheras the table names should be different for each of the 3 uploads?

Best regards

 

Labels (3)
11 Replies
acsaggar
New Contributor II

Re: Assign table names in a for loop

simply use the for loop variable?

e.g.

 

$(vSheet):

load F1,F2,F3

from [data.xlsx]
(ooxml, embedded labels, table is $(vSheet));

next;

 

acsaggar
New Contributor II

Re: Assign table names in a for loop

also make sure you use noconcatenate if you want distinct tables

berstrom
New Contributor II

Re: Assign table names in a for loop

Thanks for the answer, but is there also a way in using a table name other than the loop variable?

 

Highlighted
Partner
Partner

Re: Assign table names in a for loop

Sure, you could calculate the label in a variable, and use that.

e.g. LET TableLabel = IF($(vSheet) = 'A', 'New Label', 'Label for B and C')

$(TableLabel):
Load...

 

berstrom
New Contributor II

Re: Assign table names in a for loop

Thanks for the answer, but now I get for all tables the new name that I assigned to A even for B and C. The table names look like that:

'NewLabel', 'NewLabel-1', 'NewLabel-2'

Any idea why I the IF statement doesn't work as required?

Partner
Partner

Re: Assign table names in a for loop

How does your if() look?

berstrom
New Contributor II

Re: Assign table names in a for loop

Basically as yours I think:

if($(vSheet) = 'A', 'NewA', 'NewBC')

 

Partner
Partner

Re: Assign table names in a for loop

The variable vSheet does might not need the $() expansion.

if(vSheet = 'A', 'NewA', 'NewBC')

berstrom
New Contributor II

Re: Assign table names in a for loop

This results in the same problem as before with the difference that its now happening with 'NewBC'