Above - función de gráfico

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

Syntax:  

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

Return data type: dual

Arguments:  

Argumento Descripción
expr La expresión o el campo que contiene los datos que se han de medir.
offset

Especificar un offsetn mayor que 0 mueve la evaluación de la expresión n filas hacia arriba de la fila actual.

Especificar un offset de 0 evaluará la expresión en la fila actual.

Especificar un número offset negativo hace que la función Above opere como la función Below con el correspondiente número de offset positivo.

count

Especificando un tercer argumento count mayor que 1, la función devolverá un rango de valores count, uno por cada fila de la tabla count contando hacia arriba desde la celda original.

De esta manera, la función puede utilizarse como argumento en cualquiera de las funciones de rango especiales. Funciones de rango

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.

Definir el ámbito de agregación

En la primera fila de un segmento de columna, se devuelve un valor NULL, ya que no hay ninguna fila encima de él.

Note: Un 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.
Note: Si 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.

Limitations:  

Recursive calls will return NULL.

Examples and results:  

Example 1:  

Visualización de la tabla para el ejemplo 1.

En la captura de pantalla de la tabla que se muestra en este ejemplo, la visualización de la tabla se crea a partir de la dimensión Customer y las medidas: Sum(Sales) y Above(Sum(Sales)).

La columna Above(Sum(Sales)) devuelve NULL para la fila Customer que contiene a Astrida, porque no hay ninguna fila encima. El resultado para la fila Betacab muestra el valor de Sum(Sales) para Astrida, el resultado de Canutility muestra el valor de Sum(Sales) para Betacab, etc.

Para la columna etiquetada como Sum(Sales)+Above(Sum(Sales)), la fila de Betacab muestra el resultado de la suma de los valores Sum(Sales) para las filas Betacab + Astrida (539+587). El resultado de la fila Canutility muestra el resultado de la suma de los valores Sum(Sales) para Canutility + Betacab (683+539).

La medida etiquetada como Above offset 3 creada usando la expresión Sum(Sales)+Above(Sum(Sales), 3) tiene el argumento offset fijado en 3, y tiene el efecto de tomar el valor de la fila tres filas por encima de la fila actual. Añade el valor Sum(Sales) del actual cliente Customer al valor de cliente Customer tres filas por encima. Los valores devueltos para las tres primeras filas Customer son nulos.

La tabla también muestra medidas más complejas: una creada desde Sum(Sales)+Above(Sum(Sales)) y otra etiquetada como Higher?, la cual se crea desde IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').

Tip: Esta función también puede utilizarse en gráficos distintos de tablas, por ejemplo en gráficos de barras.
Tip: Para otros tipos de gráficos, convierta el gráfico a la tabla simple equivalente para que pueda interpretar fácilmente con qué fila está relacionada la función.

Example 2:  

En las capturas de pantalla de las tablas que se muestran en este ejemplo, se han agregado más dimensiones a las visualizaciones: Month y Product. Para los gráficos con más de una dimensión, los resultados de las expresiones que contienen las funciones Above, Below, Top y Bottom dependen del orden en que Qlik Sense ordena las dimensiones de columna. Qlik Sense evalúa las funciones basándose en los segmentos de columna que resultan de la dimensión que se ordena en último lugar. El criterio de ordenación de columnas se controla en el panel de propiedades bajo Ordenación y no es necesariamente el orden en que las columnas aparecen en una tabla.

En la siguiente captura de pantalla de la visualización de la tabla para el ejemplo 2, la última dimensión es Month, por lo que la función Above se evalúa en función de los meses. Hay una serie de resultados para cada valor Product de cada mes (Jan a Aug): un segmento de columna. A esto le sigue una serie para el siguiente segmento de columna: para cada Month para el próximo Product. Habrá un segmento de columna por cada valor de Customer para cada Product.

Visualización de la tabla para el ejemplo 2.

Example 3:  

En la captura de pantalla de la visualización de tabla para el ejemplo 3, la última dimensión ordenada es Product. Esto se hace moviendo la dimensión Product a la posición 3 en la pestaña Ordenar del panel de propiedades. La función Above se evalúa para cada Product, y como solo hay dos productos, AA y BB, solo hay un resultado no nulo en cada serie. En la fila BB para el mes Jan, el valor de Above(Sum(Sales)) es 46. Para la fila AA, el valor es nulo. El valor de cada fila AA para cualquier mes siempre será nulo, puesto que no hay ningún valor de Product por encima de AA. La segunda serie se evalúa en AA y BB para el mes Feb, para el valor Customer, Astrida. Cuando se han evaluado todos los meses para Astrida, la secuencia se repite para el segundo CustomerBetacab, y así sucesivamente.

Visualización de la tabla para el ejemplo 3.

Example 4:  

Resultado

La función Above se puede utilizar como entrada a las funciones de rango. Por ejemplo: RangeAvg (Above(Sum(Sales),1,3)).

En los argumentos de la función Above(), offset está fijado en 1 y count está fijado en 3. La función halla los resultados de la expresión Sum(Sales) en las tres filas inmediatamente por encima de la fila actual en el segmento de columna (donde haya una fila). Estos tres valores se utilizan como entrada a la función RangeAvg(), que encuentra el valor promedio en el rango de números proporcionado.

Una tabla con Customer como dimensión da los siguientes resultados para la expresión RangeAvg().

Astrida

Betacab

Canutility

Divadip:

-

587

563

603

Datos utilizados en los ejemplos:

Monthnames:

LOAD * INLINE [

Month, 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 (Month, 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 '|');

Para ordenar los meses correctamente cuando cree sus visualizaciones, diríjase a la sección Sorting del panel de propiedades, seleccione Month y active la casilla Sort by expression. En el cuadro de expresión, escriba Monthnumber.