Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Binay_Sharma
Contributor III
Contributor III

Calculating Measures as per Monthly/Quaterly/Yearly selection made on Filter Pane.

Hello, First of all I am a novice, but I have decided to learn Qlik,

For many of you, this sounds simple question, but I have spent enough time on this and I feel that it is time to seek for help. 

I am trying to use the filter pane so that 
Gross fees is calculated as per date/month/quarter/year -- whatever range user wants to select. 

Binay_Sharma_0-1617850751277.png

 

For example if I select Year 2021 and Quarter as Q1 I should get the sum of gross for all the months  that falls on Quarter 1 of year 2021.

 

Currently, the way the app is behaving is, the sum is coming as total cumulative sum (here the sum of  #uvGrossFee), irrespective of the year or quarter I select. 

If I select Year 2019 -  I am getting gross as 38.83 M

If I select Year 2020- I am getting gross as 88 M

and If I select 2021 - I am getting 97.36 Million.

Looks like value is getting cumulative - 96M. For  2021, there are only 2 months of data and the value should come around 8 M. 

Can someone point me what adjustment I should make on my set analysis?

 

I tried to calculate the Gross fees as below. Tried some other approaches as well. 

sum({<[_Acct_Appl_Code_Flag] ={1},[Cycle End Date]={'>=$(=MonthStart(Min([Cycle End Date])))'} >} [#uvGross Fee])

or 
sum({<_CMTD_Flag ={1},[_Acct_Appl_Code_Flag] ={1} >} [#uvGross Fee])

 

For reference, I have created a  Master Calendar table as below and I am fetching Month, Quarter, year from this table. 

Temp_Dates:
LOAD
FieldValue('Cycle End Date', RecNo()) as "Cycle End Date"
AutoGenerate
FieldValueCount('Cycle End Date')
;

Join (Temp_Dates)
load

Date(floor(MonthEnd(AddMonths(MinDate, IterNo() -1)))) as [As Of Date]
WHILE
Date(floor(MonthEnd(AddMonths(MinDate, IterNo() -1)))) <= Date(floor(MonthEnd(MaxDate)))
;

load
Date(floor(MonthEnd(Min("Cycle End Date")))) as MinDate,
Date(floor(MonthEnd(Max("Cycle End Date")))) as MaxDate
resident
Temp_Dates
;

AsOfDate:
load
"Cycle End Date",
[As Of Date] ,
Year([As Of Date] ) AS Year,
Month([As Of Date] ) AS Month,
'Q' & ceil(month([As Of Date] ) / 3) AS Quarter,
Year([As Of Date] ) &'-'& 'Q' & ceil(month([As Of Date] ) / 3)
AS QuarterYear,

Date([As Of Date] , 'MMM-YYYY') AS MonthYear,

InMonth("Cycle End Date", [As Of Date] , 0) * -1 AS _CMTD_Flag,
InMonth("Cycle End Date", [As Of Date] , -12) * -1 AS _PMTD_Flag,
InMonth("Cycle End Date", [As Of Date] , -1) * -1 AS _PM_Flag,

InYearToDate("Cycle End Date", [As Of Date] , 0) * -1 AS _CYTD_Flag,
InYearToDate("Cycle End Date", [As Of Date] , -1) * -1 AS _PYTD_Flag,
(AddMonths("Cycle End Date", 12) > [As Of Date] ) * -1 AS _R12_Flag,
(AddMonths("Cycle End Date", 12) <= [As Of Date] ) *
(AddMonths("Cycle End Date", 24) > [As Of Date] ) AS _PR12_Flag,

(AddMonths("Cycle End Date", 6) > [As Of Date] ) * -1 AS _R6_Flag,

(AddMonths("Cycle End Date", 6) <= [As Of Date] ) *
(AddMonths("Cycle End Date", 12) > [As Of Date] ) AS _PR6_Flag,

(AddMonths("Cycle End Date", 12) <= [As Of Date] ) *
(AddMonths("Cycle End Date", 18) > [As Of Date] ) AS _PYR6_Flag,

(AddMonths("Cycle End Date", 3) > [As Of Date] ) * -1 AS _R3_Flag,

(AddMonths("Cycle End Date", 3) <= [As Of Date] ) *
(AddMonths("Cycle End Date", 6) > [As Of Date] ) AS _PR3_Flag,

(AddMonths("Cycle End Date", 12) <= [As Of Date] ) *
(AddMonths("Cycle End Date", 15) > [As Of Date] ) AS _PYR3_Flag

resident
Temp_Dates
where
"Cycle End Date"<=[As Of Date]
;

drop table Temp_Dates;

2 Replies
Dalton_Ruer
Support
Support

Your Year Month field seems to be messed up. Although you filtered to 2021 it is showing them all. 

Binay_Sharma
Contributor III
Contributor III
Author

Hi Dalton, That is why I was seeking help.

From further research, what I have found so far is, As of Date solution requires that a single As of Date should be selected at all times.  I am still trying to figure out the solution for this.