<?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: Semi Additive Aggregation in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457075#M484241</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There could be a simpler way to do this, but my (quick) solution is the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Don't use a calculated dimension. Define Month in the script.&lt;/P&gt;&lt;P&gt;2) Pad missing values (in the script) by using Peek():&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ============================&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RawData: Load * From Source;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CartesianProduct: Load distinct Month Resident RawData;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Join Load distinct Department Resident RawData;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Join (RawData) Load * Resident CartesianProduct;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data: &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Load *, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If(IsNull(Headcount) and Department=Peek(Department),Peek(CorrectedHeadcount),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Headcount) as CorrectedHeadcount&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident RawData Order By Department, Month;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drop Table RawData, CartesianProduct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ============================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) Use the following calculation in the chart:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If( Count(distinct Month)=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sum(CorrectedHeadcount),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If( Count(distinct Department)=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FirstSortedValue(Aggr(sum(CorrectedHeadcount),Month,Department),-Month),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sum(Aggr(FirstSortedValue(Aggr(sum(CorrectedHeadcount),Month,Department),-Month),Department))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HIC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Oct 2013 14:01:51 GMT</pubDate>
    <dc:creator>hic</dc:creator>
    <dc:date>2013-10-15T14:01:51Z</dc:date>
    <item>
      <title>Semi Additive Aggregation</title>
      <link>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457074#M484240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Qlikies,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to create &lt;STRONG&gt;ONE &lt;/STRONG&gt;expression to calculate an Headcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It would be nice if the expression could:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;show the Sum(Headcount) over any dimension other than Time. &lt;/LI&gt;&lt;LI&gt;show the Last value of Headcount over time dimension.&lt;/LI&gt;&lt;LI&gt;repeat the Last non null value for each month.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See example attached.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help would be greatly appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Jun 2013 17:12:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457074#M484240</guid>
      <dc:creator>1000qlik</dc:creator>
      <dc:date>2013-06-10T17:12:15Z</dc:date>
    </item>
    <item>
      <title>Re: Semi Additive Aggregation</title>
      <link>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457075#M484241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There could be a simpler way to do this, but my (quick) solution is the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Don't use a calculated dimension. Define Month in the script.&lt;/P&gt;&lt;P&gt;2) Pad missing values (in the script) by using Peek():&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ============================&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RawData: Load * From Source;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CartesianProduct: Load distinct Month Resident RawData;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Join Load distinct Department Resident RawData;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Join (RawData) Load * Resident CartesianProduct;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data: &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Load *, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If(IsNull(Headcount) and Department=Peek(Department),Peek(CorrectedHeadcount),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Headcount) as CorrectedHeadcount&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident RawData Order By Department, Month;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drop Table RawData, CartesianProduct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ============================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) Use the following calculation in the chart:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If( Count(distinct Month)=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sum(CorrectedHeadcount),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If( Count(distinct Department)=1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FirstSortedValue(Aggr(sum(CorrectedHeadcount),Month,Department),-Month),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sum(Aggr(FirstSortedValue(Aggr(sum(CorrectedHeadcount),Month,Department),-Month),Department))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HIC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Oct 2013 14:01:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457075#M484241</guid>
      <dc:creator>hic</dc:creator>
      <dc:date>2013-10-15T14:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: Semi Additive Aggregation</title>
      <link>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457076#M484242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Henric,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your solution that does provide the correct results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do have two comments:&lt;/P&gt;&lt;P&gt;1/ In such a case, I would love to be able to create the chart without having to change the data model.&lt;/P&gt;&lt;P&gt;2/ I'm affraid this formula might not work very well with big data volumes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It would be great if we could have semi-additive functions built in. I know it does exist in SQL Server for example.&lt;/P&gt;&lt;P&gt;Do you think there would be any chance to have this in future versions?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robert&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Oct 2013 14:38:41 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Semi-Additive-Aggregation/m-p/457076#M484242</guid>
      <dc:creator>1000qlik</dc:creator>
      <dc:date>2013-10-17T14:38:41Z</dc:date>
    </item>
  </channel>
</rss>

