Exempel på concat-funktioner

CONCAT()-funktionen ska inte förväxlas med CONCATENATE-nyckelordet i skriptet.

I sin enklaste form används Concat() för att koppla samman värden/ord/val i en enda sträng. Den kan dock användas på många olika sätt för att hjälpa dig lösa olika problem. Alla exemplen baseras på följande tabell:

Enkel strängkonkatenering

Som vi nämnde tidigare kan concat-funktionen användas för att koppla samman värden i en lista. Värdena kan vara hårdkodade eller styras av val eller data.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Den här enkla concat-satsen kopplar samman alla möjliga värden från kolumnen MyColumn. Om du väljer att lägga till DISTINCT-nyckelordet visas varje värde endast en gång i strängen.

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

När du använder ett enkelt concat kan du välja att lägga till en sorteringsvikt i funktionen för att ordna strängvärdena efter valfri kolumn. I exemplet nedan läggs datumkolumnen till för att sortera värdena.

 

=CONCAT(MyColumn, ',', Date)

Resultat: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Concat() inom ett uttryck eller en set-sats

Vidarebefordra flera dynamiska värden till ett setanalys-uttryck

Det finns tillfällen då du vill skicka ett dynamiskt val av värden till en set-sats. För att göra detta måste du lägga till enkla citattecken i strängen så att funktionen CONCAT() returnerar exempelvis 'JKL','VWX'. Du kan dock inte använda de enkla citattecknen som de är eftersom de då tolkas när Concat evalueras, i stället för när set-uttrycket evalueras. Använd i stället funktionen Chr():

 

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

Du kan sedan lägga denna concat-sats så att den hamnar inuti ett uttryck:

 

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

I de flesta fall skulle denna teknik användas där det finns dataöar. Den låter dig skicka värden till ett uttryck som inte påverkar någon del av datamodellen eftersom tabellen för dataön inte är kopplad till den.

Concat() i skriptet

Concat kan också användas i skriptet för att omvandla flera rader till ett enda kolumnvärde, precis som med andra aggregeringar.

Med de källdata som användes tidigare blir resultatet av CONCAT i skriptet:

Skriptfunktionen får följande resultat:

Använda Rank() för att påverka Concat()

När du använder andra funktioner i kombination med concat() kan du få riktigt avancerade resultat. I detta exempel har Rank() använts för att få tag i de tre bästa resultaten (baserat på värdet) och länka samman dem.

 

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

Resultat: ABC,MNO,STU

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?