En una tarea de informática criminológica, el profesor nos ha pedido estimar N! en Excel para cualquier número.
n!=1*2*...*n
La forma más simple sería poner la fórmula =Fact(numero)
Pero aceptemos que para eso mejor consultamos una tabla de factoriales. Otra forma igual de aburrida sería hacerlo por multiplicaciones sucesivas en vertical.
Veamos una forma más interesante. Supongamos que se quiere tener una hoja como la de abajo donde nos localicemos en la celda amarilla en A1 y en B1 diremos el número al que se le extraerá el factorial.
En nuestro ejemplo deseamos tener algo como lo siquiente:
Bien, el código es el siguiente:
Sub NFactorial()
ActiveCell.Offset(0, 1).Range("A1").Select 'el cursor se hace a la derecha para extraer la información de b2 y saber hasta que número calculará
limite = ActiveCell.Value 'asocia el valor de B2 (si efectivamente se empezó en B1) a la variable limite
ActiveCell.Offset(0, -1).Range("A1").Select 'regresa a A1 para escribir las estimaciones
For N = 1 To limite ' Inicia el ciclo
'
ActiveCell.FormulaR1C1 = N
ActiveCell.Offset(1, 0).Range("A1").Select
Next
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]*R[-1]C[-1]" 'realiza la operacion
ActiveCell.Offset(1, 0).Range("A1").Select
'
For M = 1 To limite - 2
'
'
ActiveCell.FormulaR1C1 = "=+RC[-1]*R[-1]C"
ActiveCell.Offset(1, 0).Range("A1").Select
Valor = ActiveCell.Value
Next
ActiveCell.Value = "Arriba de esta celda, el factorial buscado"
End Sub
Es una forma más lenta pero más divertida. Por cierto verás que calcula solamente hasta 171.
No hay comentarios:
Publicar un comentario