Esta función reduce una matriz a un resultado acumulado mediante la aplicación de una función LAMBDA a cada valor.
Ejemplo de uso
REDUCE(5; A1:A3; LAMBDA(acumulador; valor_actual; acumulador+valor_actual))
REDUCE(2; A1:A3; LAMBDA(acumulador; valor_actual; acumulador*valor_actual))
Sintaxis
REDUCE(valor_inicial; matriz_o_intervalo; LAMBDA)
valor_inicial: el valor inicial deacumulador.matriz_o_intervalo: matriz o intervalo que se va a reducir.LAMBDA: una funciónLAMBDAque se aplica a cada valor dematriz_o_intervalopara reducirlo.- Sintaxis:
LAMBDA(nombre1; nombre2; expresión_fórmula) - Requisitos:
- La función
LAMBDAdebe tener exactamente dos argumentosnombrey unaexpresión_fórmulaque use esosnombres. Al aplicar la funciónLAMBDA, el argumentonombre1se resuelve en el valor actual delacumuladory el argumentonombre2se resuelve en elvalor_actualde lamatriz_o_intervalo. Elacumuladorse actualiza en cada paso al valor intermedio obtenido en el paso anterior. Ejemplo de operación de multiplicación sencilla
- La función
Notas
- La función
LAMBDAenviada debe aceptar exactamente dos argumentosnombre. Si no, se devuelve un error#N/A. Estos argumentos se corresponden conacumuladoryvalor_actual, en ese orden. Por aclarar:nombre1: se resuelve con el valor actual delacumulador.nombre2: se resuelve con elvalor_actualde la matriz de entrada.
- El
acumuladorse inicializa con elvalor_inicialy se actualiza en cada paso al valor intermedio obtenido en el paso anterior.
- Mientras se aplique
LAMBDA, elvalor_actualde la matriz de entrada aparece fila por fila.
- En este caso, una
función con nombrepuede pasar por parámetroLAMBDAy comportarse como una funciónLAMBDA. Más información sobre las funciones con nombre- La
función con nombredebe utilizar la sintaxisLAMBDAdeREDUCEy tener definidos exactamente dos marcadores de posición de argumentos. - La
función con nombreno debe ir seguida de un paréntesis.
- La
Ejemplos
Multiplicación sencilla
Devuelve el producto de todos los elementos de A1:A3 y de valor_inicial.
Datos de ejemplo:
|
A |
|
|---|---|
|
1 |
3 |
|
2 |
2 |
|
3 |
4 |
Ejemplo: =REDUCE(5; A1:A3; LAMBDA(acumulador; valor_actual; acumulador*valor_actual))
Cómo funciona:
De entrada, el acumulador es igual a 5
1. Procesando la celda A1:
|
|
Después de procesar la celda A1:
|
|
2. Procesando la celda A2:
|
|
Después de procesar la celda A2:
|
|
3. Procesando la celda A3:
|
|
Después de procesar la celda A3:
|
|
Resultado:
|
120 |
Suma si el precio es superior o igual a 20 $
Añade todos los precios que sean superiores o iguales a 20 $.
Datos de ejemplo:
|
A |
|
|---|---|
|
1 |
50 $ |
|
2 |
10 $ |
|
3 |
30 $ |
|
4 |
20 $ |
Ejemplo: =REDUCE(0; A1:A4; LAMBDA(acumulador; precio; si(precio>=20; acumulador + precio; acumulador)))
Resultado:
|
100 $ |
Usa una función con nombre como función LAMBDA
Devuelve el precio final después de aumentarlo en un determinado porcentaje cada periodo.
Datos de ejemplo:
|
A |
B |
C |
|
|---|---|---|---|
|
1 |
2022 |
10 % |
Precio inicial: |
|
2 |
2023 |
5 % |
100 $ |
|
3 |
2024 |
5 % |
|
|
4 |
2025 |
10 % |
Ejemplo: =REDUCE(C2;B1:B4;PRICE_INCREASE)
Función con nombre: PRICE_INCREASE es una función con nombre que genera el resultado de aumentar el valor del porcentaje de la columna B.
Definición de la fórmula: =acumulador+acumulador*celda, donde acumulador y celda son marcadores de posición de argumentos definidos para PRICE_INCREASE
Resultado:
|
133,4 |
Usa una función con nombre como función LAMBDA con un conjunto de datos bidimensional
Consulta la lista de empleados únicos del trimestre manteniendo el mismo orden por fila.
Datos de ejemplo:
|
A |
B |
C |
|||
|---|---|---|---|---|---|
|
1 |
T1 |
T2 |
T3 |
T4 |
|
|
2 |
2020 |
Juan |
Adrián |
Estefanía |
Adrián |
|
3 |
2021 |
Pedro |
Mariano |
Juan |
Cecilia |
|
4 |
2022 |
Estefanía |
Miguel |
Pedro |
Adrián |
Función con nombre: ADD_IF_NOT_PRESENT es una función con nombre que añade un valor de cadena determinado a una matriz de valores.
Definición de la función: =SI(CONTAINS(valor_nuevo; valores_existentes); valores_existentes {valores_existentes; valor_nuevo}), donde valores_existentes y valor_nuevo son marcadores de posición de argumentos definidos para ADD_IF_NOT_PRESENT, en ese orden. CONTAINS es otra función con nombre.
Ejemplo: =REDUCE({B2}; B2:E4; ADD_IF_NOT_PRESENT)
Resultado:
|
Juan |
Adrián |
Estefanía |
Pedro |
Mariano |
Cecilia |
Miguel |
Errores frecuentes
La función LAMBDA enviada no tiene exactamente dos argumentos nombreSi la función LAMBDA no tiene dos argumentos nombre, se produce este error:
"Número incorrecto de argumentos para LAMBDA. Se esperaban tres argumentos, pero se han obtenido dos".
Ejemplo: =REDUCE(5; C1:C4; LAMBDA(valor_actual; valor_actual+1))
En este ejemplo, LAMBDA solo tiene un argumento nombre cuando se necesitan dos.
Si el último parámetro de la función REDUCE no era una función LAMBDA, se produce este error:
“El argumento debe ser una LAMBDA”.
Ejemplo: =REDUCE(5; C1:C4; 3)
En este ejemplo, la última función es 3, no LAMBDA.
Si uno o varios argumentos nombre no son válidos, se produce este error:
“El argumento 1 de la función LAMBDA no es un nombre válido”.
Ejemplo: =REDUCE(5; C1:C4; LAMBDA(C1; v; C1+v))
En este ejemplo, C1 no es un nombre válido porque entra en conflicto con un intervalo.
Funciones relacionadas
- Función LAMBDA: esta función te permite generar y devolver una función personalizada con un conjunto de
nombresy unaexpresión_fórmulaque los utiliza. - Función MAP: esta función asigna cada valor de las matrices a un nuevo valor.
- Función BYROW: esta función agrupa una matriz por filas.
- Función BYCOL: esta función agrupa una matriz por columnas.
- Función SCAN: analiza una matriz y genera valores intermedios.
- Función MAKEARRAY: esta función crea una matriz calculada de dimensiones especificadas.
- Crear y usar funciones con nombre: esta función te permite crear y almacenar funciones personalizadas de forma similar a
LAMBDA.