# Before - función de gráfico

Before() devuelve el valor de una expresión evaluada con los valores de dimensión de una tabla pivotante tal y como aparecen en la columna anterior a la columna actual dentro de un segmento de fila en la tabla pivotante.

Sintaxis:

Before([TOTAL] expr [, offset [, count]])

Nota informativaEsta función devuelve NULL en todos los tipos de gráfico excepto en las tablas dinámicas.

Nota informativaNo se permite ordenar por valores Y en gráficos ni ordenar por columnas de expresión en tablas cuando esta función de gráfico se usa en cualquiera de las expresiones del gráfico. Estas alternativas de ordenación están por lo tanto automáticamente deshabilitadas. Cuando utiliza esta función de gráfico en una visualización o tabla, el orden de la visualización volverá a la entrada ordenada de esta función.

Argumentos

| Argumento | Descripción |
| --- | --- |
| expr | La expresión o el campo que contiene los datos que se han de medir. |
| offset | Especificar un offset n, mayor que 1 desplaza la evaluación de la expresión n columnas más a la izquierda de la columna actual.<br><br>Si se especifica un desplazamiento (offset) de 0, la expresión se evaluará en la columna actual.<br><br>Especificar un número de desplazamiento (offset) negativo hace que la función Before opere como la función After con el correspondiente número de offset positivo. |
| count | Especificando un tercer parámetro count mayor que 1, la función devolverá un rango de valores, uno por cada una de las columnas de la tabla hasta el valor de count, contando hacia la izquierda desde la celda original. |
| TOTAL | Si la tabla es unidimensional o si el cualificador TOTAL se utiliza como argumento, el segmento de columna actual es siempre igual a la columna completa.<br><br>[Definir el ámbito de agregación](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

En la primera columna de un segmento de fila devolverá un valor NULL, puesto que ya no hay ninguna columna antes de esta.

Si la tabla dinámica tiene múltiples dimensiones horizontales, el segmento de fila actual incluirá solo columnas que tengan los mismos valores que la columna actual en todas las filas de dimensión excepto la fila que muestra la última dimensión horizontal conforme al criterio de ordenación de los campos. El criterio de ordenación entre campos para dimensiones horizontales en tablas pivotantes viene definido simplemente por el orden de las dimensiones de arriba a abajo..

Ejemplo: expresiones de gráfico

| Ejemplo | Resultado |
| --- | --- |
| `Before( Sum(Sales ))` | Devuelve la suma de `Sales` de la columna anterior inmediatamente a la izquierda en relación con la columna actual. |
| `Before( Sum(Sales ), 2)` | Devuelve la suma de `Sales` de la columna que está dos columnas a la izquierda de la columna actual. |
| `Before( Total Sum( Sales ))` | Devuelve la suma total de `Sales` de la columna anterior inmediatamente a la izquierda en relación con la columna actual. |
| `RangeAvg ( Before(Sum(x),1,3))` | Devuelve una media de los tres resultados de la función `sum(x)` evaluados en las tres columnas situadas inmediatamente a la izquierda de la columna actual. |

## Ejemplo: fundamentos de Before

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/before.htm)

#### Expresión de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Year`

  * `Quarter`

  * `Sales`

Script de carga

```
Example:
Load * inline [
Year, Quarter, Sales
2023, Q1, 5000
2023, Q2, 4000
2023, Q3, 6000
2023, Q4, 7000
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla dinámica y añada este campo como dimensión de fila:

* `Year`

Añada este campo como dimensión de columna:

* `Quarter`

Cree las siguientes medidas:

* `=Sum(Sales)`, para calcular la suma de las ventas.

* `=Before(Sum(Sales))`, para mostrar la suma de las ventas del trimestre anterior.

Tabla de resultados

| Year | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) |  |
| 2023 | 5000 | - | 4000 | 5000 | 6000 | 4000 | 7000 | 6000 |

Observando los resultados, puede ver cómo la función `Before` devuelve el valor de la columna anterior que está inmediatamente a la izquierda de la columna `Sum(Sales)` para cada `Quarter`. Por ejemplo, en el cuarto trimestre el valor de `Sum(Sales)` para ese período es `7000`. El resultado de salida de la función `Before` para `Q4` es `6000`, que es el valor de la columna situada inmediatamente a la izquierda de `Sum(Sales)` para `Q4`, es decir, `Sum(Sales)` para `Q3`.

## Ejemplo: uso de la función Before para calcular el crecimiento interanual de las ventas

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/before.htm)

#### Expresión de gráfico

Vista general

Un conjunto de datos contiene cifras de ventas de varios años. La empresa desea presentar el total de ventas de cada año y el crecimiento de las ventas basado en el valor del año anterior.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Year`

  * `Sales`

Script de carga

```
Example:
Load * inline [
Year, Sales
2021, 1300
2022, 1800
2023, 2000
2024, 2100
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla dinámica y añada este campo como dimensión de columna:

* ` Year
                                       `

Cree las siguientes medidas:

* `=Sum(Sales)`, para calcular la suma de las ventas.

* `=(Sum(Sales) - Before(Sum(Sales))) / Before(Sum(Sales))`, para calcular el crecimiento anual de las ventas. Para mostrar este valor como porcentaje, en Formato numérico, seleccione Número &gt; Formato simple &gt; 12,34%.

Tabla de resultados

| 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) |
| 1300 | - | 1800 | 38,46 % | 2000 | 11,11% | 2100 | 5,00% |

El resultado de salida de la función `Before` devuelve el crecimiento interanual basado en las cifras de ventas del año anterior. Por ejemplo, la suma de las ventas de `2022` fue `38.46%`, superior a la de `Sum(Sales)` de `2021`.

Nota de sugerenciaTambién puede utilizar la función `After` para realizar el mismo cálculo de crecimiento de las ventas en este escenario. Cuando especifica un número de desplazamiento negativo en los parámetros de la función, hace que la función `After` opere como la función `Before` con el correspondiente número de desplazamiento positivo. Por ejemplo, la siguiente expresión utilizando la función `After` (con un valor de desplazamiento negativo de `-1`) devuelve los mismos resultados de crecimiento anual de las ventas que la función `Before`:   
`=(Sum(Sales)-After(Sum(Sales),-1))/(After(Sum(Sales),-1))`.