Redondeo

Factorial y recursividad en Excel: guía práctica con FACT

octubre 30, 2026 Tuto Excel 9 min read
Factorial y recursividad en Excel: guía práctica con FACT

El factorial es el producto de todos los enteros positivos hasta un número: 4! = 4 × 3 × 2 × 1 = 24. La recursividad explica el mismo cálculo por partes: un factorial se reduce al anterior hasta llegar a un caso base. En este tutorial usarás un libro de control de calidad de una tienda para calcular tamaños de lotes y, después, comparar el resultado directo de FACT con una función recursiva en VBA. FACT está disponible en las versiones indicadas en la documentación de Excel.

Qué es el factorial y qué significa la recursividad

Imagina que el libro Control de calidad tiene una hoja Lotes. Cada fila indica cuántos paquetes deben revisarse según el tamaño del lote. El tamaño es el número del que se calcula el factorial.

B2fx4
A B
1 Lote Tamaño
2 Pequeño 2
3 Mediano 3
4 Grande 4
5 Extra 5
B2 El entero que se embebe a calcular
Lotes

El factorial de un entero n es n × (n−1) × … × 2 × 1. La recursividad es una forma deResolver un problema llamando al mismo problema con un valor menor. En el factorial, la relación es n! = n × (n−1)!, y el proceso se detiene en 0! = 1.

Nota: Excel calcula FACT directamente; la recursividad es la lógica matemática que sirve para entender cómo se llega al resultado. Una hoja puede representar esa lógica, pero FACT no es una función recursiva visible para el usuario.

Un factorial pequeño para ver el patrón

Escribe estos valores en la columna Entero y calcula su factorial. La secuencia muestra que cada resultado multiplica el resultado anterior por el entero siguiente.

B2fx1
A B
1 Entero Factorial
2 0 1
3 1 1
4 2 2
5 3 6
6 4 24
A1 B6: 0! y 1! tienen el mismo resultado
Patrón

La fila 0 ya muestra el caso base: aunque no hay factores que multiplicar, por convenio 0! = 1. Desde ahí, 1! = 1, 2! = 2, 3! = 6 y 4! = 24.

Cómo calcular un factorial en Excel con FACT

FACT (en inglés FACT) devuelve el factorial de un número. Su sintaxis es:

=FACT(número)

El argumento número debe ser el entero que quieres transformar. En la hoja Lotes, la celda A2 contiene 2, así que =FACT(A2) devuelve 2. Si el número aumenta a 4, el resultado será 24.

El argumento número y el caso de cero

Escribe 0 en A2 y la fórmula en B2:

B2fx=FACT(A2)
A B
1 Entero Factorial
2 0 1
Patrón
Comprueba: B2 debe mostrar 1, porque el factorial de cero es uno.

El valor cero no devuelve cero ni un error: activa el caso base del factorial. Usa un entero no negativo para este ejercicio.

Factoriales dentro de una tabla de enteros

  1. En la hoja Patrón, escribe 0, 1, 2, 3, 4 y 5 en A2:A7.
  2. Selecciona B2 y escribe =FACT(A2).
  3. Arrastra el controlador de relleno de B2 hasta B7.
B2fx=FACT(A2)
A B
1 Entero Factorial
2 0 1
3 1 1
4 2 2
5 3 6
6 4 24
7 5 120
Arrastra el controlador de relleno hasta B7
Patrón
Comprueba: B2:B7 debe mostrar, en este orden, 1, 1, 2, 6, 24 y 120.

Cómo se lee la recursión del factorial

La definición recursiva tiene dos partes. La primera es el caso base: si n es 0 o 1, el factorial es 1. La segunda es la llamada recursiva: para calcular n!, se multiplica n por (n−1)!.

El recorrido de 4! queda así:

  • 4! necesita 4 × 3!.
  • 3! necesita 3 × 2!.
  • 2! necesita 2 × 1!.
  • 1! llega al caso base y devuelve 1.
  • Las multiplicaciones se reconstruyen: 1 × 2 = 2, 2 × 3 = 6 y 6 × 4 = 24.

Del caso base a la multiplicación final

Una forma de visualizarlo es usar un producto parcial. Para el lote grande, el entero inicial es 4 y sus predecesores son 3, 2 y 1. El producto parcial empieza en 4, después vale 12, luego 24 y finalmente vuelve a ser 24 porque el último factor ya es 1.

