Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hello All,
Im developing a dashboard and i need to calc a YTD distinct count of IDs created this year VS Last Year
e.g 2019-01-01 to 2019-02-01 AND 2018-01-01 to 2018-02-01,
Data is structured like so :
I have a fact table with ID numbers and the day they were created,
with a Many to One relationship with a date dimension table.
Measures and Variables listed below.
All Variables and measures calculating correctly,vetted them multiple times. All measures have identical variables VARIABLES: VAR TotalApps = CALCULATE(DISTINCTCOUNT(PLASFL[MERCHANT_APPLICATION_ID]),DateCodeMSTR[FullDate]) Var CYear = YEAR(TODAY()) Var PrevYear = CYear - 1 VAR StartDate = CALCULATE(FIRSTDATE(ALLSELECTED(DateCodeMSTR[FullDate])),YEAR(DateCodeMSTR[FullDate]) = CYear) VAR EndDate = CALCULATE(LASTDATE(ALLSELECTED(DateCodeMSTR[FullDate])),YEAR(DateCodeMSTR[FullDate]) = CYear) VAR StartDatePY = CALCULATE(FIRSTDATE(DateCodeMSTR[FullDate]),Year(DateCodeMSTR[FullDate]) = PrevYear) VAR EndDatePY = CALCULATE(LASTDATE(DateCodeMSTR[FullDate]),Year(DateCodeMSTR[FullDate]) = PrevYear) Measures: This Year Calc = [Calculates Correctly, numbers line up with Database.] RETURN CALCULATE(DISTINCTCOUNT(PLASFL[MERCHANT_APPLICATION_ID]),DATESBETWEEN(DateCodeMSTR[FullDate],StartDate,EndDate)) Last Year Calc = [Calculates incorrectly, 23,000 Returned VS. 1921 Actual in DB.] VAR TotalApps = CALCULATE(DISTINCTCOUNT(PLASFL[MERCHANT_APPLICATION_ID]),DateCodeMSTR[FullDate]) Var CYear = YEAR(TODAY()) Var PrevYear = CYear - 1 VAR StartDate = CALCULATE(FIRSTDATE(ALLSELECTED(DateCodeMSTR[FullDate])),YEAR(DateCodeMSTR[FullDate]) = CYear) VAR EndDate = CALCULATE(LASTDATE(ALLSELECTED(DateCodeMSTR[FullDate])),YEAR(DateCodeMSTR[FullDate]) = CYear) VAR StartDatePY = CALCULATE(FIRSTDATE(DateCodeMSTR[FullDate]),Year(DateCodeMSTR[FullDate]) = PrevYear) VAR EndDatePY = CALCULATE(LASTDATE(DateCodeMSTR[FullDate]),Year(DateCodeMSTR[FullDate]) = PrevYear) RETURN CALCULATE(DISTINCTCOUNT(PLASFL[MERCHANT_APPLICATION_ID]),DATESBETWEEN(DateCodeMSTR[FullDate],StartDatePY,EndDatePY))
Thanks in advance!
You can use time intelligence functions available in Power BI (provided you have continuous DateTable).
For YTD IDs use the below measure.
IDs YTD =
TOTALYTD (
DISTINCTCOUNT ( PLASFL[MERCHANT_APPLICATION_ID] ),
DATESYTD ( DateCodeMSTR[FullDate] )
)
For previous year numbers, I am assuming that you have a date field in PLASFL table. Replace "PLASFL[Date]" with the actual date field in PLASFL table.
IDs PY =
VAR MaxDataDate =
CALCULATE ( MAX ( PLASFL[Date] ), ALL ( PLASFL ) )
RETURN
CALCULATE (
[IDs YTD],
SAMEPERIODLASTYEAR (
INTERSECT (
VALUES ( DateCodeMSTR[FullDate] ),
DATESBETWEEN ( DateCodeMSTR[FullDate], BLANK (), MaxDataDate )
)
)
)
Hope this is helpful.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
112 | |
100 | |
80 | |
64 | |
57 |
User | Count |
---|---|
145 | |
111 | |
92 | |
84 | |
66 |