Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi, so i'm trying to create column with flag, 1/0 to filter on dates.
The dates i'm looking for are the last 3 quarters to date.
So today being 2024-01-11 it should return 1 for dates between 2023-04-01 and 2024-01-11.
I've created this, the start date is fine but the end date give dates past 2024-01-11
Solved! Go to Solution.
That worked! I only had to add Datevalue() to my date dim column, see below. Thanks so much!
thats fine, how about the issue with the end date
If you want rolling three quarters you use
GENERATESERIES(EDATE(TODAY(),-9)+1,TODAY())
I dropped that into my full calculation and only got 0's, can you correct?
Don't drop it in, replace your code completely.
Rolling 3 Quarters = GENERATESERIES(EDATE(TODAY(),-9)+1,TODAY())
or use it as a TREATAS filter
ok, I tried that and it threw an error - 'Table of multiple values was supplied where a single was expected'
if([CAL_DATE_YR_MTH_DAY_E] in GENERATESERIES(EDATE(TODAY(),-9)+1,TODAY()),1,0)
or, simpler
if([CAL_DATE_YR_MTH_DAY_E]>EDATE(TODAY(),-9),1,0)
This could work but theres a conflict between datatypes, date and text. Can I convert one here in the calucation?
Pick the date column from your calendar table, or use DATEVALUE()
ok, so using this:
You need previous three quarters and current quarter to date?
Yes, that's correct.
Rolling prev 3 Quarters and current QTD =
var q = QUARTER(EDATE(TODAY(),-9))
var y = YEAR(EDATE(TODAY(),-9))
return GENERATESERIES(DATE(y,q*3-2,1),TODAY())
Hi, I think we are super close, now an error is thrown, I added your column and also broke it down to see variable values, see error below.
"a table of multiple values was supplied where a single value was expected"
Please be more precise in your requirement.
Column Flag For Rolling prev 3 Quarters and current QTD =
var q = QUARTER(EDATE(TODAY(),-9))
var y = YEAR(EDATE(TODAY(),-9))
return if((Date_Dim[CAL_DATE_YR_MTH_DAY_E]) >= DATE(y,q*3-2,1),1,0)
Hi, sadly this doesn't work either, it shows the correct start date of 2023-04-01 but the end date is way into the future - in fact all the was to the end of our date dim, where it should stop at todays date, 2024-01-12.
.
Column Flag For Rolling prev 3 Quarters and current QTD =
var q = QUARTER(EDATE(TODAY(),-9))
var y = YEAR(EDATE(TODAY(),-9))
return if([CAL_DATE_YR_MTH_DAY_E]) >= DATE(y,q*3-2,1) && [CAL_DATE_YR_MTH_DAY_E]<= TODAY(),1,0)
hmm, something is missing, throwing errors.
Column Flag For Rolling prev 3 Quarters and current QTD =
var q = QUARTER(EDATE(TODAY(),-9))
var y = YEAR(EDATE(TODAY(),-9))
return if([CAL_DATE_YR_MTH_DAY_E] >= DATE(y,q*3-2,1) && [CAL_DATE_YR_MTH_DAY_E]<= TODAY(),1,0)
That worked! I only had to add Datevalue() to my date dim column, see below. Thanks so much!
That is four quarters.
User | Count |
---|---|
25 | |
12 | |
8 | |
6 | |
6 |
User | Count |
---|---|
26 | |
12 | |
11 | |
10 | |
6 |