Qlik Community

Qlik Sense App Development

Discussion board where members can learn more about Qlik Sense App Development and Usage.

ravishinge
Contributor

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
MVP
MVP

Re: Create For loop for 36 Months

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.

11 Replies
MVP
MVP

Re: Create For loop for 36 Months

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.

ravishinge
Contributor

Re: Create For loop for 36 Months

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

MVP
MVP

Re: Create For loop for 36 Months

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....

ravishinge
Contributor

Re: Create For loop for 36 Months

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

MVP
MVP

Re: Create For loop for 36 Months

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

MVP
MVP

Re: Create For loop for 36 Months

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...

ravishinge
Contributor

Re: Create For loop for 36 Months

Yes Yes one month difference .

ravishinge
Contributor

Re: Create For loop for 36 Months

Thanks ,

Could you please Use FOR LOOP ?

MVP
MVP

Re: Create For loop for 36 Months

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.

Community Browser