Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi -
I have below data in Table View and need a Dax formula to compute a column with the total based on prior week's computed number (prior total * factor) for each category:
Category | Date | factor | Total | calculation |
A | 01/01/24 | - | 100 | |
A | 01/08/24 | 1.01682 | 101.68 | (100*1.01682) |
A | 01/15/24 | 1.01734 | 103.45 | (101.68*1.01734) |
A | 01/22/24 | 1.01939 | 105.45 | (103.45*1.01939) |
A | 01/29/24 | 1.01854 | 107.41 | (105.45*1.01854) |
B | 01/01/24 | 1.01792 | 50 | |
B | 01/08/24 | 1.01612 | 50.81 | |
B | 01/15/24 | 1.01332 | 51.48 | |
B | 01/22/24 | 1.01134 | 52.07 | |
B | 01/29/24 | 1.01166 | 52.67 |
Solved! Go to Solution.
Hi @TYL001 ,
You can try below column expression.
Column =
VAR TempTable = FILTER('Table','Table'[Category]=EARLIER('Table'[Category]) && 'Table'[Date]<=EARLIER('Table'[Date]))
VAR FirstVal = MAXX(TOPN(1,TempTable,'Table'[Date],1),'Table'[Total])
RETURN
PRODUCTX(
TempTable,
VAR MinDateOfCat = MINX(TempTable,'Table'[Date])
RETURN
IF('Table'[Date]=MinDateOfCat,1,'Table'[factor])
)*FirstVal
Did I answer your question? If yes, pls mark my post as a solution and appreciate your Kudos !
Thank you~
Answered!
Column = VAR TempTable = FILTER('Table','Table'[Category]=EARLIER('Table'[Category]) && 'Table'[Date]<=EARLIER('Table'[Date])) VAR FirstVal = MAXX(TOPN(1,TempTable,'Table'[Date],1),'Table'[Total]) RETURN PRODUCTX( TempTable, VAR MinDateOfCat = MINX(TempTable,'Table'[Date]) RETURN IF('Table'[Date]=MinDateOfCat,1,'Table'[factor]) )*FirstVal
Answered!
Column = VAR TempTable = FILTER('Table','Table'[Category]=EARLIER('Table'[Category]) && 'Table'[Date]<=EARLIER('Table'[Date])) VAR FirstVal = MAXX(TOPN(1,TempTable,'Table'[Date],1),'Table'[Total]) RETURN PRODUCTX( TempTable, VAR MinDateOfCat = MINX(TempTable,'Table'[Date]) RETURN IF('Table'[Date]=MinDateOfCat,1,'Table'[factor]) )*FirstVal
Hi @TYL001 ,
You can try below column expression.
Column =
VAR TempTable = FILTER('Table','Table'[Category]=EARLIER('Table'[Category]) && 'Table'[Date]<=EARLIER('Table'[Date]))
VAR FirstVal = MAXX(TOPN(1,TempTable,'Table'[Date],1),'Table'[Total])
RETURN
PRODUCTX(
TempTable,
VAR MinDateOfCat = MINX(TempTable,'Table'[Date])
RETURN
IF('Table'[Date]=MinDateOfCat,1,'Table'[factor])
)*FirstVal
Did I answer your question? If yes, pls mark my post as a solution and appreciate your Kudos !
Thank you~
@TYL001 I will see if I can give this a try but this looks very much like recursion and DAX hates recursion. It *might* be possible with PREVIOUS and visual calculations.
@Greg_Deckler Thanks for taking a stab at this. I was trying to mimic the solution to another post I found (but it had no category), but the code didn't work out (returning NaN). Below is what I tried:
CALCULATION =
VAR _MINVALUE =
DATA[Total]
*CALCULATE(
SUM(DATA[factor]),
FILTER(DATA,DATA[Date]=MIN('DATA'[Date]])&&DATA[Category]=DATA[Category])
)
RETURN
IF(
DATA[Date]=MIN('DATA'[Date]])&&DATA[Category]=DATA[Category],
_MINVALUE,
CALCULATE(
PRODUCT(DATA[factor]),
FILTER(DATA,DATA[Date]<=EARLIER(DATA[Date])&&DATA[Category]=DATA[Category])
)*DATA[factor]
)
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
16 | |
13 | |
12 | |
11 | |
11 |
User | Count |
---|---|
19 | |
14 | |
14 | |
11 | |
9 |