Set-analys och set-uttryck

Set-analys gör det möjligt att definiera en uppsättning (eller en grupp) av datavärden som är olik den normala uppsättning som definieras av aktuella urval.

Normalt när du gör ett urval aggregerar aggregeringsfunktioner som t.ex. Sum, Max, Min, Avg och Count över de urval du har gjort: de aktuella urvalen. Dina urval definierar automatiskt vilken datauppsättning som ska aggregeras över. Med set-analys kan du definiera en grupp som är oberoende av aktuella urval. Detta kan vara bra om du vill visa ett speciellt värde, till exempel marknadsandelen av en produkt över alla regioner oavsett de aktuella urvalen.

Set-analys är också effektivt när du gör olika typer av jämförelser, som t.ex. vilka produkter som säljer bäst i jämförelse med produkter som inte säljer så bra, eller för det här året i jämförelse med förra året.

Låt oss föreställa oss ett exempel där du börjar arbeta i ett dokument genom att välja år 2010 i en listbox. Aggregeringarna baseras då på det urvalet och diagrammen visar bara värden för det året. När du gör nya urval uppdateras diagrammen i enlighet med detta. Aggregeringarna görs över den uppsättning av möjliga poster som definieras av det aktuella urvalet. Med set-analys kan du definiera en uppsättning som intresserar dig och som är oberoende av urval som görs.

Skapa set-uttryck

Innan vi tittar på de olika delarna i en set-analys är det bra att göra en distinktion mellan set-uttryck och set-analys:

Att definiera en uppsättning fältvärden kallas att definiera ett set-uttryck. Att använda set-uttryck för att analysera data kallas set-analys. Därför går vi i resten av det här avsnittet igenom set-uttryck och deras komponenter.

Här är ett exempel på set-analys: sum( {$<Year={2009}>} Sales ), i vilken {$<Year={2009}>} är ett set-uttryck.

Det finns två allmänna syntaxregler för ett set-uttryck:

  • Ett set-uttryck ska användas i en aggregeringsfunktion. I det här exemplet är aggregeringsfunktionen sum(Sales).
  • Ett set-uttryck ska vara inom klamrar, {}. I exemplet är set-uttrycket: {$<Year={2009}>}.

Ett set-uttryck består av en kombination av följande delar:

  • Identifiers. En eller fler identifierare definierar relationen mellan set-uttrycket och det som utvärderas i resten av uttrycket. Ett enkelt set-uttryck består av en enda identifierare, som t.ex. dollartecknet {$}, vilket innebär alla poster i aktuellt urval.
  • Operators. Om det finns fler än en identifierare används en operator eller flera operatorer för att finjustera datauppsättningen genom att ange hur datauppsättningar som representeras av identifierarna kombineras för att skapa till exempel en underordnad eller överordnad uppsättning.
  • Modifiers. En modifierare eller flera modifierare kan läggas till i set-uttrycket för att ändra urvalet. En modifierare kan användas på egen hand eller för att modifiera en identifierare för att filtrera datauppsättningen.

Exempel:  

Exempel 1:  

{$<Year={2009}>}

Det här set-uttrycket innehåller identifieraren $ och modifieraren <Year={2009>}. Det här exemplet inkluderar inte någon operator. Det här set-uttrycket tolkas som: ”Alla poster i aktuellt urval som hör till år 2009.”

Exempel 2:  

Sum({$<Year={2009}>+1<Country={"Sweden"}>} Sales)

Det här set-uttrycket innehåller identifierarna $ och 1, operatorn + samt modifierarna <Year={2009}> och <Country={'Sweden'}>.

Det här set-uttrycket har utformats för att summera den försäljning för år 2009 som är associerad till de aktuella urvalen och lägga till den fullständiga datauppsättning som är associerad till landet Sweden för samtliga år.

Observera: Set-uttryck kan endast användas i uttryck för diagram, inte i skriptuttryck.

Identifierare, operatorer och modifierare beskrivs mer ingående i följande avsnitt.

Identifierare

Identifierare anger relationen mellan set-uttrycket och de fältvärden eller det uttryck som är under utvärdering.

I vårt exempel sum( {$<Year={2009}>} Sales ) är identifieraren dollartecknet $, och det innebär att den uppsättning av poster som ska utvärderas består av alla poster i aktuellt urval. Detta set filtreras sedan ytterligare av modifierardelen i set-uttrycket. I ett mer komplext set-uttryck kan två identifierare kombineras med hjälp av en operator.

