Simplyfying FV with monthly payment calculation - excel-formula

7000
10008.54
13665.45
18110.44
23513.35
30080.62
38063.19
47766.04
59559.92
73895.45
91320.39
112500.50
In the above list, 7000 is stationary. From 10,008.54 to downwards, I have the following formula pulled down with $N$27 containing 1500 (does not change)
=((((M27*1.05)*1.05)*1.05)*1.05)+$N$27
This essentially calculates 7000 compounded 4 times monthly with 1500 added at the end of period. In excel I was able to come up with this
=FV(P32,P29,-N27)+(P31*POWER((1+P32),P29))
P32 = .05
P29 = 48
N27 = 1500
First FV calculates the FV of 1500 end of 48 periods with interest rate of 5%
The second part simplifies the table above. However the results differ by huge margin.
Question being: How else can I show my list above in short simple formula. I want the beginning of the month value compounded 4 times/weekly the following month + a payment added at the end of the month for up to 1 year.
Any leads and your time is appreciated.

I will put this out there. This is a UDF that will do what you want. I realize that you did not ask for a vba answer but just in case you are open to one:
Function FVSPECIAL(rate As Double, nper As Double, PV As Double, PMT As Double, PMTEvry As Double)
Dim i As Integer
Dim otpt As Double
otpt = PV
For i = 1 To CInt(nper / PMTEvry) - 1
otpt = otpt * (1 + rate) ^ (PMTEvry) + PMT
Next i
FVSPECIAL = otpt
End Function
Add a module to the workbook and paste this into it.
Then call the function. To call it you would, using the cells from the question
=FVSPECIAL(P32,P29,M27,N27,4)
It basically is FVSPECIAL(Rate,Nper,PV,PMT, # of NPer per payment)

Related

Trying to show a full years amount based on a smaller fraction of the year's total

this is my first post.
Right now, I have a limited set of data ranging from the beginning of this financial year until now. I'm trying to show what a full year's worth of that data would look like.
For example, if the number is at 10, and the data range is from 1/07/2021 - 30/12/2021 (half the year), then the end output should be 20. Or for example, turn a 12 with 3/4 of the year date range to 16 for a full years' worth.
However, my current formula would end up with 15 (10 + "half") rather than (10 + 10)
Right now this is what I have, but I know there's something off on my logic, as the output is smaller than it should be:
D1+((364-(F1-E1))/365)*D1
where E1 is the start date and F1 is the end date, and d1 is the number for that date range
Thanks in advance
endDate - startDate will give you the number of days the data covers.
(endDate - startDate) / 365 will give you what fraction of a year the sample represents.
Let’s say this works out to be 30%, or 0.30.
annualValue * 0.30 = periodValue and therefore we know that periodValue / 0.30 = annualValue.
So there it is, the cell you want the Annual Value in should be:
= periodValue / ( ( endDate - startDate) / 365 )
I will leave it to you to replace each of the three named values in my example to be the correct cell references. I suspect that’s probably:
=D1/((F1-E1)/365) which is the same as (D1*365)/(F1-E1).
The easy way to remember this is that it’s just cross-multiplication.
periodValue / days is proportionate to annualValue / 365. Thus periodValue / days = annualValue / 365. Cross-multiply and you get periodValue * 365 = annualValue * days. Divide both sides by days and you get `annualValue = (periodValue * 365)/days.

I need to display the year and the value it lost in that particular year

I am in need of your assistance with my visual basic code. I need to display the double depreciation of a product. Each year the product will lose value. I need to display the year and the value it lost in that particular year using Visual Basic
I have the Interface the code but when I run the code I get incorrect output.
For example:
Product cost is R 5000
Useful Life is 5 Years
when I apply the formula to the problem the answer should be:
1 should be 2000
2 should be 1200
3 should be 720
4 should be 432
5 should be 259.20
With my code I do get year 1 correct but years 2 - 5 have the same answer as year 1.
I have used a for loop to do the calculations but it seems to be stuck at year 1.
Any assistance will be appreciated as I am completely new to programming.
Calculating the Depreciation
Sub Calculations()
For yr As Integer = 1 To Life
If yr <= Life Then
Depreciation = (2 / Life) * Cost
lstBalances.Items.Add(yr & " " & Depreciation)
End If
Next
End Sub
You're not adjusting the cost for the next calculation. Also your line If yr <= Life Then is redundant. The scope of the loop is already defined in the For/Next context and yr will always be less than or equal to Life.
Sub Calculations()
For yr As Integer = 1 To Life
Depreciation = (2 / Life) * Cost
lstBalances.Items.Add(yr & " " & Depreciation)
Cost = Cost - Depreciation
Next
End Sub

Computing sum of progressively-increasing values in Excel

I am trying to solve an iterative problem in Excel. I want to be able to calculate the sum of rent for x years. The rent is increasing at a rate of 10 percent every year. I quickly came up with this python code on a REPL for clarity:
year = 6
rent = 192000
total_rent = rent
for x in range(1 , year):
rent= rent + .1*rent
total_rent = total_rent + rent
print(total_rent) # 1481397.12 is what it prints
This is a trivial problem in programming but I am not sure the best way to achieve this in excel.
In excel I am doing it this something like this:
But all the intermediate rent amount(s) are not really needed. I guess there should be a for loop here as well too, but is there a mathematical representation of this problem which I can use to create the expected result?
If you have a financial problem, you might try the financial functions of excel.
=-FV(0.1, 6, 192000)
or
=FV(0.1, 6, -192000)
the detail: FV on Office Support
Description
FV, one of the financial functions, calculates the future value of an investment based on a constant interest rate. You can use FV with either periodic, constant payments, or a single lump sum payment.
Syntax
FV(rate, nper, pmt, [pv], [type])
For a more complete description of the arguments in FV and for more information on annuity functions, see PV.
The FV function syntax has the following arguments:
Rate Required
The interest rate per period.
Nper Required
The total number of payment periods in an annuity.
Pmt Required
The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes. If pmt is omitted, you must include the pv argument.
Pv Optional
The present value, or the lump-sum amount that a series of future payments is worth right now. If pv is omitted, it is assumed to be 0 (zero), and you must include the pmt argument.
Type Optional
The number 0 or 1 and indicates when payments are due. If type is omitted, it is assumed to be 0.
Your problem is a geometric series where the initial term is a = 192000 and the common ratio is r = 1.1. (The ratio is not just the 10% added, it includes the 100% that is added to.) To refresh your Algebra II memory, a geometric series is
total = a + a*r + a*r**2 + ... + a*r**(n-1)
The closed-form formula for the sum of the geometric series is
total = a * (r**n - 1) / (r - 1)
(using Python syntax), or, using something closer to Excel syntax,
total = a * (r^n - 1) / (r - 1)
where n is the number of years. Just substitute your values for a, r, and n.
As the question is about excel it is possible by
Or by using the FV function.
FV returns the future value of an investment based on regular payments and a constant interest rate.
Attributes of the FV function;:
Rate: The interest rate per period.
Nper: The total number of payment periods in an annuity.
Pmt: The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes. If pmt is omitted, you must include the pv argument.
Pv: The present value, or the lump-sum amount that a series of future payments is worth right now. If pv is omitted, it is assumed to be 0 (zero), and you must include the pmt argument.
Type: The number 0 or 1 and indicates when payments are due. If type is omitted, it is assumed to be 0.
Yet another way is computing it as a geometric series with the non-financial function SERIESSUM:
=SERIESSUM(1.1,0,1,192000*{1,1,1,1,1,1})
The rate multiplier is 1.1, starting from 1.1^0 == 1 and increasing by 1 each year. The result is 1*a + 1.1*b + 1.1^2*c.... The array 192000*{1,1,...} provides the coefficients a, b, c, ... : one array value for the initial total_rent = rent, and one for each subsequent year 1..5 (from range(1,year)).

fv formula in excel

I would like to know the following: in the FV formula, can I use both the PMT and PV or I should use either the PMT or the PV?
The problem is the following:
You have invested 75000 in a trust fund at r=0,075. You will draw $12000 per year from this fund for 4 years, starting at the end of the year 7.
What will be the amount that will be left over in this fund at the end of the year 10?
The correct calculation is to find the FV of $75000 at the end of year 10 and then to subtract the accumulated PMT over the last 4 years.
However, I calculated the FV(period=7) and then by using FV(period=7) as a PV, I tried to calculate the FV(at period=10) by using both PMT and PV [which equals FV(period=7)]. At the end I get the wrong number. What it's wrong with it?
What happens if I use both PMT and PV in the FV formula? I assumed that based on the PV [which equals FV(period=7)], the formula subtracted each time the corresponding PMT and thus at the end (period=10) the remaining value would be the "left over" in period 10. But I don't get the correct number. So what happens if I use both the PV and PMT in the FV formula? What is the number I get by using both PMT and PV?
Any help would be appreciated! Thanks a lot!
What happens if I use both PMT and PV in the FV formula?
Essentially the same as if you used them individually (ceteris paribus) and then added their results.
This is not entirely intuitive (IMO) as the timing of the future value is different. I suspect that is your issue with trying to recalculate part way through the term, but it is impossible to be sure without your actual numbers.
A simple example, assuming annual or a one off payment of 100 at 10% pa for three years:
Three formulae shown emboldened and their results on the same line. Running through the steps in English:
Receive 100 at the start of Year1 so are liable for 10 interest at the end of that year (110 outstanding).
Receive 100 at the start of Year2 so are liable for interest on (110+100) at the end of that year =21 (231 outstanding).
Receive 100 at the start of Year3 so are liable at the start of Year3 for 331.00.
Receive 100 at the start of Year1 so are liable for 10 interest at the end of that year (110 outstanding).
At the end of Year2 further interest, of 11, outstanding.
At the end of Year3 further interest, of 12.1, outstanding, total then 133.10.
Moral: Seems to be, don't use both in the same formula :)

using parameters in vba class

Presently i have a vba which i am using as an add-in in excel to call some UDF. the functions take in parameters such as a range of numbers, and some attributes about these numbers and constants.
e.g. ROR(some_range_of_numbers,weekly)
the second parameter has the following options. it could be either Daily or weekly or monthly or quarterly or annual. if its daily i use 365, if its weekly i use 52, if its monthly i use 12 if its Qtrly then i use 4 and Annual i use 1 as one of the components of the formula in the UDF.
now, my question is when the user wants to use the function, i want to force the user to input daily or weekly etc. i remember something about using types or parameters in VB. But am lost here. Any help will be greatly appreciated.
Thanks
Try below function:
Function ROR(rng As Range, interval As String)
Dim intervalNum As Integer
select Case LCase(interval)
Case "daily":
intervalNum = 365
Case "weekly":
intervalNum = 52
Case "monthly":
intervalNum = 12
Case "quarterly":
intervalNum = 4
Case "annual":
intervalNum = 1
End Select
Debug.Print intervalNum
End Function
Updated code after comments :
Enum interval
daily = 365
weekly = 52
monthly = 12
quarterly = 4
annual = 1
End Enum
Function ROR(rng As Integer, val As interval)
End Function
Also you can use type wherein you will get it as dropdownlist.
Type interval
daily As Integer
weekly As Integer
monthly As Integer
quarterly As Integer
annual As Integer
End Type

Resources