<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Loops in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Loops/m-p/2538304#M108930</link>
    <description>&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;&lt;span class="lia-unicode-emoji" title=":star:"&gt;⭐&lt;/span&gt;What Are Loops in Qlik Sense?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In the Qlik Sense &lt;STRONG&gt;Data Load Editor&lt;/STRONG&gt;, a &lt;EM&gt;loop&lt;/EM&gt; is a control-flow structure that repeats a section of script multiple times.&lt;/P&gt;&lt;P&gt;Qlik's scripting language supports &lt;STRONG&gt;three types of loops&lt;/STRONG&gt;:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Loop Type&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR … NEXT&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Loop over numeric ranges, counters, lists, or field values&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;DO … LOOP&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Loop until a condition is met&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;WHILE modifier&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Add a repeat condition&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Why Use Loops? (Use Cases)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Loops are used in Qlik Sense for tasks that require repeated execution, such as:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Loading multiple similar files&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: loading monthly CSV files named Sales_2024_01.csv, Sales_2024_02.csv, etc.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Generating dates or time periods&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: iterating through years, months, days.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;API pagination (REST calls)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Loop until "nextPage" is empty.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Dynamic or iterative transformations&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: creating multiple calendars or loading repeated structures.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Building variable lists and metadata&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: iterating through table fields.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦WORKING EXAMPLE 1 — Single Loop&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;You have 12 monthly sales files:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_01.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_02.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;You want to load them all without writing 12 separate LOAD statements.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script — Single FOR Loop&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;FOR i = 1 to 12&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vMonth = Num(i, '00');&amp;nbsp;&amp;nbsp; // Formats 1 → 01, 2 → 02 …&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vFile&amp;nbsp; = 'lib://Data/Sales_2024_' &amp;amp; vMonth &amp;amp; '.csv';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM $(vFile)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (txt, utf8, embedded labels, delimiter is ',', msq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NEXT i;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How it works&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The loop runs 12 times.&lt;/LI&gt;&lt;LI&gt;Each time, Qlik builds a filename like Sales_2024_03.csv.&lt;/LI&gt;&lt;LI&gt;Data is appended into the &lt;STRONG&gt;Sales&lt;/STRONG&gt; table automatically.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦WORKING EXAMPLE 2 — Nested Loops (Loop in a Loop)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;You have sales files for &lt;STRONG&gt;multiple years and months&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2023_01.csv … Sales_2023_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_01.csv … Sales_2024_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2025_01.csv … Sales_2025_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;You want Qlik Sense to automatically load &lt;STRONG&gt;3 years × 12 months = 36 files&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script — Loop Inside a Loop&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;FOR year = 2023 to 2025&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR month = 1 to 12&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vMonth = Num(month, '00');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vFile&amp;nbsp; = 'lib://Data/Sales_' &amp;amp; year &amp;amp; '_' &amp;amp; vMonth &amp;amp; '.csv';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(year)&amp;nbsp;&amp;nbsp;&amp;nbsp; AS Year,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(vMonth)&amp;nbsp; AS Month&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM $(vFile)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (txt, utf8, embedded labels, delimiter is ',', msq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEXT month;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NEXT year;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How it works&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Outer loop iterates through &lt;STRONG&gt;years (2023 → 2025)&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Inner loop iterates through &lt;STRONG&gt;months (01 → 12)&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Every combination generates a file path like:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Sales_2024_07.csv&lt;/P&gt;&lt;P&gt;Sales_2025_12.csv&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Each load appends into &lt;STRONG&gt;one final Sales table&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦 Additional Loop Types in Qlik (for completeness)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;DO…LOOP UNTIL&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;LET i = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRACE Loop iteration $(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET i = i + 1;&lt;/P&gt;&lt;P&gt;LOOP UNTIL i &amp;gt; 5;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;FOR EACH (files, variables, inline lists)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;FOR EACH file IN FileList('lib://Data/*.csv')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD * FROM $(file);&lt;/P&gt;&lt;P&gt;NEXT file;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-unicode-emoji" title=":direct_hit:"&gt;🎯&lt;/span&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Loop Type&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;When to Use&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR … NEXT&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Numeric ranges, counters, dates&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR EACH&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Iterating over file lists or variables&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;DO … LOOP UNTIL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Continue until a condition is met&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Nested Loops&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Multi-dimension iteration (years × months etc.)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Loops are extremely useful in &lt;STRONG&gt;dynamic data loading&lt;/STRONG&gt;, eliminating repetitive scripts and making Qlik apps maintainable.&lt;/P&gt;</description>
    <pubDate>Fri, 05 Dec 2025 15:16:50 GMT</pubDate>
    <dc:creator>seanbruton</dc:creator>
    <dc:date>2025-12-05T15:16:50Z</dc:date>
    <item>
      <title>Loops</title>
      <link>https://community.qlik.com/t5/App-Development/Loops/m-p/2538281#M108926</link>
      <description>&lt;P&gt;what are loops in Qlik Sense and explain with example how it works?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2025 13:16:44 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loops/m-p/2538281#M108926</guid>
      <dc:creator>Vikash938</dc:creator>
      <dc:date>2025-12-05T13:16:44Z</dc:date>
    </item>
    <item>
      <title>Re: Loops</title>
      <link>https://community.qlik.com/t5/App-Development/Loops/m-p/2538304#M108930</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;&lt;span class="lia-unicode-emoji" title=":star:"&gt;⭐&lt;/span&gt;What Are Loops in Qlik Sense?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In the Qlik Sense &lt;STRONG&gt;Data Load Editor&lt;/STRONG&gt;, a &lt;EM&gt;loop&lt;/EM&gt; is a control-flow structure that repeats a section of script multiple times.&lt;/P&gt;&lt;P&gt;Qlik's scripting language supports &lt;STRONG&gt;three types of loops&lt;/STRONG&gt;:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Loop Type&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR … NEXT&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Loop over numeric ranges, counters, lists, or field values&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;DO … LOOP&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Loop until a condition is met&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;WHILE modifier&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Add a repeat condition&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Why Use Loops? (Use Cases)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Loops are used in Qlik Sense for tasks that require repeated execution, such as:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Loading multiple similar files&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: loading monthly CSV files named Sales_2024_01.csv, Sales_2024_02.csv, etc.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Generating dates or time periods&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: iterating through years, months, days.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;API pagination (REST calls)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Loop until "nextPage" is empty.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Dynamic or iterative transformations&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: creating multiple calendars or loading repeated structures.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Building variable lists and metadata&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example: iterating through table fields.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦WORKING EXAMPLE 1 — Single Loop&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;You have 12 monthly sales files:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_01.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_02.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;You want to load them all without writing 12 separate LOAD statements.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script — Single FOR Loop&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;FOR i = 1 to 12&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vMonth = Num(i, '00');&amp;nbsp;&amp;nbsp; // Formats 1 → 01, 2 → 02 …&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vFile&amp;nbsp; = 'lib://Data/Sales_2024_' &amp;amp; vMonth &amp;amp; '.csv';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM $(vFile)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (txt, utf8, embedded labels, delimiter is ',', msq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NEXT i;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How it works&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The loop runs 12 times.&lt;/LI&gt;&lt;LI&gt;Each time, Qlik builds a filename like Sales_2024_03.csv.&lt;/LI&gt;&lt;LI&gt;Data is appended into the &lt;STRONG&gt;Sales&lt;/STRONG&gt; table automatically.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦WORKING EXAMPLE 2 — Nested Loops (Loop in a Loop)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;You have sales files for &lt;STRONG&gt;multiple years and months&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2023_01.csv … Sales_2023_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2024_01.csv … Sales_2024_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Sales_2025_01.csv … Sales_2025_12.csv&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;You want Qlik Sense to automatically load &lt;STRONG&gt;3 years × 12 months = 36 files&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script — Loop Inside a Loop&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;FOR year = 2023 to 2025&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR month = 1 to 12&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vMonth = Num(month, '00');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET vFile&amp;nbsp; = 'lib://Data/Sales_' &amp;amp; year &amp;amp; '_' &amp;amp; vMonth &amp;amp; '.csv';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(year)&amp;nbsp;&amp;nbsp;&amp;nbsp; AS Year,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(vMonth)&amp;nbsp; AS Month&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM $(vFile)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (txt, utf8, embedded labels, delimiter is ',', msq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEXT month;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;NEXT year;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How it works&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Outer loop iterates through &lt;STRONG&gt;years (2023 → 2025)&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Inner loop iterates through &lt;STRONG&gt;months (01 → 12)&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Every combination generates a file path like:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Sales_2024_07.csv&lt;/P&gt;&lt;P&gt;Sales_2025_12.csv&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Each load appends into &lt;STRONG&gt;one final Sales table&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;🟦 Additional Loop Types in Qlik (for completeness)&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;DO…LOOP UNTIL&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;LET i = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRACE Loop iteration $(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LET i = i + 1;&lt;/P&gt;&lt;P&gt;LOOP UNTIL i &amp;gt; 5;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;FOR EACH (files, variables, inline lists)&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;FOR EACH file IN FileList('lib://Data/*.csv')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOAD * FROM $(file);&lt;/P&gt;&lt;P&gt;NEXT file;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-unicode-emoji" title=":direct_hit:"&gt;🎯&lt;/span&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Loop Type&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;When to Use&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR … NEXT&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Numeric ranges, counters, dates&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;FOR EACH&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Iterating over file lists or variables&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;DO … LOOP UNTIL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Continue until a condition is met&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Nested Loops&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Multi-dimension iteration (years × months etc.)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Loops are extremely useful in &lt;STRONG&gt;dynamic data loading&lt;/STRONG&gt;, eliminating repetitive scripts and making Qlik apps maintainable.&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2025 15:16:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loops/m-p/2538304#M108930</guid>
      <dc:creator>seanbruton</dc:creator>
      <dc:date>2025-12-05T15:16:50Z</dc:date>
    </item>
  </channel>
</rss>

