Saltar al contenido principal Saltar al contenido complementario

Above

Above() evalúa una expresión situada una fila por encima de la fila actual con un segmento de columna en una tabla. La fila para la que se calcula depende del valor de offset. Si está presente, se tomará de forma predeterminada la fila situada directamente encima. Para los gráficos que no sean tablas, Above() devuelve la fila encima de la fila actual en el equivalente de tabla simple del gráfico.

Sintaxis:  

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

Tipo de datos que devuelve: dual

Argumentos:  

  • expr: La expresión o el campo que contiene los datos que se han de medir.
  • offset: especificando un offset n, mayor que 0, se desplaza la evaluación de la expresión n filas más arriba de la fila actual. Especificar un offset de 0 evaluará la expresión en la fila actual. Especificar un número de offset (desplazamiento) negativo hará que la función Above sea equivalente a una 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 una de count filas de la tabla 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 se utiliza el cualificador TOTAL como argumento, el segmento de columna actual es siempre igual a la columna entera.

    Definir el ámbito de agregación

En la primera fila de un segmento de columna se devuelve un valor NULL, dado que no hay ninguna fila por encima de esta.

Nota informativaUn segmento de columna se define como un subconjunto consecutivo de celdas que tienen los mismos valores para las dimensiones en 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 calificador TOTAL, la expresión se evalúa en toda la tabla.
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.

Ejemplos y resultados:  

Ejemplo 1:  

Ejemplo de tabla de resultados
Customer Sum(Sales) Above(Sum(Sales)) Sum(Sales) + Above(Sum(Sales)) Above offset 3 Higher?
- 2566 - - - -
Astrida587----
Betacab5395871126--
Canutility6835391222-Higher
Divadip75768314401344Higher

En la representación del gráfico de tabla mostrado en este ejemplo, 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 Astrida, ya que no hay ninguna fila por encima de ella. 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').

Nota de sugerenciaEsta función también puede utilizarse en gráficos distintos de tablas, por ejemplo en gráficos de barras.
Nota de sugerenciaPara los demás 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.

Ejemplo 2:  

En las representaciones de gráficos de tabla mostrados en este ejemplo, se han añadido más dimensiones a los gráficos: Month y Product. Para 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 QlikView clasifica las dimensiones de columna. QlikView 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, en Ordenación y no es necesariamente el orden en el que las columnas aparecen en una tabla.

En la representación siguiente del gráfico de tabla del Ejemplo 2, la dimensión situada en último lugar es Month, de modo que la función Above se evalúa por meses. Hay una serie de resultados para cada valor Product para cada mes (de 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 Customer para cada Product.

Ejemplo de tabla de resultados
Customer Product Month Sum(Sales) Above(Sum(Sales))
- - - 2566 -
AstridaAAJan46-
AstridaAAFeb6046
AstridaAAMar7060
AstridaAAApr1370
AstridaAAMay7813
AstridaAAJun2078
AstridaAAJul4520
AstridaAAAug6545

Ejemplo 3:  

En la representación del gráfico de tabla del Ejemplo 3, la dimensión situada en último lugar es Product. Esto se consigue moviendo la dimensión Product a la posición 3 de 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.

Ejemplo de tabla de resultados
Customer Product Month Sum(Sales) Above(Sum(Sales))
- - - 2566 -
AstridaAAJan46-
AstridaBBJan4646
AstridaAAFeb60-
AstridaBBFeb6060
AstridaAAMar70-
AstridaBBMar7070
AstridaAAApr13-
AstridaBBApr1313

Ejemplo 4:  

La función Above puede utilizarse como entrada para 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 el valor Customer como dimensión ofrecerá los resultados siguientes para la expresión RangeAvg().

Ejemplo de tabla de resultados
Customer RangeAvg (Above(Sum(Sales),1,3))
Astrida -
Betacab587
Canutility563
Divadip603

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 gráficos, diríjase a la página Sort del panel de propiedades, y seleccione la casilla Expression en Sort by. En el cuadro de expresión, escriba Monthnumber.

¿Esta página le ha sido útil?

Si encuentra algún problema con esta página o su contenido (errores tipográficos, pasos que faltan o errores técnicos), no dude en ponerse en contacto con nosotros.

Únase al Programa de modernización de la analítica

Remove banner from view

Modernícese sin comprometer sus valiosas aplicaciones de QlikView con el Programa de modernización de la analítica. Haga clic aquí para obtener más información o contactar con nosotros: ampquestions@qlik.com