Rank - funzione per grafici
Rank() valuta le righe del grafico nell'espressione, e per ciascuna riga, visualizza la posizione relativa del valore della dimensione valutata nell'espressione. Quando valuta l'espressione, la funzione confronta il risultato con quello delle altre righe contenenti il segmento di colonna attuale e restituisce la classificazione della riga attuale all'interno del segmento.
Per i grafici diversi dalla tabelle, il segmento di colonna attuale è definito come visualizzato nell'equivalente di tabella lineare del grafico.
Sintassi:
Rank([TOTAL] expr[, mode[, fmt]])
Tipo di dati restituiti: duale
Argomenti:
Argomento | Descrizione |
---|---|
expr | L'espressione o il campo contenente i dati da misurare. |
mode | Specifica la rappresentazione numerica del risultato della funzione. |
fmt | Specifica la rappresentazione testuale del risultato della funzione. |
TOTAL |
Se il grafico è unidimensionale o se l'espressione è preceduta dal qualificatore TOTAL, la funzione viene valutata lungo l'intera colonna. Se la tabella o l'equivalente della tabella presenta più dimensioni verticali, il segmento di colonna attuale includerà solo righe con lo stesso valore della riga attuale in tutte le colonne di dimensione, eccetto la colonna che mostra l'ultima dimensione nell'ordinamento tra campi. |
La classificazione viene restituita come valore duale che, nel caso in cui ogni riga presenti una classificazione univoca, sarà un numero intero compreso tra 1 e il numero di righe nel segmento di colonna attuale.
Nel caso in cui molte righe condividano la stessa classificazione, la rappresentazione testuale e numerica potrà essere controllata mediante i parametri mode e fmt.
mode
Il secondo argomento, mode, può assumere i seguenti valori:
Valore | Descrizione |
---|---|
0 (predefinito) |
Se tutte le classificazioni all'interno del gruppo condiviso rientrano nella parte bassa del valore medio dell'intera classificazione, tutte le righe all'interno di tale gruppo riceveranno la classificazione più bassa. Se tutte le classificazioni all'interno del gruppo condiviso rientrano nella parte alta del valore medio dell'intera classificazione, tutte le righe all'interno di tale gruppo riceveranno la classificazione più alta. Se tutte le classificazioni all'interno del gruppo condiviso si distribuiscono lungo il valore medio dell'intera classificazione, tutte le righe all'interno di tale gruppo riceveranno il valore corrispondente alla media calcolata in base alla classificazione massima e minima dell'intero segmento di colonna. |
1 | Classificazione minima su tutte le righe. |
2 | Classificazione media su tutte le righe. |
3 | Classificazione massima su tutte le righe. |
4 | Classificazione minima sulla prima riga, quindi incrementata di uno per ogni riga. |
fmt
Il terzo argomento, fmt, può assumere i seguenti valori:
Valore | Descrizione |
---|---|
0 (predefinito) | Valore basso - valore alto su tutte le righe (ad esempio, 3 - 4). |
1 | Valore basso su tutte le righe. |
2 | Valore basso sulla prima riga, vuoto sulle righe successive. |
L'ordine delle righe per mode 4 e fmt 2 è determinato dall'ordine delle dimensioni del grafico.
Esempi e risultati:
Creare due visualizzazioni dalle dimensioni Product e Sales e un'altra da Product e UnitSales. Aggiungere le misure come mostrato nella seguente tabella.
Esempi | Risultati |
---|---|
Esempio 1. Creare una tabella con le dimensioni Customer e Sales e la misura Rank(Sales) |
Il risultato dipende dall'ordinamento delle dimensioni. Se viene ordinata in base a Customer, la tabella elencherà tutti i valori di Sales per Astrida, quindi Betacab e così via. Il risultato per Rank(Sales) mostrerà 10 per il valore Sales 12, 9 per il valore Sales 13 e così via, con il valore di classificazione 1 restituito per il valore Sales 78. Il segmento di colonna successivo inizia con Betacab, per il quale, il primo valore di Sales nel segmento è 12. Il valore di classificazione di Rank(Sales) per questo è fornito come 11. Se la tabella viene ordinata in base a Sales, i segmenti colonna consisteranno nei valori di Sales e del Customer corrispondente. Poiché vi sono due valori Sales di 12 (per Astrida e Betacab), il valore di Rank(Sales) per tale segmento di colonna è 1-2, per ciascun valore di Customer. Questo perché sono presenti due valori di Customer per il valore Sales 12. Se fossero stati presenti 4 valori, il risultato sarebbe stato 1-4 per tutte le righe. Questo mostra l'aspetto del risultato per il valore predefinito (0) dell'argomento fmt. |
Esempio 2. Sostituire la dimensione Customer con Product e aggiungere la misura Rank(Sales,1,2) | Viene restituito 1 sulla prima riga di ciascun segmento di colonna, mentre tutte le altre righe vengono lasciate vuote perché gli argomenti mode e fmt sono impostati rispettivamente su 1 e 2. |
Risultati per l'esempio 1, con la tabella ordinata per Customer:
Customer | Sales | Rank(Sales) |
---|---|---|
Astrida | 12 | 10 |
Astrida | 13 | 9 |
Astrida | 20 | 8 |
Astrida | 22 | 7 |
Astrida | 45 | 6 |
Astrida | 46 | 5 |
Astrida | 60 | 4 |
Astrida | 65 | 3 |
Astrida | 70 | 2 |
Astrida | 78 | 1 |
Betcab | 12 | 11 |
Risultati per l'esempio 1, con la tabella ordinata per Sales:
Customer | Sales | Rank(Sales) |
---|---|---|
Astrida | 12 | 1-2 |
Betacab | 12 | 1-2 |
Astrida | 13 | 1 |
Betacab | 15 | 1 |
Astrida | 20 | 1 |
Astrida | 22 | 1-2 |
Betacab | 22 | 1-2 |
Betacab | 24 | 1-2 |
Canutility | 24 | 1-2 |
Dati utilizzati negli esempi:
ProductData:
Load * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD|0|25
Canutility|AA|8|15
Canutility|CC|0|19
] (delimiter is '|');
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 '|');