Qlik Community

Ask a Question

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
On May 18th at 10AM EDT we will answer your QlikView questions live. REGISTER
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 (3)
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
Partner

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
Partner

How does your if() look?

berstrom
Contributor II
Contributor II
Author

Basically as yours I think:

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

 

jfkinspari
Partner
Partner

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'