在Excel中,如何四舍五入到最近的斐波那契数

在Excel中,我想绕到最近的斐波纳契数。

我尝试了一些东西(用法语Excel对不起):

RECHERCHEH(C7;FIBO;1;VRAI) -- HLOOKUP(C7, FIBO, 1, TRUE) 

FIBO是指定的范围(0; 0,5; 1; 2; 3; 5; 8等)

我的问题是,这个函数四舍五入到最小的数字,而不是最近的。 例如12.8被舍入到8而不是13。

注意:我只想使用Excel公式,并没有VBA

这将工作:

 =INDEX(FIBO,1, IF(C7>=(INDEX(FIBO,1,(MATCH(C7,FIBO,1)))+ INDEX(FIBO,1,(MATCH(C7,FIBO,1)+1)))/2, MATCH(C7,FIBO,1)+1, MATCH(C7,FIBO,1))) 

定义目标编号Targ,我们要find最接近的Fib编号。

确定

 n = INT(LN(Targ*SQRT(5))/LN((1+SQRT(5))/2)) 

因此,Fib(n)<= Targ <= Fib(n + 1)

在那里可以计算Fib(n)和Fib(n + 1)通过

 Fib(n) = ROUND(((1+SQRT(5))/2)^n/SQRT(5),0) 

最后使用Fib(n)和Fin(n + 1)的计算值find最接近Targ的Fib数。

不像其他解决scheme那样紧凑,因为它需要一些辅助公式,但是它不需要Fib数的表格。