The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hello,
Can you please help me in the below DAX which I am trying to write in creating Running Total based off Index. I am trying to execute in Analysis services not in Power BI.
EVALUATE
(
VAR countsales =
SUMMARIZECOLUMNS (
'DimProductSubcategory'[EnglishProductSubcategoryName],
"counter", SUMX (
FactInternetSales,
FactInternetSales[OrderQuantity] * FactInternetSales[UnitPrice]
)
)
VAR FINAL =
ADDCOLUMNS (
countsales,
"Indexz", RANKX ( countsales, DimProductSubcategory[EnglishProductSubcategoryName],, asc )
) //var trying = ADDCOLUMNS(FINAL, "Running Total", CALCULATE(SUMX(FINAL,[counter]), FILTER(ALL(final),[Indexz]<=[Indexz])))
RETURN
ADDCOLUMNS (
FINAL,
"Running Total", CALCULATE (
SUMX ( final, [counter] ),
FILTER ( final, [Indexz] <= EARLIER ( [Indexz] ) )
)
)
)
ORDER BY DimProductSubcategory[EnglishProductSubcategoryName]
Please help/guide me to correct above DAX in creating a valid running total.
Solved! Go to Solution.
HI, @sqlguru448
After my test, you could try this formula as below:
EVALUATE ( VAR countsales = SUMMARIZECOLUMNS ( 'DimProductSubcategory'[EnglishProductSubcategoryName], "counter", SUMX ( FactInternetSales, FactInternetSales[OrderQuantity] * FactInternetSales[UnitPrice] ) ) VAR FINAL = ADDCOLUMNS ( countsales, "Indexz", RANKX ( countsales, DimProductSubcategory[EnglishProductSubcategoryName],, asc ) ) //var trying = ADDCOLUMNS(FINAL, "Running Total", CALCULATE(SUMX(FINAL,[counter]), FILTER(ALL(final),[Indexz]<=[Indexz]))) RETURN ADDCOLUMNS ( FINAL, "Running Total", VAR currentIndex = [Indexz] RETURN SUMX ( FILTER ( FINAL, [Indexz] <= currentIndex ), [counter] ) ) ) ORDER BY DimProductSubcategory[EnglishProductSubcategoryName]
Result:
Best Regards,
Lin
HI, @sqlguru448
After my test, you could try this formula as below:
EVALUATE ( VAR countsales = SUMMARIZECOLUMNS ( 'DimProductSubcategory'[EnglishProductSubcategoryName], "counter", SUMX ( FactInternetSales, FactInternetSales[OrderQuantity] * FactInternetSales[UnitPrice] ) ) VAR FINAL = ADDCOLUMNS ( countsales, "Indexz", RANKX ( countsales, DimProductSubcategory[EnglishProductSubcategoryName],, asc ) ) //var trying = ADDCOLUMNS(FINAL, "Running Total", CALCULATE(SUMX(FINAL,[counter]), FILTER(ALL(final),[Indexz]<=[Indexz]))) RETURN ADDCOLUMNS ( FINAL, "Running Total", VAR currentIndex = [Indexz] RETURN SUMX ( FILTER ( FINAL, [Indexz] <= currentIndex ), [counter] ) ) ) ORDER BY DimProductSubcategory[EnglishProductSubcategoryName]
Result:
Best Regards,
Lin
Hi Lin,
Can you please explain why my DAX was not working even though I was using EARLIER function? is this because of FILTER context being applied instead of row context?
Thank you very much for your quick response.
Can someone please help?