# mixmatch Función de script y de gráfico

La función mixmatch compara el primer parámetro con todos los siguientes y devuelve la ubicación numérica de las expresiones que coinciden. La comparación no distingue entre mayúsculas y minúsculas y no tiene en cuenta los alfabetos de caracteres japoneses Hiragana y Katakana.

Sintaxis:

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

Tipo de datos que devuelve: Entero

Si desea utilizar la comparación entre mayúsculas y minúsculas, utilice la función match. Si desea utilizar una comparación que no distinga entre mayúsculas y minúsculas además de comodines, utilice la función wildmatch.

Argumentos

| Argumento | Descripción |
| --- | --- |
| str | La cadena de caracteres que se ha de evaluar. |
| expr1 | La primera expresión para comprobar si hay una representación numérica válida. |
| expr2 | La segunda expresión para comprobar si hay una representación numérica válida. |
| expr3 | La tercera expresión para comprobar si hay una representación numérica válida. |

Ejemplo: expresiones de gráfico

| Ejemplo | Resultado |
| --- | --- |
| `mixmatch( ColorCode,'black','Blue' )` | Esta expresión devuelve `1` si el valor de `ColorCode` es `Black` o `2` si el valor de `ColorCode` es `Blue`. |
| `mixmatch( Cities,'toronto','Boston','Beijing','Zurich' )` | Esta expresión devuelve el índice del elemento que coincide con el valor del campo `Cities`. |

