Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Factorial Excel

Ejemplo de "For" aplicado al Cálculo del Factorial de un Número

| 1 comentario

La estructura For permite realizar ciertas operaciones un determinado número de veces. A diferencia de otras estructuras iterativas, en esta se conoce exactamente el número de iteraciones a realizar. Tiene la siguiente sintaxis:

FOR condición_inicial TO condición_final STEP pasos ... NEXT

donde "condición_inicial" indica el número inicial desde el cual se va a iterar, "condición_final" el número final hasta el cual se iterará, y "pasos" es la cantidad en la cual se aumentará "condición_inicial" en cada iteración. La parte STEP puede ser obviada, si se hace esto se asume que en cada iteración se incrementará el contador en 1.

Por ejemplo:

For contador = 1 to 5

        MsgBox "Contador: " & contador

Next

Este pequeño pedazo de código hará que se muestren ventanas indicando el valor de "contador" en cada iteración. En este caso, se mostrarán 5 ventanas. Nótese que hemos obviado el Step.

EJEMPLO: CÁLCULO DEL FACTORIAL DE UN NÚMERO

Usaremos esta estructura iterativa para escribir una función que permita hallar el factorial de un número. El factorial de un número (denotado por "!") es una operación matemática usada frecuentemente en el álgebra, análisis matemático, etc. Para hallarlo:

Si el número es 0 (cero) ó 1, el factorial es 1. Si el número es mayor de 1, se halla el factorial con la siguiente fórmula: (n-1)! x n

Por ejemplo: 3! = 3x2! = 3x2x1! = 3x2x1 = 6

A continuación mostramos una hoja de excel con números cuyos factoriales deseamos hallar:

Factorial Excel 01

Nos colocaremos en la celda C3 y tipearemos "=Factorial(B3)":

Factorial Excel 02

Luego presionamos Enter y obtendremos el factorial de ese número. Por último, hallamos el factorial de los número restantes de la tabla:

Factorial Excel 03

A continuación el código en VBA de esta función:

Function Factorial(numero)
    Dim total, contador As Integer
    total = 1
    For contador = 1 To numero
        total = total * contador
    Next
    Factorial = total
End Function

Nótese que, si el número es cero, no se entrará a la estructura For, ya que contador (que vale 1) tendría que aumentar hasta llegar a cero, lo cual es imposible ya que en este caso se aumenta de 1 en 1 y cero es menor que 1. De esta forma, se obtiene el valor correcto para el factorial de cero.

Por último, se adjunta un archivo en excel con la función y el ejemplo mostrado.

Ejemplo de For aplicado al Cálculo del Factorial de un Número

Escrito por: Enrique Eduardo López León.

Un comentario

  1. Esta UDF, esta correctamente programada, no hay forma de mejorarla; otro buen planteamiento podria ser usando recursividad, que en el interiior de la UDF seria:
    If numero = 0 Then
    Factorial = 1
    Else
    Factorial = numero * Factorial(numero - 1)
    End If

Deja una respuesta

Los campos requeridos estan marcados con *.