Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Create For loop for 36 Months

Hello Guys,

Could you please let me know how do I create a

For loop for 36 months .

Thanks,

Ravi

1 Solution

Accepted Solutions
petter
Partner - Champion III
Partner - Champion III

In a load script you can create a FOR loop like this:

FOR month=1 TO 36

   LOAD

        AddMonths(MakeDate(2018,1,1),month-1) AS Month;

        ......

   AUTOGENERATE 1;

NEXT

In a visualization you can use the ValueLoop()-function to generate within an expression:

AddMonths(MakeDate(2018,1,1), ValueLoop(0,35))     // to be used for instance in a calculated dimension.

View solution in original post

11 Replies
petter
Partner - Champion III
Partner - Champion III

In a load script you can create a FOR loop like this:

FOR month=1 TO 36

   LOAD

        AddMonths(MakeDate(2018,1,1),month-1) AS Month;

        ......

   AUTOGENERATE 1;

NEXT

In a visualization you can use the ValueLoop()-function to generate within an expression:

AddMonths(MakeDate(2018,1,1), ValueLoop(0,35))     // to be used for instance in a calculated dimension.

Anonymous
Not applicable
Author

Thanks for replying Petter ,

FOR month=1 TO 36

I have to use column name like Duration. How do I use this column DURATION instead of 1 to 36 . ?

DURATION column has value of 36 . So I want For loop starting from 1st month to 36th month.

So  I need something  as mentioned below .

FOR x=1 to "DURATION"


Thanks,

Ravi

petter
Partner - Champion III
Partner - Champion III

So the Duration belongs to a table with many rows right? Do you want 36 times the number of rows? Need to know more about the table structure you have and what kind of table structure you need to produce....

Anonymous
Not applicable
Author

hello ,

here is my code :-

[DataNew1]:

LOAD

    "Product Line",

    "Impact month",

    "Duration"

FROM [lib://AttachedFiles/Complexity_Mix.xlsx]

(ooxml, embedded labels, header is 1 lines, table is Model);

FOR month=1 TO 36  (Here 36 is the value in Column "Duration" ) , This value may change so I wanted it to be dynamic.

So I want For loop starting from 1st month to 36th month.

FOR x=1 to "DURATION" ,   I want to use column name in the FOR LOOP  not the numbers .


Thanks,

Ravi

petter
Partner - Champion III
Partner - Champion III

So what will be the variation for each of the 36 months? One monts difference? Anything else?

petter
Partner - Champion III
Partner - Champion III

You can use while to iterate a number of times and produce many rows:

[DataNew1]:

LOAD

    "Product Line",

    AddMonths("Impact month",IterNo()-1) AS Month,

    "Duration"

FROM [lib://AttachedFiles/Complexity_Mix.xlsx]

(ooxml, embedded labels, header is 1 lines, table is Model)

WHILE IterNo()<=Duration;

I assume here that "Impact month" is a real date and not just a mont number or month name...

Anonymous
Not applicable
Author

Yes Yes one month difference .

Anonymous
Not applicable
Author

Thanks ,

Could you please Use FOR LOOP ?

petter
Partner - Champion III
Partner - Champion III

That's exactly what I did in my very first response. If you tell us what your source table and result table should look luke it would be easier to give a good suggestion or solution.