Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

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?

 

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')

 

Highlighted
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'