2011-06-28 48 views
7

En Excel, me gustaría redondear al número de fibonacci más cercano.En Excel, cómo redondear al número de fibonacci más cercano

he intentado algo así como (lo siento con un Excel francés):

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

donde FIBO es un rango con nombre (0; 0,5; 1; 2; 3; 5; 8; etc.)

mi problema es que esta función se redondea al número más pequeño y no al más cercano. Por ejemplo 12.8 se redondea a 8 y no 13.

Nota: sólo quiero usar una fórmula de Excel, y no VBA

+3

¿Por qué tiene 0.5 como número de Fibonacci? –

+0

Bueno, esta es una lista de pseudo fibonacci utilizada por los agilistas para estimar el peso de las historias de usuario. También incluye 20 40 y 100 (o infinito) –

Respuesta

5

Esto funcionará:

=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))) 
+0

¡Guau! Gracias. Traducido a francés Excel para aquellos que puedan estar interesados: = ÍNDICE (FIBO; 1; SI (C7> = (ÍNDICE (FIBO; 1; (EQUIV (C7; FIBO; 1;)) + ÍNDICE (FIBO; 1 ; (EQUIV (C7; FIBO; 1) +1)))/2; EQUIV (C7; FIBO; 1) +1; EQUIV (C7; FIBO; 1))) –

+0

Interesante. chr – Fionnuala

1

Definir el número de destino Targ, relativo al cual queremos encontrar el número de Fib más cercano.

Definir

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

ello se deduce que Fib (n) < = Targ < = Fib (n + 1)

donde uno puede calcular Fib (n) y Fib (n + 1) a través de

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

finalmente encuentra el número más cercano a Fib Targ usando los valores calculados de Fib (n) y la aleta (n + 1).

No es tan compacto como la otra solución presentada, ya que requiere algunas fórmulas auxiliares, pero no requiere tabla para los números Fib.

+0

¿Qué hay de los números de lucas? ¿Cómo se vería esa fórmula? –

Cuestiones relacionadas