# Ejecución de las celdas de la hoja de cálculo

Al igual que en otras hojas de cálculo convencionales, el orden de ejecución de las celdas de la hoja de cálculo de In-Sight está determinado dinámicamente por las relaciones y dependencias entre las funciones de las celdas. La hoja de cálculo de In-Sight determina el orden de ejecución de las celdas evaluando en primer lugar las celdas por sus interdependencias y, en segundo lugar, por su ubicación dentro de la hoja de cálculo.

### Dependencias entre celdas

En el siguiente ejemplo, el valor de las celdas B2 y A3 depende directamente del valor de A2. La celda A4 depende indirectamente de la celda A2 porque hace referencia a la celda A3. Cada vez que se produce un cambio en el valor de A2, tienen que reevaluarse los valores de B2 y A3 y, a continuación, el de A4. Se crea automáticamente, a nivel interno, un árbol de ejecuciones para rastrear las dependencias entre las celdas; este árbol se reconstruye cada vez que se modifica la hoja de cálculo mientras el sistema está fuera de línea.

###### Ejemplo 1: Árbol sencillo de dependencias

> A2 = 1
> A3 = A2+1
> A4 = A3+1
> B2 = A2+2

Cuando se produce un cambio en el valor o la expresión de una celda, la hoja de cálculo de In-Sight localiza la celda en el árbol y determina qué celdas deben reevaluarse. En este ejemplo, si cambia el valor en A2, entonces deben reevaluarse todas las celdas dependientes (B2, A3 y A4); sin embargo, si cambia la expresión en la celda B2, entonces no tiene que actualizarse ninguna celda porque no hay ninguna que dependa de B2.

### Orden de ejecución de las celdas

Una vez evaluadas las dependencias, las celdas se evalúan en función de su ubicación dentro de la hoja de cálculo. Las celdas se ordenan primero por la coordenada de fila (de izquierda a derecha) y, a continuación, por la coordenada de columna (de arriba a abajo).

### Excepciones en el orden de ejecución de las celdas

Las siguientes funciones constituyen excepciones a la regla usual para el orden de ejecución de las celdas:

- Funciones de cronometrado
- Funciones con referencias a celdas no dependientes

En el árbol de ejecuciones, las funciones de cronometrado se sitúan siempre en la parte superior del árbol porque necesitan acceder a los datos antiguos de otras celdas.

Hay varias funciones que admiten como argumento referencias a celdas, pero que no establecen por ello ninguna dependencia. Una de estas funciones es, por ejemplo, la función Row que devuelve la coordenada de fila de la celda a la que se hace referencia.

### ¿Qué es lo que desencadena la ejecución?

Las celdas se ejecutan cuando:

- se ha modificado una celda que contiene dependientes;
- se producen eventos externos tales como los desencadenantes.
- Los controles gráficos (como Botón, Casilla, EditInt) señalan un desencadenante de algún evento en la hoja de cálculo.

La mayoría de las funciones del conjunto de herramientas Vision Tools dependen directa o indirectamente de la función (Celda A0 por defecto). Cada vez que se captura una nueva imagen, se ejecutan dichas funciones y estas devuelven nuevos valores. Además, la hoja de cálculo se actualiza cada vez que se activa una captura de imágenes u otro evento en la hoja de cálculo.