Forum Discussion
Excel Calc in Power BI
- 8 months ago
Hi Rehansaeed2024 ,
Thanks for confirming that the results are matching in the reference PBIX. This confirms that the Excel decayed SUMPRODUCT logic is correctly implemented in Power BI using DAX.The issues you are facing in your actual PBIX are not due to the formula, but mainly because of model structure and data size. The circular dependency error usually comes when a measure like Numerator_Decayed is used directly or indirectly inside a calculated column, or when the Row Index itself is created using measures. In the working PBIX, the Row Index is a simple calculated column, and both Numerator and Denominator are measures only, which avoids this issue.
The “Query exceeded available resources” message happens when the SUMX + FILTER logic runs over a very large or highly detailed dataset. In such cases, the data grain or Row Index scope needs to be reduced to improve performance.
When you see 0.00 values for smaller datasets, it usually means the Row Index is not stable or the table is not sorted in the same order as Excel before assigning the index. Since Excel’s ROW() depends on position, sorting is very important.
Please use the attached PBIX as a reference for how the Row Index and measures should be structured. Once the same separation and sorting are applied in your actual model, the Numerator_Decayed will behave exactly the same as Excel.
Hello Rehansaeed2024
Try this
Numerator :=
VAR Alpha = 1 - 0.964783 -- If K4 = 0.964783, adjust as needed
VAR CurrentIndex = [Row Index_Line_Items]
RETURN
IF(
ISBLANK(CurrentIndex),
BLANK(),
CALCULATE(
SUMX(
ADDCOLUMNS(
'Table A',
"Weight",
POWER(
Alpha,
CurrentIndex - [Row Index_Line_Items]
),
"WeightedValue",
'Table A'[Product Cost] *
POWER(
Alpha,
CurrentIndex - [Row Index_Line_Items]
)
),
[WeightedValue]
),
FILTER(
ALLSELECTED('Table A'),
[Row Index_Line_Items] <= CurrentIndex
)
)
)