Esta función analiza una matriz y genera valores intermedios aplicando una función LAMBDA
a cada valor. Devuelve una matriz de los valores intermedios obtenidos en cada paso.
Ejemplo de uso
SCAN(5; A1:A3; LAMBDA(acumulador; valor_actual; acumulador+valor_actual))
SCAN(2; A1:A3; LAMBDA(acumulador; valor_actual; acumulador*valor_actual))
Sintaxis
SCAN(valor_inicial; matriz_o_intervalo; LAMBDA)
valor_inicial
: el valor inicial deacumulador
.matriz_o_intervalo
: matriz o intervalo que se va a analizar.LAMBDA
: una funciónLAMBDA
que se aplica a cada valor dematriz_o_intervalo
para analizarlo.- Sintaxis:
LAMBDA(nombre1; nombre2; expresión_fórmula)
- Requisitos:
- La función
LAMBDA
debe tener exactamente dos argumentosnombre
y unaexpresión_fórmula
que use esosnombres
. Al aplicar la funciónLAMBDA
, el argumentonombre1
se resuelve en el valor actual delacumulador
y el argumentonombre2
se resuelve en elvalor_actual
de lamatriz_o_intervalo
. Elacumulador
se actualiza en cada paso al valor intermedio obtenido en el paso anterior.
- La función
- Sintaxis:
Notas
- La función
LAMBDA
enviada debe aceptar exactamente dos argumentosnombre
. Si no, se devuelve un error#N/A
. Estos argumentos se corresponden conacumulador
yvalor_actual
, en ese orden. Es decir:nombre1
: se resuelve en el valoracumulador
.nombre2
: se resuelve en elvalor_actual
de la matriz de entrada.
- El
acumulador
se inicializa con elvalor_inicial
y se actualiza en cada paso al valor intermedio obtenido en el paso anterior.
-
Mientras se aplique
LAMBDA
, elvalor_actual
de la matriz de entrada aparece fila por fila.
- En este caso, una
función con nombre
puede pasar por parámetroLAMBDA
y comportarse como una funciónLAMBDA
. Más información sobre las funciones con nombre- La
función con nombre
debe utilizar la sintaxisLAMBDA
deSCAN
y tener definidos exactamente dos marcadores de posición de argumentos. - La
función con nombre
no debe ir seguida de un paréntesis.
- La
Ejemplos
Devuelve el total de una matriz en ejecución
Datos de ejemplo:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
Ejemplo: =SCAN(5; A1:A3; LAMBDA(acumulador; valor_actual; acumulador+valor_actual))
Resultado:
9 |
11 |
12 |
Devuelve el porcentaje acumulado del valor total
Datos de ejemplo:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
Ejemplo: =SCAN(0; A1:A3; LAMBDA(acumulador; valor_actual; acumulador + valor_actual/suma(A1:A3)))
Resultado:
0,57 |
0,85 |
1 |
Si hay una función con nombre como LAMBDA, se devuelve el total de una matriz en ejecución y se reinicia el cálculo cuando el resultado sea 0.
Datos de ejemplo:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
4 |
0 |
5 |
3 |
6 |
6 |
Ejemplo: =SCAN(0; A1:A6; RUNNING_TOTAL_0)
Función con nombre: RUNNING_TOTAL_0
es una función con nombre
que devuelve el total de una matriz en ejecución y reinicia el cálculo cuando el valor_actual
es 0.
Definición de la fórmula: =si(valor_actual=0; valor_actual; acumulador+valor_actual)
, donde acumulador
y valor_actual
son marcadores de posición de argumentos definidos para RUNNING_TOTAL_0
.
Resultado:
4 |
6 |
7 |
0 |
3 |
9 |
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: =SCAN(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 SCAN
no era una función LAMBDA
, se produce este error:
“El argumento debe ser una LAMBDA”.
Ejemplo: =SCAN(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: =SCAN(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.
Si la aplicación de LAMBDA
en la matriz de entrada produce cualquier valor intermedio que no sea único se produce este error:
“Se esperaba un solo valor. No se admiten resultados de matriz anidados”.
Ejemplo: =SCAN(5; C1:C4; LAMBDA(acumulador; valor; {acumulador; valor}))
Todas las aplicaciones de LAMBDA
deben generar un valor intermedio que sea un valor único, no otra matriz.
Funciones relacionadas
- Función LAMBDA: esta función te permite generar y devolver una función personalizada con un conjunto de
nombres
y unaexpresión_fórmula
que los utiliza. - Función MAP: esta función asigna cada valor de las matrices a un nuevo valor.
- Función REDUCE: esta función reduce una matriz a un resultado acumulado.
- Función BYROW: esta función agrupa una matriz por filas.
- Función BYCOL: esta función agrupa una matriz por columnas.
- Función MAKEARRAY: esta función crea una matriz calculada de dimensiones especificadas.
- Crear y usar funciones con nombre: esta función permite crear y almacenar funciones personalizadas de forma similar a
LAMBDA
.