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

Dual() combina un número y una cadena en un solo registro, de manera que la representación numérica del registro se puede utilizar con fines de ordenación y cálculo, mientras que el valor de la cadena se puede usar para fines de visualización.

[Dual Function](https://play.vidyard.com/vNa9jcN6DizzYQ1hDZ5VAr)

Sintaxis:

Dual(text, number)

Tipo de datos que devuelve: dual

Nota informativaTodos los valores de retorno duales están alineados a la derecha.

Argumentos

| Argumento | Descripción |
| --- | --- |
| text | El valor de cadena que se ha de utilizar junto con el argumento de número. |
| number | El número que se ha de utilizar junto con la cadena en el argumento de número. |

En Qlik Sense, todos los valores de campo son potencialmente valores duales. Esto significa que los valores de campo pueden tener un valor tanto numérico como de texto. Un ejemplo es una fecha que podría tener un valor numérico 40908 y la representación textual '2011-12-31'.

Nota informativaCuando varios elementos de datos de un campo tienen diferentes representaciones de cadena pero una misma representación numérica válida, compartirán todos ellos la primera representación de cadena de caracteres que se encuentre.

Nota de sugerenciaLa función dual normalmente se usa al principio del script, antes de que se lean otros datos en el campo correspondiente, a fin de crear esa primera representación de cadena, que se mostrará en los paneles de filtrado.

Ejemplo: Expresiones de gráficos

| Ejemplo | Descripción |
| --- | --- |
| `Dual(IF(DayOfWeek = 0, 'Monday',`<br>`IF(DayOfWeek = 1, 'Tuesday',`<br>`If(DayOfWeek = 2 ,'Wednesday',`<br>`If(DayOfWeek = 3 ,'Thursday',		If(DayOfWeek = 4 ,'Friday',		If(DayOfWeek = 5 ,'Saturday',		 If(DayOfWeek = 6 ,'Sunday'`<br>`))))))), DayOfWeek)` | El campo `DayOfWeek` puede utilizarse en una visualización como una dimensión. En una tabla, los días de la semana se ordenan automáticamente en su secuencia numérica correcta, en lugar de por orden alfabético. |
| `Dual(Pick( Priority , 'Low','Medium','High'), Priority)` | El campo `Priority` puede utilizarse en una visualización como una dimensión. En una tabla, el campo `Priority` se ordena automáticamente en su secuencia numérica correcta, en lugar de por orden alfabético. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3))` | El campo `Date` puede utilizarse en una visualización como una dimensión. Se crean los valores de texto de `Q1` a `Q4` y se les asignan los valores numéricos de `1` a `4`. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date))` | El campo `Date` puede utilizarse en una visualización como una dimensión. Este ejemplo crea valores de texto de la forma `'2012-W22'` y, al mismo tiempo, asigna un valor numérico correspondiente al número de fecha del primer día de la semana, por ejemplo: `41057`. |

Ejemplo: scripts de carga

| Ejemplo | Descripción |
| --- | --- |
| Añada los ejemplos siguientes a su script y ejecútelo.<br><br>`Load dual ( NameDay,NumDay ) as DayOfWeek inline` `[ NameDay,NumDay` `Monday,0` `Tuesday,1` `Wednesday,2` `Thursday,3` `Friday,4` `Saturday,5` `Sunday,6 ];` | El campo `DayOfWeek` puede utilizarse en una visualización como dimensión, por ejemplo. En una tabla, los días de la semana se ordenan automáticamente en su secuencia numérica correcta, en lugar de por orden alfabético. |
| `Load<br>Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter<br>AutoGenerate 1;` | Este ejemplo halla el trimestre actual. Aparece como `Q1` cuando se ejecuta la función Ahora en los tres primeros meses del año, `Q2` para los tres segundos meses, y así sucesivamente. Sin embargo, cuando se utiliza en la ordenación, el campo `Quarter` se comportará como su valor numérico: 1 a 4. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter` | Como en el ejemplo anterior, el campo `Quarter` se crea con los valores de texto `Q1` a `Q4` y se le asignan los valores numéricos `1` a `4`. Para usar esto en el script deben cargarse los valores de `Date`. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek` | Este ejemplo crea un campo `YearWeek` con valores de texto de la forma `2012-W22` y, al mismo tiempo, asigna un valor numérico correspondiente al número de la fecha del primer día de la semana, por ejemplo: `41057`. Para usar esto en el script deben cargarse los valores de `Date`. |

