function

REDUCIR

Todo sobre la función REDUCIR en Excel

La función REDUCIR en Excel es una potente función de matriz dinámica que procesa una matriz de valores y la reduce a un único valor acumulado. Para ello, aplica una función LAMBDA a cada elemento de la matriz, manteniendo un acumulador que se actualiza en cada paso.

Es ideal para realizar cálculos iterativos complejos, como sumar o multiplicar valores bajo ciertas condiciones, concatenar texto de forma selectiva, o encontrar el valor máximo o mínimo de una forma personalizada que funciones como MAX o MIN no podrían manejar directamente.

Sintaxis

=REDUCIR([valor_inicial]; matriz; funcion)

La función REDUCIR consta de los siguientes parámetros:

  • valor_inicial: El valor inicial para el acumulador. Este parámetro es opcional. Si se omite, el valor inicial será el primer elemento de la matriz y la iteración comenzará en el segundo elemento.
  • matriz: La matriz o rango de celdas que se va a reducir. Este parámetro es obligatorio.
  • funcion: Una función LAMBDA que se aplica a cada elemento de la matriz. La función LAMBDA debe tener dos parámetros: el primero es el acumulador (que guarda el resultado del cálculo anterior) y el segundo es el valor actual de la matriz que se está procesando. Este parámetro es obligatorio. La sintaxis de la LAMBDA es: LAMBDA(acumulador; valor; cálculo).

Ejemplos

Ejemplo 1: Suma simple

Aunque para esto ya existe la función SUMA, este ejemplo ilustra el funcionamiento básico de REDUCIR. Se inicializa el acumulador en 0 y se suma el valor de cada celda al acumulador.

A
1 10
2 20
3 30
4 40
=REDUCIR(0; A1:A4; LAMBDA(acumulador; valor; acumulador + valor))

Resultado: 100 (0+10 -> 10, 10+20 -> 30, 30+30 -> 60, 60+40 -> 100)

Ejemplo 2: Concatenar texto con separador

Este ejemplo muestra cómo unir una lista de texto en una sola celda, añadiendo una coma y un espacio como separador, pero evitando que el separador aparezca al principio.

B
1 Manzanas
2 Peras
3 Naranjas
4 Uvas
=REDUCIR(""; B1:B4; LAMBDA(a; v; SI(a=""; v; a & ", " & v)))

Resultado: "Manzanas, Peras, Naranjas, Uvas"

Ejemplo 3: Contar números pares

En este caso, se utiliza REDUCIR para contar cuántos números pares hay en un rango. El acumulador suma 1 cada vez que el valor actual de la matriz es par.

C
1 1
2 2
3 3
4 4
5 5
6 6
=REDUCIR(0; C1:C6; LAMBDA(a; v; a + SI(ES.PAR(v); 1; 0)))

Resultado: 3

Observaciones

La función REDUCIR es una de las funciones de ayuda de LAMBDA, diseñadas para expandir las capacidades de cálculo de Excel, permitiendo a los usuarios crear sus propias funciones personalizadas sin necesidad de VBA.

El poder de REDUCIR reside en su capacidad para llevar un «estado» o «memoria» (el acumulador) a través de cada paso de la iteración sobre una matriz, lo que abre la puerta a cálculos que dependen del resultado anterior.

Errores comunes

  • #¡CALC!: Ocurre si la función LAMBDA proporcionada no es válida, tiene un número incorrecto de parámetros, o si la matriz de entrada está vacía.
  • #¡VALOR!: Puede aparecer si una operación dentro de la LAMBDA no es válida para los tipos de datos que está procesando (por ejemplo, intentar sumar un texto a un número).
  • #¿NOMBRE?: Suele indicar un error de escritura en el nombre de la función (REDUCIR) o en los nombres de los parámetros dentro de la LAMBDA.

Disponibilidad por versión de Excel

La función REDUCIR está disponible en Microsoft Excel 365 y Excel para la Web.

Compatibilidad

Software Compatibilidad Notas
Microsoft Excel ✔️ Disponible en versiones de Microsoft 365.
Google Sheets ✔️ La función equivalente se llama REDUCE.
LibreOffice Calc No disponible en la versión 7.6.
OpenOffice Calc No disponible.
WPS Office Spreadsheets No disponible.
Apple Numbers No disponible.

Funciones Relacionadas

  • LAMBDA: Permite crear funciones personalizadas y reutilizables. Es un requisito para usar REDUCIR.
  • MAP: Aplica una función LAMBDA a cada elemento de una matriz y devuelve una nueva matriz con los resultados.
  • SCAN: Similar a REDUCIR, pero devuelve una matriz con los resultados intermedios de cada paso de la acumulación, no solo el valor final.
  • BYROW: Aplica una función LAMBDA a cada fila de una matriz.
  • BYCOL: Aplica una función LAMBDA a cada columna de una matriz.

Ver también...