Vai al contenuto principale Passa a contenuto complementare

Above

Above() valuta un'espressione in una riga sopra la riga attuale all'interno di un segmento di colonna in una tabella. La riga per la quale viene calcolata dipende dal valore dell'offset, se presente, e l'impostazione predefinita è la riga direttamente sopra. Per i grafici diversi dalle tabelle, Above() restituisce un valore per la riga sopra la riga attuale nell'equivalente di tabella lineare del grafico.

Sintassi:  

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

Tipo di dati restituiti: duale

Argomenti:  

  • expr: L'espressione o il campo contenente i dati da misurare.
  • offset: Specificando un offset n maggiore di 0, è possibile spostare la valutazione dell'espressione n righe più in alto della riga corrente. Specificando un offset uguale a 0 è possibile valutare l'espressione in base alla riga corrente. Specificando un numero di offset negativo, la funzione Above diventa equivalente alla funzione Below con il numero di offset positivo corrispondente.
  • count: Specificando un terzo argomento count maggiore di 1, la funzione restituirà una scala di valori count, uno per ciascuna delle righe della tabella count contando verso l'alto a partire dalla cella originaria. In questo modulo la funzione può essere utilizzata come argomento per una qualsiasi delle funzioni di scala speciali. Funzioni di scala
  • TOTAL: Se la tabella è unidimensionale o se è utilizzato il qualificatore TOTAL come argomento, il segmento colonna attuale sarà sempre uguale all'intera colonna.

    Definizione dell'ambito di aggregazione

In corrispondenza della prima riga di un segmento di colonna verrà restituito un valore NULL perché non vi sono righe che la precedono.

Nota informaticaUn segmento di colonna viene definito come un sottogruppo consecutivo di celle con gli stessi valori per le dimensioni nell'ordine attuale. Le funzioni grafiche intra-record vengono calcolate nel segmento di colonna escludendo la dimensione più a destra nel grafico della tabella lineare equivalente. Se nel grafico è presente una sola dimensione oppure è specificato il qualificatore TOTAL, l'espressione viene valutata nell'intera tabella.
Nota informaticaSe la tabella o l'equivalente di tabella include più dimensioni verticali, il segmento colonna attuale includerà solo righe contenenti gli stessi valori della riga attuale in tutte le colonne di dimensione, eccetto la colonna che mostra l'ultima dimensione nell'ordinamento tra campi.

Limiti:  

  • Le chiamate ricorrenti restituiranno NULL.

  • L'ordinamento sui valori y nei grafici o l'ordinamento per colonne di espressione nelle tabelle non è consentito quando si utilizza questa funzione di grafico in una qualsiasi delle espressioni del grafico. Queste alternative di ordinamento verranno perciò disattivate automaticamente. Quando si utilizza questa funzione di grafico in una visualizzazione o in una tabella, l'ordinamento della visualizzazione torna all'ordinamento inserito in questa funzione.

Esempi e risultati:  

Esempio 1:  

Output tabella di esempio
Customer Sum(Sales) Above(Sum(Sales)) Sum(Sales) + Above(Sum(Sales)) Above offset 3 Higher?
- 2566 - - - -
Astrida 587 - - - -
Betacab 539 587 1126 - -
Canutility 683 539 1222 - Higher
Divadip 757 683 1440 1344 Higher

Nella rappresentazione del grafico tabellare mostrata in questo esempio, la tabella viene creata dalla dimensione Customer e dalle misure: Sum(Sales) e Above(Sum(Sales)).

La colonna Above(Sum(Sales)) restituisce NULL per la riga Customer contenente Astrida perché non ci sono righe che la precedono. Il risultato per la riga Betacab mostra il valore di Sum(Sales) per Astrida, il risultato per Canutility mostra il valore per Sum(Sales) per Betacab, e così via.

Per la colonna con etichetta Sum(Sales)+Above(Sum(Sales)), la riga per Betacab mostra il risultato dell'aggiunta dei valori Sum(Sales) per le righe Betacab + Astrida (539+587). Il risultato per la riga Betacab mostra il risultato dell'aggiunta dei valori Sum(Sales) per Canutility + Canutility (683+539).

La misura con etichetta Above offset 3 creata utilizzando l'espressione Sum(Sales)+Above(Sum(Sales), 3) ha l'argomento offset, impostato su 3, e ha l'effetto di portare il valore della riga tre righe sopra il valore attuale. Aggiunge il valore Sum(Sales) per il valore Customer attuale al valore per le tre righe Customerprecedenti. I valori restituiti per le prime tre righe Customer sono null.