## Ejemplo: fundamentos de Dual

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

#### Expresión de gráfico

Vista general

Un conjunto de datos contiene datos de servicio al cliente. Desea revisar el número de llamadas por día de la semana.

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:

  * `DayOfWeek`
  * `NoOfCalls`

Script de carga

```
Example:
Load * inline [
DayOfWeek, NoOfCalls
0, 25000
1, 30000
2, 27500
3, 32000
4, 23250
5, 28950
6, 32350
];
```

Resultados

Cargue los datos y abra una hoja. Cree un nuevo gráfico de barras y después añada una dimensión utilizando uno de los métodos siguientes:

1. En la expresión de la dimensión, añada lo siguiente:

   ```
   =Dual(IF(DayOfWeek = 0, 'Monday',
   IF(DayOfWeek = 1, 'Tuesday',
   If(DayOfWeek = 2 ,'Wednesday',
   If(DayOfWeek = 3 ,'Thursday',
   If(DayOfWeek = 4 ,'Friday',
   If(DayOfWeek = 5 ,'Saturday',
   If(DayOfWeek = 6 ,'Sunday'
   ))))))), DayOfWeek) 
   ```

2. Este método es más eficaz. En la expresión de la dimensión, añada lo siguiente:

   ```
   =Dual(pick( DayOfWeek +1 , 'Monday','Tuesday','Wednesday', 'Thursday','Friday', 'Saturday','Sunday' ), DayOfWeek)
   ```

Cree la siguiente medida:

* `=Sum(NoOfCalls)`, para calcular el número de llamadas.

Resultados: Gráfico de barras que muestra el número de llamadas por día de la semana

Resultados: Gráfico de barras que muestra el número de llamadas por día de la semana

Resultados: Gráfico de barras que muestra el número de llamadas por día de la semana ![Gráfico de barras con una dimensión que se creó utilizando la función Dual en la expresión de dimensión](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/dual-barchart.png)

El gráfico de barras muestra el número de llamadas según el día de la semana. Clasifica automáticamente los días de la semana en el orden correcto.

## Ejemplo: uso de Dual

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

#### Expresión de gráfico

Vista general

Un conjunto de datos contiene comentarios recabados en la asistencia al cliente. Desea clasificar y mostrar estos comentarios de modo que se visualicen primero las respuestas negativas seguidas de las positivas.

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:

  * ResponseType
  * NoOfResponses

Script de carga

```
Example:
Load * inline [
ResponseType, NoOfResponses
1, 350
2, 560
3, 4350
4, 2350
5, 5350
];
```

Resultados

Cargue los datos y abra una hoja. Cree un nuevo gráfico de barras y añada la siguiente expresión a una dimensión.

* =Dual(pick( ResponseType , 'Very Bad','Bad','Average', 'Good','Very Good'), ResponseType)

Cree la siguiente medida:

* =Sum(NoOfResponses) para calcular el número de respuestas.

Resultados: Gráfico de barras que muestra el número de respuestas por tipo de respuesta

Resultados: Gráfico de barras que muestra el número de respuestas por tipo de respuesta

Resultados: Gráfico de barras que muestra el número de respuestas por tipo de respuesta ![Gráfico de barras con una dimensión que se creó utilizando la función Dual en la expresión de dimensión](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Resources/Images/dual-barchart2.png)

El gráfico de barras muestra el número de respuestas por tipo de respuesta. Tenga en cuenta que las barras se ordenan automáticamente de negativo a positivo. Al tipo de respuesta, que es un valor numérico, se le ha asignado una descripción textual.