Algunos de los ejemplos de este tema utilizan cargas inline. Para más información, vea [Usar cargas inline para cargar datos](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

## Ejemplo: clasificar productos utilizando mixmatch

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

#### Expresión de gráfico

Vista general

Un conjunto de datos contiene datos de productos.Deseamos identificar y clasificar los productos que son consumibles.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Script de carga

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "Fruits"
3, "Shampoo", "toiletries"
4, "TV", "Electronics"
5, "Apple", "fruits"
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `ProductID`

* `ProductName`

* `ProductCategory`

Cree las siguientes medidas:

* `=mixmatch(ProductCategory,'Toiletries', 'Fruits')`, para devolver el índice en el que `ProductCategory` tiene el valor `Toiletries` o `Fruits`.

* `=If(mixmatch(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other')`, para traducir una correspondencia de `ProductCategory` con `Toiletries` o `Fruits` como `Consumable`. Si no se encuentra ninguna coincidencia, devuelve `Other`.

Nota informativaLa función `mixmatch` devuelve un valor positivo distinto de cero si se encuentra una coincidencia, o cero si no se encuentra ninguna. La sentencia `if` interpreta a su vez los resultados distintos de cero como `true` y los resultados cero como `false`. Combinando una sentencia `if` con las funciones `mixmatch`, `wildmatch` o `match`, es posible descodificar fácilmente las coincidencias y las discordancias.

Tabla de resultados

| ProductID | ProductName | ProductCategory | mixmatch(ProductCategory,'Toiletries', 'Fruits') | If(mixmatch(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other') |
| --- | --- | --- | --- | --- |
| 1 | Laptop | Electronics | 0 | Other |
| 2 | Banana | Fruits | 2 | Consumable |
| 3 | Shampoo | toiletries | 1 | Consumable |
| 4 | TV | Electronics | 0 | Other |
| 5 | Apple | fruits | 2 | Consumable |

La función `mixmatch` devuelve el índice de la cadena de búsqueda en la primera medida. En la segunda medida, este resultado se utiliza a continuación en una función `If` para proporcionar resultados personalizados. Tenga en cuenta que la función `mixmatch` no distingue entre mayúsculas y minúsculas.

## Ejemplo: evaluar y clasificar datos de clientes usando mixmatch

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

#### Expresión de gráfico

Vista general

Un conjunto de datos contiene datos de clientes.Desea identificar y clasificar a los clientes cuya región y sector industrial cumplen con sus requisitos de clasificación.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Script de carga

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "north", "manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "west", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "healthcare"
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Cree la siguiente medida:

`=If(mixmatch(Region, 'North', 'East') AND mixmatch(Industry, 'Technology', 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, para devolver el índice de la cadena de búsqueda. Si lo encuentra, entonces devuelve `Target Segment`. Si no lo encuentra, entonces devuelve `Secondary Segment`.

Tabla de resultados

| ClientID | ClientName | Region | Industry | If(mixmatch(Region, 'North', 'East') AND mixmatch(Industry, 'Technology', 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | north | manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | west | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | South | healthcare | Secondary Segment |

La función `mixmatch` busca texto y devuelve un índice que puede utilizarse para realizar análisis adicionales y clasificación de datos. Por ejemplo, `Acme Corp` se clasifica como `Target Segment` porque cumple los requisitos de búsqueda de la función `mixmatch` tanto para el campo `Region` como para el campo `Industry`. Tenga en cuenta que la función `mixmatch` no distingue entre mayúsculas y minúsculas.

## Ejemplo: cargar script usando mixmatch

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

#### Script de carga

Vista general

Puede usar mixmatch para cargar un subconjunto de datos. Por ejemplo, puede devolver un valor numérico para una expresión en la función. A continuación, puede limitar los datos que se cargan en función del valor numérico. Mixmatch devuelve 0 si no hay coincidencias. Por lo tanto, todas las expresiones que no coincidan en este ejemplo devolverán 0 y serán excluidas de la carga de datos por la sentencia `WHERE`.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en dos tablas de datos denominadas:

  * `Transactions`: incluye campos de transacciones

  * `Transaction_Buckets`: crea dos nuevos campos `Customer` y `Color Code - Black, Blue, blue`. La sentencia `where` carga los resultados de la función `mixmatch`.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `[Color Code - Black, Blue, blue]`

* `Customer`

Tabla de resultados que muestra el resultado de utilizar la función mixmatchmixmatch en el script de carga.

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

## Ejemplo: expresión de gráfico utilizando mixmatch

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

#### Expresión de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada Example.

* Los siguientes campos de la tabla de datos:

  * Cities

  * Count

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* Cities

Cree las siguientes medidas:

* =mixmatch( Cities,'Toronto','Boston','Beijing','Zurich'), para devolver el índice de la cadena de búsqueda.

* =mixmatch( Cities,'Toronto','Boston','Beijing','Stockholm','Zurich'), para devolver el índice de la cadena de búsqueda.

* =Cities & ' - ' & mixmatch ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','Zurich'), para devolver el campo Cities y el índice de la cadena de búsqueda.

La primera medida de la tabla siguiente devuelve 0 para Stockholm porque Stockholm no está incluida en la lista de expresiones de la función mixmatch. También devuelve 4 para Zurich porque la comparación mixmatch no distingue entre mayúsculas y minúsculas.

Tabla de resultados

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

## Ejemplo: expresión de ordenación personalizada usando mixmatch

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

#### Expresión de gráfico

Vista general

Puede usar mixmatch para realizar una ordenación personalizada en una expresión. Este ejemplo utiliza el mismo conjunto de datos que el ejemplo anterior.

De manera predeterminada, las columnas se ordenan numérica o alfabéticamente en función de los datos.

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* Cities

Tabla de resultados que muestra el criterio de ordenación predeterminado

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

Para cambiar el criterio de ordenación, haga lo siguiente:

1. Abra la sección Ordenar de su gráfico en el panel de Propiedades.

2. Desactive la ordenación automática para la columna en la que desea realizar una ordenación personalizada.

3. Borre las casillas Ordenar numéricamente y Ordenar alfabéticamente.

4. Seleccione Ordenar por expresión y después introduzca una expresión similar a la siguiente:

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

   El criterio de ordenación de la columna Cities cambia.

Tabla de resultados que muestra el orden de clasificación utilizando la función mixmatchmixmatch

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

## Más información

* [match Función de script y de gráfico](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [wildmatch Función de script y de gráfico](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)