match - skript- och diagramfunktion
Funktionen match jämför den första parametern med alla de följande och returnerar den numeriska platsen för uttryck som matchar. Jämförelsen är skiftlägeskänslig.
Syntax:
match( str, expr1 [ , expr2,...exprN ])
Vissa exempel i det här ämnet använder inline-laddningar. Använda inline-laddningar för att ladda data
Exempel: Laddningsskript som använder match
Laddningsskript
Du kan använda match för att ladda en delmängd av dina data. Du kan till exempel returnera ett numeriskt värde för ett uttryck i funktionen. Sedan kan du begränsa laddade data utifrån det numeriska värdet. Match returnerar 0 om det inte finns någon matchning. Alla uttryck som inte har någon matchning i det här exemplet returnerar därför 0 och WHERE-satsen utesluter dem från dataladdningen.
Skapa en ny flik i Skriptredigeraren och ladda sedan följande data som en inline load. Skapa tabellen nedan i Qlik Sense för att se resultatet.
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
/*
Create new table called Transaction_Buckets
Create new fields called Customer, and Color code - Blue and Black
Load Transactions table.
Match returns 1 for 'Blue', 2 for 'Black'.
Does not return a value for 'blue' because match is case sensitive.
Only values that returned numeric value greater than 0
are loaded by WHERE statment into Transactions_Buckets table.
*/
Transaction_Buckets:
Load
customer_id,
customer_id as [Customer],
color_code as [Color Code Blue and Black]
Resident Transactions
Where match(color_code,'Blue','Black') > 0;
Resultat
Color Code Blue and Black | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blå | 2038593 |
Exempel – Diagramuttryck som använder match
Diagramuttryck 1
Laddningsskript
Skapa en ny flik i Skriptredigeraren och ladda sedan följande data som en inline load. När data har laddats skapar du diagramuttrycksexemplen nedan i en Qlik Sense-tabell.
MyTable:
Load * inline [Cities, Count
Toronto, 123
Toronto, 234
Toronto, 231
Boston, 32
Boston, 23
Boston, 1341
Beijing, 234
Beijing, 45
Beijing, 235
Stockholm, 938
Stockholm, 39
Stockholm, 189
zurich, 2342
zurich, 9033
zurich, 0039];
Det första uttrycket i tabellen nedan returnerar 0 för Stockholm, eftersom 'Stockholm' inte finns med i listan med uttryck i match-funktionen. Det returnerar även 0 för 'Zurich', eftersom match-jämförelsen är skiftlägeskänslig.
Cities | match( Cities,'Toronto','Boston','Beijing','Zurich') | match( Cities,'Toronto','Boston','Beijing','Stockholm','zurich') |
---|---|---|
Beijing | 3 | 3 |
Boston | 2 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 0 | 5 |
Diagramuttryck 2
Du kan använda match för att utföra en anpassad sortering för ett uttryck.
Som standard sorteras kolumner numeriskt eller alfabetiskt, beroende på datatyp.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Gör så här om du vill ändra ordningen:
- Öppna delavsnittet Sortering för ditt diagram i egenskapspanelen.
- Inaktivera automatisk sortering för den kolumn du vill använda anpassad sortering för.
- Avmarkera Sortera numeriskt och Sortera alfabetiskt.
-
Välj Sortera efter uttryck och ange sedan ett uttryck som liknar följande:
=match( Cities, 'Toronto','Boston','Beijing','Stockholm','zurich')
Sorteringsordningen för kolumnen Cities ändras.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Du kan även visa det numeriska värde som returneras.
Cities | Cities & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |