<?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: Group if in Qlik Automate</title>
    <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483649#M4810</link>
    <description>&lt;P&gt;With sort-suffixes of asc (it's the default) and desc you could adjust the sort-order, like:&lt;/P&gt;
&lt;P&gt;...&amp;nbsp;&lt;SPAN&gt;resident X order by User asc, Time &lt;STRONG&gt;desc&lt;/STRONG&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Depending on the real complexity of your requirement you may also add the From/To fields to the sort-order and/or combining some fields in beforehand (to simplify the sorting respectively sometimes are sorting-challenges only solvable with it).&lt;/P&gt;
&lt;P&gt;Further possible and occasionally needed is to run such sorting multiple times forward and backwards with more (nested) if-loops to flag a multi-level ordering and on top of it the final grouping/accumulation is applied. If so are several simple steps after another easier to develop and to maintain as doing everything within a single load.&lt;/P&gt;</description>
    <pubDate>Thu, 26 Sep 2024 06:13:08 GMT</pubDate>
    <dc:creator>marcus_sommer</dc:creator>
    <dc:date>2024-09-26T06:13:08Z</dc:date>
    <item>
      <title>Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483337#M4806</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I have the following table:&lt;/P&gt;
&lt;TABLE width="415"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="77"&gt;Id_viaje&lt;/TD&gt;
&lt;TD width="81"&gt;Id_User&lt;/TD&gt;
&lt;TD width="89"&gt;From&lt;/TD&gt;
&lt;TD width="89"&gt;To&lt;/TD&gt;
&lt;TD width="79"&gt;Time&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;11:14:00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;11:38:12&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;11:53:52&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;17:36:05&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;17:59:03&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;18:13:25&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you can see, there are travels made in the morning, and others made in the afternoon, What I need is to group those travels made one after another with a difference in time no longer than 30 minutes to consider them as one long travel from A to D. At the end there would be to long travels one made in the morning and other made in the adternoon, both from A to D.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is important to note that if the individual travel that was done with a difference loger than 30 minutes can not be considered as part of a group of travels but as an individual one.&lt;/P&gt;
&lt;TABLE width="519"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="77"&gt;Id_viaje&lt;/TD&gt;
&lt;TD width="81"&gt;Id_User&lt;/TD&gt;
&lt;TD width="89"&gt;From&lt;/TD&gt;
&lt;TD width="89"&gt;To&lt;/TD&gt;
&lt;TD width="79"&gt;Time&lt;/TD&gt;
&lt;TD width="104"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;11:14:00&lt;/TD&gt;
&lt;TD&gt;Individual&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;13:00:00&lt;/TD&gt;
&lt;TD&gt;Individual&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;15:00:00&lt;/TD&gt;
&lt;TD&gt;Individual&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;17:36:05&lt;/TD&gt;
&lt;TD rowspan="3"&gt;Group&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;17:59:03&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;18:13:25&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Sep 2024 23:29:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483337#M4806</guid>
      <dc:creator>alexdelagarza</dc:creator>
      <dc:date>2024-09-24T23:29:20Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483501#M4808</link>
      <description>&lt;P&gt;It could be done with interrecord-functions within an appropriate sorted resident-load, here a simplified example as starting point:&lt;/P&gt;
&lt;P&gt;load *, if(TimeDiff &amp;lt;= 1/24/60*30, 'Group', 'individual') as Flag;&lt;BR /&gt;load User, Time, if(User = previous(User), Time - previous(Time), null()) as TimeDiff&lt;BR /&gt;resident X order by User, Time;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Sep 2024 12:20:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483501#M4808</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-09-25T12:20:55Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483608#M4809</link>
      <description>&lt;P&gt;Hi Marcus,&lt;/P&gt;
&lt;P&gt;I see in this expression that you're using previous(), but, what if I want to evaluate not the previous record but the following. Since my first travel is From: A To: B, my start point is "A", and I need to know if the next travel which is From: B To: C is part of the same travel, and obviously the evaluation will continue to the following travels such as the third one wich is From: C To: D.&lt;/P&gt;
&lt;P&gt;Best&lt;/P&gt;</description>
      <pubDate>Wed, 25 Sep 2024 22:55:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483608#M4809</guid>
      <dc:creator>alexdelagarza</dc:creator>
      <dc:date>2024-09-25T22:55:09Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483649#M4810</link>
      <description>&lt;P&gt;With sort-suffixes of asc (it's the default) and desc you could adjust the sort-order, like:&lt;/P&gt;
&lt;P&gt;...&amp;nbsp;&lt;SPAN&gt;resident X order by User asc, Time &lt;STRONG&gt;desc&lt;/STRONG&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Depending on the real complexity of your requirement you may also add the From/To fields to the sort-order and/or combining some fields in beforehand (to simplify the sorting respectively sometimes are sorting-challenges only solvable with it).&lt;/P&gt;
&lt;P&gt;Further possible and occasionally needed is to run such sorting multiple times forward and backwards with more (nested) if-loops to flag a multi-level ordering and on top of it the final grouping/accumulation is applied. If so are several simple steps after another easier to develop and to maintain as doing everything within a single load.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Sep 2024 06:13:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483649#M4810</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-09-26T06:13:08Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483707#M4812</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/116389"&gt;@alexdelagarza&lt;/a&gt;&amp;nbsp; In below example what will be the output.&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="519"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="77"&gt;d_viaje&lt;/TD&gt;
&lt;TD width="81"&gt;Id_User&lt;/TD&gt;
&lt;TD width="89"&gt;From&lt;/TD&gt;
&lt;TD width="89"&gt;To&lt;/TD&gt;
&lt;TD width="79"&gt;Time&lt;/TD&gt;
&lt;TD width="104"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;11:14:00&lt;/TD&gt;
&lt;TD&gt;Individual&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;13:00:00&lt;/TD&gt;
&lt;TD&gt;Individual&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;13:25:00&lt;/TD&gt;
&lt;TD&gt;Group?&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Thu, 26 Sep 2024 09:24:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2483707#M4812</guid>
      <dc:creator>Kushal_Chawda</dc:creator>
      <dc:date>2024-09-26T09:24:56Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484132#M4833</link>
      <description>&lt;P&gt;Hi Marcus,&lt;/P&gt;
&lt;P&gt;Following your indications, I did this:&lt;/P&gt;
&lt;P&gt;Timediff:&lt;BR /&gt;load *, if(TimeDiff &amp;lt;= 1/24/60*30, 'Group', 'individual') as Flag;&lt;BR /&gt;load Id_User, &lt;BR /&gt;Time, &lt;BR /&gt;if(Id_User = previous(Id_User), previous(Time) - Time, null()) as TimeDiff,&lt;BR /&gt;If(Id_User = previous(Id_User), previous(Id_viaje), null()) as Next_travel&lt;BR /&gt;resident Datos order by Id_User, Time desc;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And this is the output:&lt;/P&gt;
&lt;TABLE width="1202"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="77"&gt;Id_viaje&lt;/TD&gt;
&lt;TD width="77"&gt;Id_User&lt;/TD&gt;
&lt;TD width="55"&gt;From&lt;/TD&gt;
&lt;TD width="50"&gt;To&lt;/TD&gt;
&lt;TD width="79"&gt;Time&lt;/TD&gt;
&lt;TD width="72"&gt;Flag&lt;/TD&gt;
&lt;TD width="107"&gt;TimeDiff&lt;/TD&gt;
&lt;TD width="84"&gt;Next_travel&lt;/TD&gt;
&lt;TD width="601"&gt;Comments&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;11:14:00&lt;/TD&gt;
&lt;TD&gt;Group&lt;/TD&gt;
&lt;TD&gt;00:24:12&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;Ok&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;17:36:05&lt;/TD&gt;
&lt;TD&gt;Group&lt;/TD&gt;
&lt;TD&gt;00:22:58&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;Ok&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;11:38:12&lt;/TD&gt;
&lt;TD&gt;Group&lt;/TD&gt;
&lt;TD&gt;00:15:40&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;Ok&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;17:59:03&lt;/TD&gt;
&lt;TD&gt;Group&lt;/TD&gt;
&lt;TD&gt;00:14:22&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;Ok&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;11:53:52&lt;/TD&gt;
&lt;TD&gt;individual&lt;/TD&gt;
&lt;TD&gt;05:42:13&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;TimeDiff and Next_travel comes from Id_viaje = 2 but they are not related, answer should be null.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;U123&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;18:13:25&lt;/TD&gt;
&lt;TD&gt;individual&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Ok&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please check my comments, also Flag column is not working well I think, but probably it won't be necessary at least by now.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Sep 2024 23:01:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484132#M4833</guid>
      <dc:creator>alexdelagarza</dc:creator>
      <dc:date>2024-09-27T23:01:47Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484133#M4834</link>
      <description>&lt;P&gt;Hi Kushal,&lt;/P&gt;
&lt;P&gt;I just posted the table.&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 27 Sep 2024 23:06:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484133#M4834</guid>
      <dc:creator>alexdelagarza</dc:creator>
      <dc:date>2024-09-27T23:06:09Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484157#M4837</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/116389"&gt;@alexdelagarza&lt;/a&gt;&amp;nbsp; If from A-&amp;gt;B and B-&amp;gt;C time diff is 25 Mins but C-&amp;gt;D 1 hour the for all the travel we need to Flag Group or two Group &amp;amp; One Individual?&lt;/P&gt;</description>
      <pubDate>Sat, 28 Sep 2024 18:20:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484157#M4837</guid>
      <dc:creator>Kushal_Chawda</dc:creator>
      <dc:date>2024-09-28T18:20:56Z</dc:date>
    </item>
    <item>
      <title>Re: Group if</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484231#M4838</link>
      <description>&lt;P&gt;Like hinted above you may need some more measurements and/or considering a higher complexity. The main-logic behind the use of interrecord-functions like previous/peek is quite simple:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;query a current key against the previous one&lt;/LI&gt;
&lt;LI&gt;accumulate a previous value with the current value respectively calculate any offset between them&lt;/LI&gt;
&lt;LI&gt;(optional) deriving any flags or categories from the results&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In many scenarios it's not really complicated even if there exists a suitable key and/or the sorting-field else if it needs to be created by n steps in beforehand in which multiple fields are (conditionally) combined to serve the purpose.&lt;/P&gt;
&lt;P&gt;In your case it seems that you need to order the locations and the users before you compares the time-offsets. I don't know how complex this might be and if it's sensible to implement it within a single logic. Like above mentioned are n simple steps often easier as one complex one which means it might be more practically to include n parallel check-routines and the final categorizing is performant against all results.&lt;/P&gt;
&lt;P&gt;More simple expressed: one logic may compares the offsets and another checks for any exceptions with a simple TRUE/FALSE flag and everything with FALSE is FALSE/NULL or whatever is suitable.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2024 05:55:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Group-if/m-p/2484231#M4838</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2024-09-30T05:55:15Z</dc:date>
    </item>
  </channel>
</rss>

