Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Hello,
I'm trying to create a measure where I calculate revenue recognized on a sales order in specific timeframes (see below table). I'm using two measures calculating revenue then % of revenue against total sold.
My issue is this measure works when I have the data filtered to one sales order but when I try to apply to my project type (groups) I get the contiguous selection error. It specifically references the first measure that sums the revenue by period, "Calculation error in measure 'Measure'[3 months]: Function 'DATEADD' expects a contiguous selection...".
It seems to me that the measure is not aggregating and I can't figure out how to write it to do so. I am referencing two different tables 'Bookings' and 'Revenue' in my variable and my return. Both of these tables have their own date table which may be the issue.
Goal
Percent Revenue Converted by Period | ||||
Project Type | Total Order Value | 3 month | 6 month | 9 month |
Net New | 119,025,045 | 32% | 44% | 89% |
Upgrade | 6,749,000 | 42% | 68% | 74% |
Add-on | 61,386,741 | 50% | 59% | 92% |
Other | 3,253,579 | 60% | 79% | 94% |
Currently DAX is set up as follows:
Revenue:
Order Number | Total Order Value | 3 Month | 6 Month | 9 Month |
30033566 | $274,859 | 28.59% | 46.42% | 74.95% |
change this part
VAR threemonths = DATEADD(Bookings[Order Intake Date],3,MONTH)
to run against the Bookings' Dates table instead.
VAR threemonths = DATEADD(Date_Booked[Date],3,MONTH)
There was a change but now my error is "a table of multiple values was supplied where a single value was expected".
Check your code. Especially this part
'Measure'[3 months]
looks suspicious.
General guidance is that your data model should contain a calendar/dates table that covers your fact date range (plus a year before) and that has contiguous dates. You'll also want to mark the table as a Date table to avoid wasting model memory.
Then run the DATEADD() against the dates table.
If you don't want to do that you can use EDATE() for month math. It doesn't care about contiguity (sp?)
EDATE, yes that's the one!
Just want an equivalent of DATEADD in SQL, albeit will only work for months, but that's just what I need and without all the fuss.
Thanks @lbendlin , both fact tables do have their own date tables and are marked as such. DAX is the same for both date tables, the only thing I notice is I don't have a prior year but I can add it. I'll try the EDATE() function.
User | Count |
---|---|
85 | |
72 | |
71 | |
67 | |
56 |
User | Count |
---|---|
94 | |
92 | |
91 | |
77 | |
70 |