Función SCAN

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 de acumulador.
  • matriz_o_intervalo: matriz o intervalo que se va a analizar.
  • LAMBDA: una función LAMBDA que se aplica a cada valor de matriz_o_intervalo para analizarlo.
    • Sintaxis: LAMBDA(nombre1; nombre2; expresión_fórmula)
    • Requisitos:
      • La función LAMBDA debe tener exactamente dos argumentos nombre y una expresión_fórmula que use esos nombres. Al aplicar la función LAMBDA, el argumento nombre1 se resuelve en el valor actual del acumulador y el argumento nombre2 se resuelve en el valor_actual de la matriz_o_intervalo. El acumulador se actualiza en cada paso al valor intermedio obtenido en el paso anterior.

Notas

  • La función LAMBDA enviada debe aceptar exactamente dos argumentos nombre. Si no, se devuelve un error #N/A. Estos argumentos se corresponden con acumulador y valor_actual, en ese orden. Es decir:
    • nombre1: se resuelve en el valor del acumulador.
    • nombre2: se resuelve en el valor_actual de la matriz de entrada.
  • El acumulador se inicializa con el valor_inicial y se actualiza en cada paso al valor intermedio obtenido en el paso anterior.
  • Mientras se aplique LAMBDA, el valor_actual de la matriz de entrada aparece fila por fila.

  • En este caso, una función con nombre puede pasar por parámetro LAMBDA y comportarse como una función LAMBDA. Más información sobre las funciones con nombre
    • La función con nombre debe utilizar la sintaxis LAMBDA de SCAN y tener definidos exactamente dos marcadores de posición de argumentos.
    • La función con nombre no debe ir seguida de un paréntesis.

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.

Crear una copia

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 nombre

Si 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.

El último parámetro de SCAN no era una LAMBDA

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.

La LAMBDA enviada a SCAN no es correcta

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.

Uno o más valores intermedios producidos por la aplicación de la función LAMBDA no son valores únicos

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 una expresió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.
true
Visita el centro de aprendizaje

¿Usas productos de Google, como Documentos de Google, en el trabajo o en clase? Prueba estos eficientes consejos, tutoriales y plantillas. Consulta cómo trabajar con archivos de Office sin instalar Office, crear calendarios de equipo y planes de proyectos dinámicos, organizar automáticamente tu bandeja de entrada y muchas cosas más.

Búsqueda
Borrar búsqueda
Cerrar búsqueda
Aplicaciones de Google
Menú principal