Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Anonymous
Not applicable

Dynamic filter on MONTH

I am looking for a measure to compute Sales in a specyfic scenario.
When you look closer at my data set (call it Table1) you may notice 2018 is not closed yet.
The latest MONTH for 2018 is 4 whilst for 2017 I have full data for all 12 months.
I would like to compare 2018 Sales with analogical period of 2017
I mean, sales for 1-4 months of 2018 with sales for 1-4 months of 2017.
A trick is my Table1 is not fixed and will grow when new data for future months of 2018 will come.

Here is the data set:

 

Table1

YEARMONTHSALES
20171100
20172222
20173102
20174123
20175322
20176105
20177106
20178323
20179108
201710444
201711545
201712344
20181110
20182245
20183112
20184120


Here is what I have so far:

 

Sales Value = SUM(Table1[SALES])

and my current output:

 

Capture3.PNG

The current output is not exactly what I need, because I can not compare totals.
I can not compare sales for 12 month to 4 ones. It simply makes no sense.

This is my desirabe output:

 

Capture2.PNG

I want my measure to filter MONTHs for the latest year only and compare with the same period previous years.

I do not want any slicers for that. I do not want to show 5-12 months of 2017 because they have no counterparts in 2018.
Each time when Table1 is updated with latest month I would like to have it inclued in my output.


Hope it is clear. Hope someone can help

2 ACCEPTED SOLUTIONS

Just correcting the previous answer please do the following

 

Create a new column as 

Date = date(Table1[YEAR],Table1[MONTH],"01")

and another column as 

SalesYTD = var maxmonth = month(max(Table1[Date])) return if(Table1[MONTH] <= maxmonth ,Table1[SALES],0)

You can now use the column SalesYTD for your calculation

View solution in original post

Ashish_Mathur
Super User
Super User

Hi @Anonymous,

 

You may refer to my solution here.

 

Hope this helps.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

6 REPLIES 6
Ashish_Mathur
Super User
Super User

Hi @Anonymous,

 

You may refer to my solution here.

 

Hope this helps.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

Both ways works, tnx!

Ashish_Mathur
Super User
Super User

Hi,

 

I have solved it.  Please allow me some time to share my solution with you.

 

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
NipponSahore
Resolver II
Resolver II

you can recreate the measure as :

 

YTD_SUM =

maxmonth = month(max(date(year,month,"01"))) return 

 

calculate(sum(table1[sales]),month<=maxmonth)

Anonymous
Not applicable

Hi Nippon,

 

Didn't you miss VAR function in this expresion?

Anyway I get "The MAX function only accepts a column reference as an argument."

In fact YEAR and MONTH columns have no Date formattting.

(custom calendar)

Just correcting the previous answer please do the following

 

Create a new column as 

Date = date(Table1[YEAR],Table1[MONTH],"01")

and another column as 

SalesYTD = var maxmonth = month(max(Table1[Date])) return if(Table1[MONTH] <= maxmonth ,Table1[SALES],0)

You can now use the column SalesYTD for your calculation

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.