Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.

Reply
gluizqueiroz
Resolver I
Resolver I

How to create a column using DAX that is recursive and use the own column to calculate the next rows

I need to create the column "ValueCalculated" and the column "TotalValueCalculated" for the next example:

MonthYearValuePercentValueCalculatedTotalValueCalculated
jan/13150001,20015000
feb/1385000,8012023620
mar/13-25000,051221132
apr/130-0,03-621125
may/1300,388021206
jun/1300,112321229
jul/1300,357421303
aug/1300,439221395
sep/1300,7415821553
oct/1300,00021553
nov/1300,8117521728
dec/1300,398521813
jan/1400,102221834
feb/1401,2026222096
mar/1400,5211522211
apr/1400,5211522327
may/1400,143122358


I have created the previous table on Excel, using the following formulas:

 

ValueCalculated: PreviousLine of TotalValueCalculated * Percent

image.png

 

TotalValueCalculated: PreviousLine of TotalValueCalculated + Value + ValueCalculated

image.png

 

For the line 1 (jan/13), the Previous Row is 0, for the line 2 onwards use the Previous Line.

 

The values from MonthYear, Value and Percent I have on my database.

I started this 2 columns with this:

 

Table = 
VAR __table1 = ALL(Calendar[MonthYear]; Calendar[NumberMonthYear])
VAR __table2 = 
    ADDCOLUMNS(
        __table1; 
        "Value"; ROUND(CALCULATE([Values]; BI_Sales[ID] = 12345); 0);
        "Percent"; CALCULATE([Percent]; FILTER(BI_Percents; BI_Percents[NumberMonthYear] = [NumberMonthYear]))
    )
VAR __table3 = FILTER(__table2; Calendar[NumberMonthYear] >= MINX(FILTER(__table2; [Value] > 0); [NumberMonthYear]))
VAR __table4 = ADDCOLUMNS(__table3; "Index"; RANKX(__table3; [NumberMonthYear]; ; ASC))
RETURN
__table4

 

The previous DAX returns me this:

 

MonthYearNumberMonthYearValuePercentIndex
jan/13201301150001,201
feb/1320130285000,802
mar/13201303-25000,053
apr/132013040-0,034
may/1320130500,385
jun/1320130600,116
jul/1320130700,357
aug/1320130800,438
sep/1320130900,749
oct/1320131000,0010
nov/1320131100,8111
dec/1320131200,3912
jan/1420140100,1013
feb/1420140201,2014
mar/1420140300,5215
apr/1420140400,5216
may/1420140500,1417

 

Is there any way to create these two colums that I need? 
For you can try, you can select the previous table and paste it on Power BI and start to use the magical DAX functions. 
Just for remember, I canno't use Power Query functions to achieve this, just DAX functions.

4 REPLIES 4
Greg_Deckler
Community Champion
Community Champion

I'm not sure I am 100% on the requirements here. You can refer to earlier rows like this:

 

Column =

  VAR __Index = [Index]

RETURN

  SUMX(FILTER('Table',[Index] <= __Index),[Value])

 

You cannot do true recursion but sometimes you can sort of emulate it:

https://community.powerbi.com/t5/Quick-Measures-Gallery/Previous-Value-aka-quot-Recursion-quot/m-p/6...

https://community.powerbi.com/t5/Quick-Measures-Gallery/Runge-Kutta/m-p/411280#M149

 



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

Hey @Greg_Deckler .

But, how can I reference the columns while it doesn't exist yet, for example:
For I create the column "ValueCalculated", I need to reference the previous line from "TotalValueCalculated", but, for I create the column "TotalValueCalculated", I need to use the column "ValueCalculated", right?
I cannot create the columns these 2 column in the same ADDCOLUMNS, because I cannot reference a column that is being created at the same time, I need to create one column first, but, I need reference eachother.
It's a little bit hard to explain.

I get it. The answer is "there is no true recursion in DAX"

 

Trust me, I have attacked this problem dozens and times and the answer is still the same.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

@gluizqueiroz - One thing I thought of. Power Query (M) does support recursion.  Here is an implementation of using recursion in Power Query:

 

https://www.linkedin.com/pulse/fun-graphing-power-bi-part-3i-greg-deckler-microsoft-mvp-/

 



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.