function

REDUCE

Todo sobre la función REDUCE en Excel

La función REDUCE es una potente herramienta que permite procesar una matriz de datos y acumularla en un único valor resultante. Para ello, aplica una función LAMBDA personalizada a cada elemento de la matriz, llevando un registro del resultado intermedio en un «acumulador». Es ideal para crear cálculos personalizados que van más allá de una simple suma o promedio.

Imagina que tienes una lista de valores y quieres realizar una operación secuencial. REDUCE toma un valor inicial (el acumulador), lo combina con el primer elemento de la matriz, luego toma ese resultado y lo combina con el segundo elemento, y así sucesivamente hasta procesar toda la matriz. El resultado final es el valor del acumulador tras la última operación.

Sintaxis

=REDUCE([valor_inicial], matriz, lambda(acumulador, valor))

La función REDUCE utiliza los siguientes argumentos:

  • valor_inicial: El valor con el que comienza el acumulador. Por ejemplo, si se quiere sumar una lista de números, el valor inicial sería 0. Opcional. Si no se especifica, se utiliza el primer elemento de la matriz como valor inicial y el proceso comienza desde el segundo elemento.
  • matriz: La matriz o rango de celdas que se va a procesar. Obligatorio.
  • lambda: Una función LAMBDA que se aplica a cada elemento de la matriz. Esta función debe tener exactamente dos parámetros:
    • acumulador: El valor acumulado de las operaciones anteriores. En la primera iteración, contiene el valor_inicial.
    • valor: El elemento actual de la matriz que se está procesando.

    Obligatorio.

Ejemplos

Ejemplo 1: Sumar un rango de celdas

Aunque para esto ya existe la función SUMA, este ejemplo es perfecto para entender el concepto básico de acumulación.

A
1 10
2 20
3 30
=REDUCE(0, A1:A3, LAMBDA(a, v, a + v))

Resultado: 60

Cómo funciona:

  1. El acumulador (a) empieza en 0.
  2. Iteración 1: Se procesa A1 (10). El cálculo es a + v -> 0 + 10. El acumulador ahora es 10.
  3. Iteración 2: Se procesa A2 (20). El cálculo es a + v -> 10 + 20. El acumulador ahora es 30.
  4. Iteración 3: Se procesa A3 (30). El cálculo es a + v -> 30 + 30. El acumulador ahora es 60.
  5. Se devuelve el valor final del acumulador.

Ejemplo 2: Encontrar el texto más largo en una lista

REDUCE es muy útil para evaluaciones condicionales. En este caso, comparará la longitud del texto actual con la del acumulado, quedándose siempre con el más largo.

B
1 Manzana
2 Plátano
3 Fresa
4 Frambuesa
=REDUCE("", B1:B4, LAMBDA(acc, val, SI(LARGO(val) > LARGO(acc), val, acc)))

Resultado: "Frambuesa"

Cómo funciona: El acumulador (acc) empieza como un texto vacío («»). En cada paso, la fórmula compara la longitud del valor actual (val) con la del acumulador. Si el valor actual es más largo, reemplaza al acumulador. Al final, «Frambuesa» es el valor que permanece.

Ejemplo 3: Calcular el producto de números pares únicamente

Este ejemplo avanzado combina lógica condicional para filtrar valores dentro del proceso de acumulación. Se multiplicarán solo los números pares de la lista, ignorando los impares.

C
1 2
2 3
3 4
4 5
5 6
=REDUCE(1, C1:C5, LAMBDA(a, v, SI(ES.PAR(v), a * v, a)))

Resultado: 48 (que es 2 * 4 * 6)

Cómo funciona: El acumulador (a) empieza en 1 (el elemento neutro de la multiplicación). La función ES.PAR comprueba cada valor (v). Si es par, se multiplica por el acumulador. Si es impar, el acumulador conserva su valor y pasa a la siguiente iteración.

Observaciones

La función REDUCE es una de las «funciones auxiliares» de LAMBDA, diseñadas para realizar operaciones complejas con matrices de datos. Es especialmente útil cuando el resultado de una operación depende del resultado de la operación anterior.

Errores comunes

  • #¡VALOR!: Ocurre si la función LAMBDA proporcionada no es válida (por ejemplo, tiene una sintaxis incorrecta o no tiene exactamente dos argumentos).
  • #CALC!: Puede aparecer si la matriz de entrada está vacía y no se proporciona un valor_inicial.

Disponibilidad por versión de Excel

La función REDUCE está disponible para los suscriptores de Microsoft 365 y en Excel para la Web. No está disponible en versiones de licencia perpetua como Excel 2021, Excel 2019, etc.

Compatibilidad

Software Compatibilidad Notas Alternativa
Microsoft Excel ✔️ Solo en versiones de Microsoft 365.
Google Sheets ✔️ Funciona de manera idéntica.
LibreOffice Calc No disponible. Macros personalizadas (Bas)
OpenOffice Calc No disponible. Macros personalizadas
WPS Office Spreadsheets No confirmado, pero generalmente no soporta funciones LAMBDA avanzadas. No disponible
Apple Numbers No disponible. No disponible

Funciones Relacionadas

  • LAMBDA: Permite crear funciones personalizadas y reutilizables. Es un requisito para usar REDUCE.
  • MAP: Aplica una función LAMBDA a cada elemento de una matriz y devuelve una nueva matriz con los resultados.
  • SCAN: Similar a REDUCE, pero devuelve una matriz con todos los resultados intermedios del acumulador.
  • 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...