Llamada o reducción Valor que recibe
4! 4 × 3!
3! 3 × 2!
2! 2 × 1!
1! 1
Resultado reconstruido 24
Cuidado: esta representación explica el algoritmo, pero no demuestra cómo está implementado internamente FACT.

Reconstruye un factorial paso a paso en una hoja

Ahora crea una hoja llamada Recursión dentro del mismo libro. Primero coloca 4 en B2. La idea es mostrar el entero, la reducción n → n−1 y el producto parcial.

La tabla que muestra cada reducción del número

  1. Renombra la hoja activa como Recursión.
  2. En B2 escribe 4.
  3. En A2 escribe =B2.
  4. En A3 escribe =A2-1.
  5. Arrastra A3 hasta A5.
B2fx4
A B
1 Reducción Inicial
2 4 4
3 3
4 2
5 1
B2 Entero inicial
Recursión
Comprueba: A2:A5 debe mostrar 4, 3, 2 y 1.

La fórmula de A3 usa una referencia relativa: al copiarla hacia abajo, A2 pasa a ser A3, A4 y así sucesivamente. Por eso cada fila resta uno al valor de la fila anterior.

El producto parcial que llega al resultado

  1. En C2 escribe =A2.
  2. En C3 escribe =C2*A3.
  3. Arrastra C3 hasta C5.
  4. En D2 escribe =FACT(B2).
  5. En D3 escribe =C5=D2.
C2fx=A2
A B C D
1 Reducción Inicial Producto parcial FACT
2 4 4 4 24
3 3 12
4 2 24
5 1 24
6 VERDADERO
Arrastra C3 hasta C5
Recursión
Comprueba: C2:C5 debe mostrar 4, 12, 24 y 24; D2 debe mostrar 24 y D6 debe mostrar VERDADERO.

FACT frente a una recursión escrita en VBA

FACT es la opción práctica para calcular un factorial directamente en una hoja. La recursión en VBA sirve para estudiar cómo una función se llama a sí misma, pero exige guardar el libro como .xlsm y ejecutar una macro.

La función recursiva que detiene las llamadas

Abre el editor de VBA con Alt+F11 (Cmd+Opción+F11 en Mac) y pega este módulo:

Function FactorialRecursivo(n As Long) As Long
    If n <= 1 Then
        FactorialRecursivo = 1
    Else
        FactorialRecursivo = n * FactorialRecursivo(n - 1)
    End If
End Function

La condición n <= 1 es el caso base. Si es falsa, la función llama a FactorialRecursivo(n - 1). Para 4, las llamadas descienden hasta 1 y luego devuelven los productos parciales.

Para probarla desde una celda, escribe 4 en G2. En H2 coloca esta fórmula de hoja de cálculo que llama a la macro:

=FactorialRecursivo(G2)
Comprueba: H2 debe mostrar 24.
Cuidado: FactorialRecursivo no es una fórmula estándar de Excel. Requiere VBA y un libro .xlsm.

El recorrido recursivo dentro de Excel

Para observar el resultado junto a FACT, añade una segunda fórmula:

=FACT(G2)

La hoja Recursión queda así:

G2fx4
G H I
1 Entrada VBA recursivo FACT
2 4 24 24
G2 valor que entregarán FACT y VBA
Recursión
Comprueba: H2 e I2 deben mostrar 24.

Si al ejecutar la macro aparece un aviso de seguridad, revisa los permisos de macros del archivo. Excel para la web no ejecuta VBA; para automatizar allí se utilizan Scripts de Office, no esta función VBA.

Qué falla al calcular factoriales o repetir llamadas

Los errores más habituales aparecen al introducir el número, copiar la fórmula o usar valores demasiado grandes para el tipo numérico.

Un argumento vacío o no numérico

Si A2 está vacía o contiene una palabra, =FACT(A2) puede producir un resultado de error según la forma en que Excel interprete la celda. La causa es que FACT necesita un valor numérico válido.

