The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hi all,
I'm having trouble getting this one nailed down. I'm trying to create a measure that will identify the date which a customers current year volume exceeds their total volume for the previous year. To illustrate, I've cretaed a PBIX (attached) that summarizes the data into a calculated table. The table returns a row for each date in the current year with a constant value of the previous year volume in a column (LYTons). The Tons column should be a running sum for the current year, but I can't get my DAX to to return anything other than the volume on that given date.
Here's the code:
Running Sum Table =
VAR _MaxInvoiceDate =
CALCULATE(
MAX(Sales[InvoiceDate]),
ALL(Sales)
)
VAR _CurrentYear =
YEAR(_MaxInvoiceDate)
VAR _LastYear =
_CurrentYear - 1
VAR _CustomersLY =
CALCULATETABLE(
VALUES(Sales[CustomerAccountNumber]),
ALL('Date Dim'),
YEAR(Sales[InvoiceDate]) = _LastYear
)
VAR _DatesTY =
CALCULATETABLE(
VALUES('Date Dim'[DATE]),
YEAR('Date Dim'[DATE]) = _CurrentYear
)
VAR _CustomersLYData =
CALCULATETABLE(
SUMMARIZE(
Sales,
Sales[CustomerAccountNumber],
'Date Dim'[DATE],
"LYTons", CALCULATE(
Sales[# Billed Tons],
ALLEXCEPT(Sales, Sales[CustomerAccountNumber]),
YEAR(Sales[InvoiceDate]) = _LastYear
),
"Tons", CALCULATE(
Sales[# Billed Tons],
ALL('Date Dim'),
'Date Dim'[DATE] <= _MaxInvoiceDate
)
),
_CustomersLY,
_DatesTY
)
RETURN
_CustomersLYData
Here's the link to a sample file:
https://1drv.ms/u/s!AtHPCBKFQogGgstDRaIUcA7A90yJSA?e=zd6gls
Thanks!
Solved! Go to Solution.
Try
Date exceeded last year =
VAR LastYear = YEAR( TODAY( ) ) - 1
VAR SalesLastYear =
CALCULATE( [# Billed Tons], 'Date Dim'[YEAR] = LastYear )
VAR SummaryTable =
ADDCOLUMNS(
DATESYTD( 'Date Dim'[DATE] ),
"Running total",
CALCULATE( [# Billed Tons], DATESYTD( 'Date Dim'[DATE] ) )
)
VAR Result =
MINX(
FILTER( SummaryTable, [Running total] > SalesLastYear ),
'Date Dim'[DATE]
)
RETURN
Result
Try
Date exceeded last year =
VAR LastYear = YEAR( TODAY( ) ) - 1
VAR SalesLastYear =
CALCULATE( [# Billed Tons], 'Date Dim'[YEAR] = LastYear )
VAR SummaryTable =
ADDCOLUMNS(
DATESYTD( 'Date Dim'[DATE] ),
"Running total",
CALCULATE( [# Billed Tons], DATESYTD( 'Date Dim'[DATE] ) )
)
VAR Result =
MINX(
FILTER( SummaryTable, [Running total] > SalesLastYear ),
'Date Dim'[DATE]
)
RETURN
Result
This works great - thank you!
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.
User | Count |
---|---|
21 | |
19 | |
19 | |
18 | |
14 |
User | Count |
---|---|
41 | |
39 | |
24 | |
22 | |
19 |