# mixmatch - script and chart function

The mixmatch function compares the first parameter with all the following ones and returns the numeric location of the expressions that match. The comparison is case insensitive and insensitive to the Japanese Hiragana and Katakana character systems.

Syntax:

mixmatch( str, expr1 [ , expr2,...exprN ])

If you instead want to use case sensitive comparison, use the match function. If you want to use case insensitive comparison and wildcards, use the wildmatch function.

Some of the examples in this topic use inline loads. For more information, see [Using inline loads to load data](https://help.qlik.com/en-US/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

## Example - Load script using mixmatch

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)

#### Example: Load script

Load script

You can use mixmatch to load a subset of data. For example, you can return a numeric value for an expression in the function. You can then limit the data loaded based on the numeric value. Mixmatch returns 0 if there is no match. All expressions that are not matched in this example will therefore return 0 and will be excluded from the data load by the WHERE statement.

Create a new tab in the data load editor, and then load the following data as an inline load. Create the table below in Qlik Sense to see the results.

```
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 - Black, Blue, blue
Load Transactions table.
Mixmatch returns 1 for 'Black', 2 for 'Blue'. 
Also returns 3 for 'blue' because mixmatch is not case sensitive.
Only values that returned numeric value greater than 0 
are loaded by WHERE statement into Transactions_Buckets table.
*/

Transaction_Buckets:
Load
   customer_id, 
   customer_id as [Customer],
   color_code as [Color Code - Black, Blue, blue]
Resident Transactions
Where mixmatch(color_code,'Black','Blue') > 0;
```

Results

Qlik SenseQlik Sense table showing the output from using the mixmatchmixmatch function in the load script.

| Color Code Black, Blue, blue | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |
| blue | 5646471 |

## Examples - Chart expressions using mixmatch

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)

#### Examples: Chart expressions

Create a new tab in the data load editor, and then load the following data as an inline load. After loading the data, create the chart expression examples below in a Qlik Sense table.

Chart expression 1

```
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];
```

The first expression in the table below returns 0 for Stockholm because 'Stockholm' is not included in the list of expressions in the mixmatch function. It returns 4 for 'Zurich' because the mixmatch comparison is not case-sensitive.

Qlik SenseQlik Sense table showing examples of the mixmatchmixmatch function in a chart expression

| Cities | mixmatch( Cities,'Toronto','Boston','Beijing','Zurich') | mixmatch( Cities,'Toronto','Boston','Beijing','Stockholm','Zurich') |
| --- | --- | --- |
| Beijing | 3 | 3 |
| Boston | 2 | 2 |
| Stockholm | 0 | 4 |
| Toronto | 1 | 1 |
| zurich | 4 | 5 |

Chart expression 2

You can use mixmatch to perform a custom sort for an expression.

By default, columns sort alphabetically or numerically, depending on the data.

Qlik SenseQlik Sense table showing an example of the default sort order

| Cities |
| --- |
| Beijing |
| Boston |
| Stockholm |
| Toronto |
| zurich |

To change the order, do the following:

1. Open the Sorting section for your chart in the Properties panel.

2. Turn off auto sorting for the column on which you want to do a custom sort.

3. Deselect Sort numerically and Sort alphabetically.

4. Select Sort by expression, and then enter the following expression:

   `=mixmatch( Cities, 'Toronto','Boston','Beijing','Stockholm','Zurich')`

   The sort order on the Cities column changes.

Qlik SenseQlik Sense table showing an example of changing the sort order using the mixmatchmixmatch function.

| Cities |
| --- |
| Toronto |
| Boston |
| Beijing |
| Stockholm |
| zurich |

You can also view the numeric value that is returned.

Qlik SenseQlik Sense table showing an example of the numeric values that are returned from the mixmatchmixmatch function.

| Cities | Cities & ' - ' & mixmatch ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','Zurich') |
| --- | --- |
| Toronto | Toronto - 1 |
| Boston | Boston - 2 |
| Beijing | Beijing - 3 |
| Stockholm | Stockholm - 4 |
| zurich | zurich - 5 |

## Learn more

* [match - script and chart function](https://help.qlik.com/en-US/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [wildmatch - script and chart function](https://help.qlik.com/en-US/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)