# Top - función de gráfico

Top() evalúa una expresión en la primera fila (superior) de un segmento de columna en una tabla. La fila para la que se calcula depende del valor de offset, si está presente, el valor predeterminado es la fila superior. Para los gráficos que no sean tablas, la evaluación Top() se realiza en la primera fila de la columna actual en el equivalente de tabla simple del gráfico.

Sintaxis:

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

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| expr | La expresión o el campo que contiene los datos que se han de medir. |
| offset | Especificar un offset de n, mayor que 1, desplaza la evaluación de la expresión hacia abajo, n filas por debajo de la fila superior.<br><br>Especificar un número de desplazamiento (offset) negativo hace que la función Top opere como la función Bottom 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 count, uno por cada una de las últimas filas count del actual segmento de columna. De esta manera, la función puede utilizarse como argumento en cualquiera de las funciones de rango especiales. [Funciones de rango](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| 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/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Nota informativaUn segmento de columna se define como un subconjunto consecutivo de celdas que tienen los mismos valores para las dimensiones de la ordenación actual. Las funciones inter-registro se calculan en el segmento de columna excluida la dimensión más a la derecha del gráfico de tabla simple equivalente. Si solo hay una dimensión en el gráfico, o si se especifica el cualificador TOTAL, la expresión se evalúa en la tabla completa.

Nota informativaSi la tabla o el equivalente de tabla tiene múltiples dimensiones verticales, el segmento de columna actual incluirá solo filas con los mismos valores que la fila actual en todas las columnas de dimensión, excepto para la columna que muestra la última dimensión en el orden de campos interno.

Limitaciones:

* Las llamadas recursivas devolverán NULL.

* No 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.

Ejemplo: Expresiones de gráficos

| Ejemplo | Resultado |
| --- | --- |
| `Top( Sum(Sales) )` | Devuelve el valor de `Sales` de la primera fila (superior) de un segmento de columna en una tabla. |

## Ejemplo: fundamentos de Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.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`

  * `Sales`

Script de carga

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* `Year`

Cree las siguientes medidas:

* `=Sum(Sales)`, para hallar las ventas anuales.

* `=Top(Sum(Sales))`, para hallar el valor de las ventas del primer año, es decir, la primera fila (superior) de una columna de una tabla.

* `=Sum(Sales) - Top(Sum(Sales))`, para calcular la varianza entre el valor `Sales` de la fila actual y el valor de la primera fila (superior) de una columna.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, para calcular la varianza entre el valor de venta de la fila actual y el valor de la 3ª fila desde arriba.

* `=(Sales - Top(Sales)) / Top(Sales)`, para devolver el cambio en `Sales` como ratio / porcentaje en comparación con la primera fila. Para mostrar este valor como porcentaje, en Formato numérico, seleccione Número &gt; Formato simple &gt; 12,34%.

Ordene la tabla de la dimensión `Year` por orden ascendente.

Tabla de resultados

| Year | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) - Top(Sum(Sales)) | Sum(Sales)-Top(Sum(Sales), 3) | (Sales - Top(Sales)) / Top(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1000 | 6200 | 6000 | - |
| 2019 | 1000 | 1000 | 0 | -200 | 0.00% |
| 2020 | 1500 | 1000 | 500 | 300 | 50.00% |
| 2021 | 1200 | 1000 | 200 | 0 | 20.00% |
| 2022 | 1800 | 1000 | 800 | 600 | 80.00% |
| 2023 | 1700 | 1000 | 700 | 500 | 70.00% |

Si observa los resultados, podrá comparar los valores de `Sales` del periodo actual con los del periodo superior (o primero).

* La medida `Sum(Sales) - Top(Sum(Sales))` devuelve el cambio en los valores de `Sales` comparando el periodo actual con el primero.

* La medida `Sum(Sales)-Top(Sum(Sales), 3)` devuelve la suma de `Sales` de la fila actual menos el tercer periodo desde arriba.

* La medida `=(Sales - Top(Sales)) / Top(Sales)` devuelve el cambio en `Sales` comparado con el primer periodo en forma de porcentaje.

Nota de sugerenciaEsta función también puede utilizarse en gráficos distintos de tablas, por ejemplo en gráficos de barras.

Haga lo siguiente:

Cree un gráfico de barras y, a continuación, añada este campo como dimensión:

* `Year`

Cree la siguiente medida:

* `=Sum(Sales)- Top(Sum(Sales))`, para devolver la varianza de las ventas entre el periodo actual y el periodo superior.

Gráfico de barras que muestra los resultados de la función Top

Gráfico de barras que muestra los resultados de la función Top

Gráfico de barras que muestra los resultados de la función TopTop ![Gráfico de barras que muestra la varianza de las ventas entre el periodo actual y el periodo anterior (o primero).](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

El uso de la función `Top` en un gráfico de barras proporciona una comparación visual de la varianza entre las ventas del periodo actual frente al periodo anterior (o primero).

## Ejemplo: uso de Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.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:

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Script de carga

```
Example:
LOAD * INLINE [
OrderID, Product, SalesValue, OrderDate
1, "Product A", 500, '2023-01-10'
2, "Product B", 300, '2023-01-15'
3, "Product C", 450, '2023-02-01'
4, "Product D", 700, '2023-02-20'
5, "Product E", 350, '2023-03-05'
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* `Product`

Cree las siguientes medidas:

* `=RangeAvg(Top(Sum(SalesValue),1,3))` para devolver la media de las tres filas superiores.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))` para calcular la varianza entre la fila actual y la media de las tres filas superiores.

* `=Sum(SalesValue)` para calcular el total de `SalesValue` para la fila actual.

Tabla de resultados

| Product | RangeAvg(Top(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 416.67 | 1883.33 | 2300 |
| 2019 | 416.67 | 83.33 | 500 |
| 2020 | 416.67 | --116.67 | 300 |
| 2021 | 416.67 | 33.33 | 450 |
| 2022 | 416.67 | 283.33 | 700 |
| 2023 | 416.67 | -66.67 | 350 |

Los resultados muestran cómo puede utilizar la combinación de las funciones `RangeSum` y `Top` para analizar y comparar los valores de ventas.

## Ejemplo: expresión de gráfico utilizando Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.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:

* Dos tablas de datos llamadas `Monthnames` y `Sales2013`.

Script de carga

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];

Sales2013:
Crosstable (MonthText, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|'); 
                                
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* `Customer`

Cree las siguientes medidas:

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

* `=Top(Sum(Sales))`, para mostrar la suma de las ventas de `Customer` en la fila superior.

* `=Sum(Sales)+Top(Sum(Sales))`, para sumar el valor de `Sum(Sales)` del `Customer` actual con el `Customer` de la fila superior.

* `=Sum(Sales)+Top(Sum(Sales), 3)`, para sumar el valor de `Sum(Sales)` del `Customer` actual con el valor de la `Customer` que es el tercero de la fila superior.

Tabla de resultados

| Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales), 3) |
| --- | --- | --- | --- | --- |
| Totals | 2566 | 587 | 3153 | 3249 |
| Astrida | 587 | 587 | 1174 | 1270 |
| Betacab | 539 | 587 | 1126 | 1222 |
| Canutilty | 683 | 587 | 1270 | 1366 |
| Divadip | 757 | 587 | 1344 | 1440 |

La medida `Top(Sum(Sales))` devuelve `587` para todas las filas porque este es el valor de la fila superior: `Astrida`.

Para la medida `Sum(Sales)+Top(Sum(Sales))`, la fila `Betacab` devuelve `1126`, que es el resultado de sumar el valor de `Sum(Sales)` de `Betacab` y `Astrida`, el `Customer` de la fila superior.

Para la medida `Sum(Sales)+Top(Sum(Sales), 3)`, el argumento de `offset` se fija en `3`. La expresión suma el valor de `Sum(Sales)` de la fila actual y la tercera fila desde arriba, `Canutility`. Por ejemplo, devuelve el valor `1440` para el cliente `Divadip`. Es el resultado de sumar el valor de `Sum(Sales)` para `Divadip` y el de `SumSales` para `Canutility` (`757`+`683`).

## Más información

* [Bottom - función de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - función de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - función de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Función de script y de gráfico](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Funciones de rango](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)