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ónLAMBDAque se aplica a cada valor dematriz_o_intervalopara analizarlo.- 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.
- La función
- Sintaxis:
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. Es decir:nombre1: se resuelve en el valordelacumulador.nombre2: se resuelve en 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 sintaxisLAMBDAdeSCANy tener definidos exactamente dos marcadores de posición de argumentos. - La
función con nombreno 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
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 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.