# Dual - Função de script e de gráfico

Dual() combina um número e uma string em um único registro, de modo que representação numérica do registro possa ser usada para classificar e calcular propósitos, enquanto o valor da string pode ser usado para exibir propósitos.

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

Sintaxe:

Dual(text, number)

Tipo de dados de retorno: dual

Nota informativaTodos os valores de retorno duplos estão alinhados à direita.

Argumentos

| Argumento | Descrição |
| --- | --- |
| text | O valor da string a ser usado em combinação com o argumento numérico. |
| number | O número a ser usado em combinação com a string no argumento numérico. |

No Qlik Sense, todos os valores de campo são potencialmente valores duais. Isso significa que os valores de campo podem ter tanto um valor numérico quanto um valor textual. Um exemplo é uma data que poderia ter um valor numérico de 40908 e a representação textual '2011-12-31'.

Nota informativaQuando vários itens de dados lidos em um campo tiverem diferentes representações de string, mas a mesma representação numérica válida, eles compartilharão a primeira representação de string encontrada.

Nota de dicaEm geral, a função dual é usada primeiro no script, antes da leitura de outros dados no campo em questão, a fim de criar essa primeira representação de string, que será mostrada nos painéis de filtro.

Exemplo: expressões de gráfico

| Exemplo | Descrição |
| --- | --- |
| `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)` | O campo `DayOfWeek` pode ser usado em uma visualização como uma dimensão. Em uma tabela, os dias da semana são classificados automaticamente na sequência numérica correta, em vez de em ordem alfabética. |
| `Dual(Pick( Priority , 'Low','Medium','High'), Priority)` | O campo `Priority` pode ser usado em uma visualização como uma dimensão. Em uma tabela, o campo `Priority` é automaticamente classificado em sua sequência numérica correta, em vez de em ordem alfabética. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3))` | O campo `Date` pode ser usado em uma visualização como uma dimensão. Os valores de texto `Q1` a `Q4` são criados e recebem os valores numéricos `1` a `4`. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date))` | O campo `Date` pode ser usado em uma visualização como uma dimensão. Este exemplo cria valores de texto do formulário `'2012-W22'` e, ao mesmo tempo, atribui um valor numérico correspondente ao número da data do primeiro dia da semana, por exemplo: `41057`. |

Exemplo: scripts de carregamento

| Exemplo | Descrição |
| --- | --- |
| Adicione os seguintes exemplos ao seu script e execute-o.<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 ];` | O campo `DayOfWeek` pode ser usado em uma visualização como uma dimensão, por exemplo. Em uma tabela, os dias da semana são classificados automaticamente na sequência numérica correta, em vez de em ordem alfabética. |
| `Load<br>Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter<br>AutoGenerate 1;` | Este exemplo localiza o trimestre atual. É exibido como `Q1` quando a função Now é executada nos primeiros três meses do ano, `Q2` para o segundo trimestre, e assim por diante. No entanto, quando usado em classificação, o campo `Quarter` se comportará como valor numérico: 1 a 4. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter` | Como no exemplo anterior, o campo `Quarter` é criado com os valores de texto `Q1` a `Q4` e são atribuídos os valores numéricos `1` a `4`. Para usar isso no script, os valores de `Date` devem ser carregados. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek` | Esse exemplo cria um campo `YearWeek` com os valores de texto com o formato `2012-W22` e, ao mesmo tempo, atribuirá um valor numérico correspondente ao número de data do primeiro dia da semana, por exemplo: `41057`. Para usar isso no script, os valores de `Date` devem ser carregados. |

## Exemplo – Fundamentos de Dual

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de atendimento ao cliente. Você deseja analisar o número de chamadas por dia da semana.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `DayOfWeek`
  * `NoOfCalls`

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie um novo gráfico de barras e adicione uma dimensão usando um dos métodos a seguir:

1. Na expressão de dimensão, adicione o seguinte:

   ```
   =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. Esse método é mais eficiente. Na expressão de dimensão, adicione o seguinte:

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

Crie a seguinte medida:

* `=Sum(NoOfCalls)` para calcular o número de chamadas.

Resultados: gráfico de barras mostrando o número de chamadas por dia da semana

Resultados: gráfico de barras mostrando o número de chamadas por dia da semana

Resultados: gráfico de barras mostrando o número de chamadas por dia da semana ![Gráfico de barras com dimensão que foi criada usando a função Dual na expressão de gráfico](https://help.qlik.com/pt-BR/sense/November2025/Subsystems/Hub/Content/Resources/Images/dual-barchart.png)

O gráfico de barras mostra o número de chamadas por dia da semana. Ele classifica automaticamente os dias da semana na ordem correta.

## Exemplo – Cenário de Dual

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém feedback de suporte ao cliente. Você deseja classificar e exibir o feedback mostrando as respostas negativas primeiro, seguidas das respostas positivas.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada Example.

* Os campos a seguir na tabela de dados:

  * ResponseType
  * NoOfResponses

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie um novo gráfico de barras e adicione a seguinte expressão a uma dimensão.

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

Crie a seguinte medida:

* =Sum(NoOfResponses) para calcular o número de respostas.

Resultados: gráfico de barras mostrando o número de respostas por tipo de resposta

Resultados: gráfico de barras mostrando o número de respostas por tipo de resposta

Resultados: gráfico de barras mostrando o número de respostas por tipo de resposta ![Gráfico de barras com dimensão que foi criada usando a função Dual na expressão de gráfico](https://help.qlik.com/pt-BR/sense/November2025/Subsystems/Hub/Content/Resources/Images/dual-barchart2.png)

O gráfico de barras mostra o número de respostas por tipo de resposta. Observe que as barras são automaticamente classificadas de negativas para positivas. O tipo de resposta, que é um valor numérico, recebeu uma descrição de texto.