Skip to main content
Announcements
See why Qlik was named a Leader in the 2024 Gartner® Magic Quadrant™ for Data Integration Tools for the ninth year in a row: Get the report
cancel
Showing results for 
Search instead for 
Did you mean: 
berstrom
Contributor II
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 (2)
11 Replies
acsaggar
Contributor II
Contributor II

simply use the for loop variable?

e.g.

 

$(vSheet):

load F1,F2,F3

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

next;

 

acsaggar
Contributor II
Contributor II

also make sure you use noconcatenate if you want distinct tables

berstrom
Contributor II
Contributor II
Author

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

 

jfkinspari
Partner - Specialist
Partner - Specialist

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
Contributor II
Contributor II
Author

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?

jfkinspari
Partner - Specialist
Partner - Specialist

How does your if() look?

berstrom
Contributor II
Contributor II
Author

Basically as yours I think:

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

 

jfkinspari
Partner - Specialist
Partner - Specialist

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

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

berstrom
Contributor II
Contributor II
Author

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