Den här tabellen visar några gemensamma identifierare.

Identifierare Beskrivning
1 Representerar hela uppsättningen av alla poster i applikationen, oavsett vilka urval som har gjorts.
$ Representerar posterna i det aktuella urvalet. Set-uttrycket {$} är följaktligen motsvarigheten till att inte ange ett set-uttryck.
$1 Representerar tidigare urval. $2 representerar det näst föregående urvalet och så vidare.
$_1 Representerar nästa urval (framåt). $_2 representerar urvalet efter det nästföljande och så vidare.
BM01 Du kan använda vilket bokmärkes-ID eller bokmärkesnamn du vill.
MyAltState Du kan hänvisa till de urval som görs i ett parallellt tillstånd via tillståndets namn.

Den här tabellen visar några exempel med olika identifierare.

Exempel Resultat
sum ({1} Sales) Returnerar den totala försäljningen för dokumentet, oavsett urval men inte oavsett dimensionen.

sum ({$} Sales)

Returnerar försäljning för det aktuella urvalet, alltså detsamma som sum(Sales).

sum ({$1} Sales)

Returnerar försäljning för föregående urval.

sum ({BM01} Sales)

Returnerar försäljningen för bokmärket med namnetBM01.

Operatorer

Operatorer används för att inkludera, utesluta eller genomskära delar av eller hela datauppsättningar. Alla operatorer använder uppsättningar som operander och returnerar en uppsättning som resultat.

I den här tabellen visas operatorer som kan användas i set-uttryck.

Operator Beskrivning
+ Union. Denna binära operation returnerar en uppsättning som består av de poster som tillhör någon av de två set-operanderna.
- Exklusion. Denna binära operation returnerar en uppsättning som består av de poster som enbart tillhör den första av de två set-operanderna. Den returnerar dessutom det komplementära setet när det används som en unär operator.
* Intersektion. Denna binära operation returnerar en uppsättning som består av de poster som tillhör bägge set-operanderna.
/ Symmetrisk skillnad (XOR). Denna binära operation returnerar en uppsättning som består av de poster som tillhör någon av, fast inte båda, set-operanderna.

Den här tabellen visar några exempel med operatorer.

Exempel Resultat
sum( {1-$} Sales ) Returnerar försäljningen för allt som urvalet exkluderar.
sum( {$*BM01} Sales ) Returnerar försäljningen för skärningspunkten mellan urvalet och bokmärket BM01.
sum( {-($+BM01)} Sales )

Returnerar försäljning som exkluderas av urvalet och bokmärket BM01.

Sum({$<Year={2009}>+1<Country={"Sweden"}>} Sales) Returnerar försäljningen för år 2009 kopplat till de aktuella urvalen och lägger till hela uppsättningen med data som är kopplade till landet Sweden över alla år.

Modifierare

Modifierare används för att göra tillägg eller ändringar i ett urval. Sådana ändringar kan skrivas in i set-uttrycket. En modifierare består av ett eller flera fältnamn, vart och ett åtföljt av en eller flera urval som kan göras i fältet. Modifierare börjar och slutar med vinkelparenteser <>.

En set-modifierare förändrar urvalet av föregående set-identifierare. Om det inte finns någon hänvisning till en set-identifierare är det aktuella urvalstillståndet implicit.

Den här tabellen visar några exempel med modifierare.

Exempel Resultat
sum({$<OrderDate = DeliveryDate>} Sales) Returnerar försäljning för aktuellt urval där OrderDate = DeliveryDate.

sum({1<Region = {US}>} Sales)

Returnerar försäljningen för regionen USA och ignorerar det aktuella urvalet.

sum({$<Region = >} Sales)

Returnerar försäljningen för urvalet, men med urvalet i Region borttaget.

sum({<Region = >} Sales)

Returnerar samma resultat som exemplet ovanför. När set-identifieraren för att modifiera utelämnas antas det nedärvda tillståndet.

sum({$<Year={2000}, Region={“U*”}>} Sales) Returnerar försäljning för det aktuella urvalet, men med nya urval både i Year och Region.

​Se: Set-modifierare för en mer detaljerad beskrivning av modifierare och hur de kan användas i en mer komplex set-analys.

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?