Nella tabella sono mostrate anche misure più complesse: una creata da Sum(Sales)+Above(Sum(Sales)) e una con etichetta Higher?, che viene creata da IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').

Nota di suggerimentoQuesta funzione può essere utilizzata nei grafici diversi dalle tabelle, ad esempio nei grafici a barre.
Nota di suggerimentoPer gli altri tipi di grafici, convertire il grafico nell'equivalente di tabella lineare per individuare facilmente la riga a cui si riferisce la funzione.

Esempio 2:  

Nelle rappresentazioni dei grafici a tabella mostrate in questo esempio, sono state aggiunte altre dimensioni ai grafici: Month e Product. Per i grafici con più dimensioni, i risultati delle espressioni contenenti le funzioni Above, Below, Top e Bottom dipendono dalla modalità con cui le dimensioni di colonna vengono ordinate da QlikView. QlikView valuta le funzioni in base ai segmenti di colonna che derivano dalla dimensione ordinata per ultima. L'ordinamento delle colonne viene controllato in Ordinamento e non è necessariamente l'ordine in cui le colonne sono visualizzate in una tabella.

Nella seguente rappresentazione del grafico tabellare per l'esempio 2 l'ultima dimensione ordinata è Month, affinché la funzione Above venga valutata in base ai mesi. Esiste una serie di risultati per ciascun valore Product per ciascun mese (da Jan a Aug): un segmento di colonna. Viene seguita da una serie per il segmento di colonna successivo: per ciascun mese Month per il valore Product successivo. Esisterà un segmento di colonna per ciascun valore Customer per ciascun valore Product.

Output tabella di esempio
Customer Product Month Sum(Sales) Above(Sum(Sales))
- - - 2566 -
Astrida AA Jan 46 -
Astrida AA Feb 60 46
Astrida AA Mar 70 60
Astrida AA Apr 13 70
Astrida AA May 78 13
Astrida AA Jun 20 78
Astrida AA Jul 45 20
Astrida AA Aug 65 45

Esempio 3:  

Nella rappresentazione del grafico tabellare per l'esempio 3 l'ultima dimensione ordinata è Product. Questo risultato viene ottenuto spostando la dimensione Product nella posizione 3 nella scheda Ordinamento nel pannello delle proprietà. La funzione Above viene valutata per ciascun valore Product e, poiché esistono solo due prodotti, AA e BB, esiste solo un risultato non NULL in ciascuna serie. Nella riga BB per il mese Jan, il valore per Above(Sum(Sales)) è 46. Per la riga AA, il valore è null. Il valore in ciascuna riga AA per ciascun mese sarà sempre null perché non esiste alcun valore Product sopra AA. La seconda serie viene valutata in AA e BB per il mese Feb, per il valore Customer, Astrida. Quando tutti i mesi sono stati valutati per Astrida, la sequenza viene ripetuta per il secondo CustomerBetacab e così via.

Output tabella di esempio
Customer Product Month Sum(Sales) Above(Sum(Sales))
- - - 2566 -
Astrida AA Jan 46 -
Astrida BB Jan 46 46
Astrida AA Feb 60 -
Astrida BB Feb 60 60
Astrida AA Mar 70 -
Astrida BB Mar 70 70
Astrida AA Apr 13 -
Astrida BB Apr 13 13

Esempio 4:  

La funzione Above può essere utilizzata come input per le funzioni di scala. Ad esempio: RangeAvg (Above(Sum(Sales),1,3)).

Negli argomenti per la funzione Above(), offset viene impostato su 1 e count viene impostato su 3. La funzione trova i risultati dell'espressione Sum(Sales) nelle tre righe immediatamente sopra la riga corrente nel segmento di colonna (dove si trova una riga). Questi tre valori vengono utilizzati come input per la funzione RangeAvg(), che individua la media dei valori nella scala di numeri fornita.

Una tabella in cui è stato impostato Customer come dimensione restituisce i seguenti risultati per l'espressione RangeAvg().

Output tabella di esempio
Customer RangeAvg (Above(Sum(Sales),1,3))
Astrida -
Betacab 587
Canutility 563
Divadip 603

Dati utilizzati negli esempi:

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 '|');

Per ordinare correttamente i mesi nella sequenza esatta, quando si creano i grafici, accedere alla scheda Sort delle proprietà del grafico e selezionare la casella di controllo Expression in Sort by. Nella casella dell'espressione, scrivere Monthnumber.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!

Partecipa al programma Analytics Modernization

Remove banner from view

Modernizza senza compromettere le tue preziose app QlikView con il programma Analytics Modernization. Fare clic qui per maggiori informazioni o per contattarci: ampquestions@qlik.com