Rank - diagramfunktion
Rank() utvärderar raderna i diagrammet i uttrycket, och visar för varje rad den relativa placeringen av dimensionsvärdet utvärderat i uttrycket. Funktionen utvärderar uttrycket, jämför resultatet med resultaten på de andra raderna som innehåller det aktuella kolumnsegmentet och returnerar rangordningsnumret för den aktuella raden inom segmentet.
För andra diagram än tabeller definieras det aktuella kolumnsegmentet som det visas i diagrammets raka tabellmotsvarighet.
Syntax:
Rank([TOTAL] expr[, mode[, fmt]])
Returnerad datatyp: dual
Argument:
Argument | Beskrivning |
---|---|
expr | Det uttryck eller fält som innehåller de data som ska mätas. |
mode | Anger resultatets talrepresentation. |
fmt | Anger resultatets textrepresentation. |
TOTAL |
Om diagrammet är endimensionellt eller om uttrycket föregås av kvalificeraren TOTAL utvärderas funktionen längs med hela kolumnen. Om tabellen eller diagrammets tabellmotsvarighet har flera vertikala dimensioner, inbegriper det aktuella kolumnsegmentet endast rader som har samma värden som den aktuella raden i samtliga dimensionskolumner utom den kolumn som visar den sista dimensionen i fältens inbördes sorteringsordning. |
Rangordningen returneras som ett dualt värde, som i det fall där varje rad har en unik rangordning är ett heltal mellan 1 och antalet rader i det aktuella kolumnsegmentet.
Om flera rader har samma rangordningsnummer, kan text- och talrepresentationerna för gruppen kontrolleras med parametrarna mode och fmt.
mode
Det andra argumentet, mode, kan ta följande värden:
Värde | Beskrivning |
---|---|
0 (standard) |
Om alla rangordningsnummer inom gruppen är lägre än det mellersta värdet i den totala rangordningen, får alla rader i gruppen det lägsta rangordningsnumret inom gruppen. Om alla rangordningsnummer inom gruppen är högre än det mellersta värdet i den totala rangordningen, får alla rader i gruppen det högsta rangordningsnumret inom gruppen. Om rangordningsnumren inom gruppen spänner över det mellersta värdet i den totala rangordningen, får alla rader i gruppen ett värde som motsvarar medelvärdet av det högsta och det lägsta rangordningsnumret i hela kolumnsegmentet. |
1 | Lägsta rangordningstalet ges åt alla rader. |
2 | Medelvärdet ges som rangordningstal åt alla rader. |
3 | Högsta rangordningstalet ges åt alla rader. |
4 | Lägsta rangordningstalet på första raden, därefter ökning med ett för varje rad |
fmt
Det tredje argumentet, fmt, kan ta följande värden:
Värde | Beskrivning |
---|---|
0 (standard) | Lägsta värdet - högsta värdet på alla rader (exempelvis 3 - 4). |
1 | Lägsta värdet på alla rader. |
2 | Lägsta värdet på första raden, tom sträng på övriga rader. |
Ordningen på rader inom mode 4 och fmt2 bestäms av sorteringsordningen som angivits för dimensionerna i diagrammet.
Exempel och resultat:
Skapa två visualiseringar från dimensionerna Product och Sales och ytterligare en från Product och UnitSales. Lägg till mått på det sätt som visas i nedanstående tabell.
Exempel | Resultat |
---|---|
Exempel 1. Skapa en tabell med dimensionerna Customer och Sales och måttet Rank(Sales) |
Resultatet beror på dimensionernas sorteringsordning. Om tabellen sorteras på Customer listas i tabellen alla värden för Sales för Astrida, sedan Betacab och så vidare. Resultaten för Rank(Sales) visar 10 för Sales-värde 12, 9 för Sales-värde 13, och så vidare, med rangordningsvärdet 1 returnerat för Sales-värde 78. Nästa kolumnsegment börjar med Betacab, där det första värdet för Sales i segmentet är 12. Rangordningsvärdet för Rank(Sales) för detta ges som 11. Om tabellen sorteras på Sales består kolumnsegmenten av värdena för Sales och motsvarande Customer. Eftersom det finns två Sales-värden 12 (för Astrida och Betacab), är Rank(Sales)-värdet för det kolumnsegmentet 1-2 för varje Customer-värde. Detta beror på att det finns två värden för Customer för Sales-värdet 12. Om det hade funnits 4 värden skulle resultatet blivit 1–4 för alla rader. Detta visar hur resultatet ser ut för standardvärdet (0) för argumentet fmt. |
Exempel 2. Ersätt kunddimensionen med produktdimensionen och lägg till måttet Rank(Sales,1,2) | Detta returnerar 1 på den första raden för varje kolumnsegment och lämnar alla andra rader tomma eftersom argumenten mode och fmt är inställda på 1 respektive 2. |
Resultat för exempel 1, med tabellen sorterad efter 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 |
Resultat för exempel 1, med tabellen sorterad efter 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 |
Data som används i exempel:
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 '|');