B3fx=FACT(A3)
A B C
1 1 Entrada Resultado
2 2 cuatro #VALOR!
3 La reparación es sencilla: sustituye el texto por un entero no negativo, por ejemplo 4, y vuelve a escribir o confirmar `=FACT(A2)`.
4 ### La referencia que cambia al copiar la fórmula
5 Si copias `=FACT(A2)` hacia una fila distinta sin querer, la referencia relativa se ajusta. La fórmula de B3 pasa a leer A3, no A2. Eso es normal en una tabla: cada fila debe contener su propio entero.
6 «`hoja
7 A B
8 1 Entrada Resultado
9 2 2 2
10 3 3 6
11 4 4 24
B3 La referencia se ajusta al copiarla
Errores

La reparación no es bloquear A2 si quieres una fórmula que se copye por filas. Comprueba que la columna A contiene el valor de cada fila. Usa una referencia absoluta solo cuando todas las fórmulas deban leer exactamente la misma celda.

El factorial que desborda el tipo numérico

Un factorial crece muy deprisa. Por eso, aunque 20! todavía puede representarse en ciertos enteros de 64 bits, 21! ya desborda ese tipo. En una función VBA declarada como Long, el comportamiento puede dejar de ser un factorial matemático correcto.

La reparación depende del objetivo: usa un entero válido que quepa en el tipo de la función, o cambia el tipo de datos y el algoritmo si realmente necesitas valores grandes. Para aprender el patrón, quédate con 4 o 5.

A2fx21
A B
1 Entrada Factorial
2 21 Desbordamiento
A2 El valor crece más deprisa que el tipo Long de VBA
Errores
Cuidado: una cifra grande en pantalla no demuestra que el resultado sea correcto. Comprueba el tipo de dato que usa cada fórmula o función.

Qué conviene usar según el objetivo

Método Útil para Ventaja Consideración
FACT Obtener el resultado directamente Fórmula breve No muestra las reducciones internas
Fórmula de pasos Enseñar n → n−1 Permite ver productos parciales Hay que preparar la tabla
VBA recursivo Practicar recursión Hace explícita la llamada a sí misma Requiere macros y un libro .xlsm

FACT es la opción más corta para un cálculo directo. La tabla de pasos es mejor para aprender qué significa recursividad, porque cada fila muestra el entero y el producto acumulado. La función VBA es útil para practicar programación, pero no mejora automáticamente el cálculo.

En Excel de escritorio, VBA puede ejecutarse desde un libro .xlsm. Las versiones de escritorio tienen esa capacidad; Excel para la web no ejecuta macros VBA. Las matrices y funciones nuevas pueden variar según la versión y la licencia, así que comprueba que tu Excel reconoce la fórmula escrita.

Nota: los datos y nombres de este tutorial están comprobados en octubre de 2026.

Lo que ya sabes hacer con factorial y recursividad

  • Usar FACT para calcular el factorial de un entero no negativo.
  • Reconocer el caso base 0! = 1 y la reducción n! = n × (n−1)!.
  • Construir una tabla que muestre 4, 3, 2 y 1.
  • Comparar el producto parcial con el resultado de FACT.
  • Escribir una función VBA recursiva con una condición de parada.
  • Reparar entradas no numéricas, referencias desplazadas y valores que desbordan el tipo.

Para continuar, añade a tu libro Control de calidad una nueva columna de tamaños y calcula cada factorial con FACT. Después elige un tamaño pequeño y reconstruye su recorrido en una hoja aparte.

Dudas al calcular factoriales recursivos

1. ¿Cómo se calcula un factorial recursivo en C++ o Java?

La idea es la misma en ambos lenguajes: una función devuelve 1 cuando n es menor o igual que 1; en otro caso, devuelve n por el resultado de llamarse con n menos 1. Así, 4! se resuelve mediante 4!, 3!, 2! y 1!, y las multiplicaciones devueltas producen 24.

2. ¿Puedo escribir una función factorial recursiva dentro de Excel?

Sí, en un libro de escritorio puedes escribir una función recursiva en VBA. Primero debes guardar el libro como .xlsm, activar la pestaña Programador y abrir el editor con Alt+F11; la macro no es una fórmula de Excel. Excel para la web no ejecuta macros VBA.

Fuentes

  1. MicrosoftCreación de procedimientos recursivos (VBA) – Microsoft Learnconsultado el 23/10/2026
  2. Gofactorial command – github.com/untref-ayp2/examples/recursividad …consultado el 23/10/2026
  3. MicrosoftFACT — documentación oficialconsultado el 23/10/2026
  4. MicrosoftFACT.DOBLE — documentación oficialconsultado el 23/10/2026