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
matrizy 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
LAMBDAproporcionada 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
LAMBDAno 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.
