A couple of years ago, in this post I published the formula for calculating loan repayments based on rate, PV, FV and interest rates etc.
I mistakenly said that you couldn't arrange the formula to give an expression which would calculate the TERM given the other values.
I was wrong.
Here's the formula:
NPER = LOG((PMT*(1+RATE*TYPE) - RATE * FV) / (PMT*(1+RATE*TYPE) + @RATE*PV)) / LOG(1+RATE)
FV is the "Future Value" of an investment assuming an initial investment (PV), constant repayments (PMT) and a constant interest rate (RATE) over a fixed term of months (NPER). When "TYPE" is zero, loan repayments are made in advance. When "TYPE" is 1, loan repayments are made in arrears.
It yields a non-integer result. The result should be rounded up to the next highest integer, with the value of the final repayment reduced.
If I get time I'll post a formula for the final repayment later.