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.
Sintaxis:
Above([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 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. |
En la primera fila de un segmento de columna, se devuelve un valor NULL, ya que no hay ninguna fila encima de él.
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 utiliza 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, la ordenación de la visualización volverá al orden de la entrada de esta función.
Ejemplos y resultados:
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').
Ejemplo 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.
Ejemplo 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.
Ejemplo 4: |
Resultado | ||||
---|---|---|---|---|---|
La función Above se puede utilizar como entrada a las funciones de rango. Por ejemplo: RangeAvg (Above(Sum(Sales),1,3)). |
|
Datos utilizados en los ejemplos: