After some refresher on how a NPV calculation works I think I figured out how this formula is working.
The:
IF(ISERR(MID(A1,256-COLUMN(A:IV),1)%),"",MID(A1,256-COLUMN(A:IV),1)%))
Will return a blank or any nurmeric value it finds as a percent. In addition it will reverse the order which is important for the NPV portion of the formulas.
In the first example of the posters data, the string results to {"","","",0.03,0.05,0.02,"","","","","","",""}).
NPV (Net Present Value) actual math formula is:
SUM(Cashflow/(1+rate)^period)
In the formula above:
Rate = -0.9
Cash flow is the numeric value returned by IF(ISERR...)
Period = the position of the number (0.3 = 1, 0.5 = 2, 0.2 = 3)
The NPV for 0.3 would look like: 0.3/(1+-0.9)^1 = 3
The NPV for 0.5 would look like: 0.5/(1+-0.9)^2 = 50
The NPV for 0.2 would look like: 0.2/(1+-0.9)^3 = 200
When the NPV sums all of these together you get 253 which is the number the poster was looking for.
Pretty cool trick. The biggest key is that it puts the numbers in the reverse order so they will be in the correct place (1's, 10's, 100's, 1000's, etc).