Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hello
I am trying to calculate the projected IRR for a particular company, i.e. the IRR on a particular date in the future. I have two relevent data tables that I am using, one that provides the various cashflows and one that contains the various fields used to calculate the valuation.
Date | Value | Type | Company |
1/1/2022 | 1000 | Realisation | Company A |
2/1/2022 | -2000 | Investment | Company A |
3/1/2022 | 3000 | Fees | Company A |
4/1/2022 | 10000 | Enterprise Value (EV) | Company A |
5/1/2022 | 4000 | Investment | Company B |
Date | Company | EBITDA | Multiple | Enterprise Value (EV) |
4/1/2022 | Company A | 5000 | 2 | 10000 |
I am using a series of slicers to create different adjustments to the EV calculation, i.e. increase multiple by 5%. This then creates a projection of what the EV will be in the future, based on the various adjustments to the variables:
Projected_EV=
SUMX(Company_A_valuation, Company_A_valuation[EBITDA] * (1 + [%_EBITDA_slicer]) * (Company_A_valaution [multiple] + [%_multiple_slicer]))
I am trying to work out how i can use the projected EV and a chosen date in future to feed into the cashflow table and therefore be included in the IRR calculation. I have tried various custom columns to duplicate the cashflow, but also bring in the projected EV at the selected date, but I cannot get it to work.
Any thoughts or suggestions welcome! Thank you in advance
NB to select the date of when the EV is to be taken from, I have been playing around with a DAX similar to this:
'Cashflow'[Projected_IRR] =
VAR currentdate = MAX('Calendar'[Date])
RETURN IFERROR(IF(CALCULATE(SUM(CashFlow[end amt]),FILTER('Calendar','Calendar'[Date]=currentdate)) = BLANK(),BLANK(), XIRR( FILTER( SUMMARIZE( FILTER( ALL('Calendar'), Calendar[Date]<=currentdate ), Calendar[Date], "TotalCashFlowIRR", IF('Calendar'[Date]=currentdate,SUM(CashFlow[end amt]),BLANK()) + CALCULATE(SUM(CashFlow[flow])) ), [TotalCashflowIRR] <>0 ),
Solved! Go to Solution.
You could add in the future date and value by creating a variable as the UNION of the base data and ROW for the future projections, something along the lines of
Rate of return =
VAR tmpTable =
UNION (
SELECTCOLUMNS (
FILTER ( 'Base Table', 'Base Table'[Some column] = "filter value" ),
"_Date", 'Base Table'[Date],
"_Value", 'Base Table'[Value]
),
ROW (
"_Date", SELECTEDVALUE ( 'Future Dates'[Date] ),
"_Value", [Projected future value measure]
)
)
RETURN
XIRR ( tmpTable, [_Value], [_Date] )
You could add in the future date and value by creating a variable as the UNION of the base data and ROW for the future projections, something along the lines of
Rate of return =
VAR tmpTable =
UNION (
SELECTCOLUMNS (
FILTER ( 'Base Table', 'Base Table'[Some column] = "filter value" ),
"_Date", 'Base Table'[Date],
"_Value", 'Base Table'[Value]
),
ROW (
"_Date", SELECTEDVALUE ( 'Future Dates'[Date] ),
"_Value", [Projected future value measure]
)
)
RETURN
XIRR ( tmpTable, [_Value], [_Date] )
Thanks for the suggestion. The principle of this works well and the table created works with the XIRR function, so I am half way there.
However, for the additional ROW I am struggling to work out a way for the user to be able to select a particular date in the future (currently trying to use a slicer) and then associate a value with that date, in order to use this projected valuation as part of IRR calculation.
I have tried, for example, to use this measure:
Selected_year =
CALCULATE(
MAX( Calendar[Date] ),
ALLSELECTED( Calendar[Date] )
to link a slicer to the DAX you suggest, but the _date in the new ROW is unresponsive and just uses the last date.
Are you able to suggest a measure to use for _date and _value for the new ROW that would allow the user to select a time period and the respective value would be used?
Create a separate date table which is not connected to anything, just to use for the slicer. That's what I intended the 'Future Dates' table to be in my initial code.
For the value to use, you could use a what if parameter. That automatically creates a measure which returns the selected value, so you can just use that
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
26 | |
10 | |
10 | |
9 | |
6 |