# coalesceFunción de script y de gráfico

La función coalesce devuelve el primero de los parámetros que tiene una representación válida non-NULL. Se puede utilizar cualquier número de parámetros.

Sintaxis:

coalesce(expr1[ , expr2 , expr3 , ...])

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| expr1 | La primera expresión para comprobar si hay una representación no nula válida. |
| expr2 | La segunda expresión para comprobar si hay una representación no nula válida. |
| expr3 | La tercera expresión para comprobar si hay una representación no nula válida. |

Ejemplos: expresiones de gráfico

| Ejemplo | Resultado |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Esta expresión seleccionará entre tres campos diferentes de descripción del producto cuando algunos campos no tengan valores para el producto. Siguiendo el orden indicado en la función, se devuelve el primer campo con un valor no nulo. Si ninguno de los campos contiene un valor, el resultado será `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Esta expresión recortará las posibles comillas adjuntas del campo `FileName`. Si el `FileName` aportado está entre comillas, estas se eliminan y se devuelve el `FileName` entre paréntesis y sin comillas. Si la función `TextBetween` no encuentra los delimitadores devuelve null, lo cual es rechazado por Coalesce, devolviendo en su lugar el `FileName` en bruto. |

## Ejemplo: fundamentos de Coalesce

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

#### Expresión de gráfico

Vista general

Se carga una tabla de datos que contiene datos sobre productos y precios. Queremos asegurarnos de que cualquier valor nulo se sustituya por un valor alternativo.

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`

  * `Price`

* Una sentencia `NullInterpret` de variable para garantizar que cualquier valor que falte se trate como nulo: NULL.

Script de carga

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

Resultados

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

   * `ProductID`

   * `ProductName`

2. Cree la siguiente dimensión calculada:

   * `=Coalesce(ProductName, 'Unknown Product')`

3. Cree la siguiente medida:

   * `=Sum(Price)`, para devolver una representación numérica válida.

4. Cree una nueva tabla y añada la siguiente expresión como dimensión calculada:

   * `=Coalesce(ProductName, 'Unknown Product')`

5. Cree la siguiente medida:

   * `=Sum(Price)`, para devolver una representación numérica válida.

Los resultados de las tablas siguientes muestran cómo la función `Coalesce` puede sustituir los valores nulos del conjunto de datos original por el valor alternativo `Unknown Product`.

Tabla de resultados 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

Tabla de resultados 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## Ejemplo: sustituir valores nulos por un valor alternativo priorizado

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

#### Expresión de gráfico

Vista general

Este ejemplo utiliza la función `Coalesce` para sustituir los datos de ubicación que faltan por un valor alternativo de acuerdo con la lógica de prioridades especificada.

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:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Una sentencia `NullInterpret` de variable para garantizar que cualquier valor que falte se trate como nulo: NULL.

Script de carga

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

Resultados

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

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Cree la siguiente dimensión calculada:

   * `=Coalesce(Country, State, City)`, para rellenar cualquier valor nulo con alternativas.

Tabla de resultados

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

Los resultados muestran que, aunque faltan valores, puede utilizar la función `Coalesce` para proporcionar una lógica sobre cómo rellenar estas instancias con un valor alternativo para completar el conjunto de datos. Por ejemplo, a `L004` le falta un valor de `Country`. La función `Coalesce` devuelve `New South Wales` porque `State` es el segundo campo listado en la lógica de prioridades a utilizar cuando falta el valor de `Country`.