# if Função de script e de gráfico

A função if retorna um valor dependendo se a condição fornecida com a função avaliar como True ou False.

[If Function](https://play.vidyard.com/qnkaRddq32LnAGUTTDGdLA)

Sintaxe:

if(condition , then [, else])

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| condition | Expressão que é interpretada de forma lógica. |
| then | Expressão que pode ser de qualquer tipo. Se condition forTrue, então a função if retornará o valor da expressão then. |
| else | Expressão que pode ser de qualquer tipo. Se condition forFalse, então a função if retornará o valor da expressão else.<br><br>Este parâmetro é opcional. Se condition for False, NULL será retornado se você não tiver especificado else. |

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | Essa expressão testa se o valor é um número positivo (0 ou maior) e retorna `OK` se for. Se a quantidade for menor que 0, `Alarm` é exibido. |

Alguns dos exemplos neste tópico usam carregamentos inline. Para obter mais informações, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

## Exemplo - Script de carregamento usando if

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

#### Script de carregamento

Visão geral

É possível usar If em um script de carregamento com outros métodos e objetos, incluindo variáveis. Este exemplo usa a variável `threshold` e inclui um novo campo no modelo de dados que se baseia no threshold.

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 duas tabelas de dados chamadas:

  * `Transactions`: inclui campos de transação

  * `Transaction_Buckets`: inclui um campo `transaction_id` e cria um novo campo, `[Compared to Threshold]`, usando a função `if` para comparar o campo `transaction_amount` com a configuração da variável `threshold`.

* Um comando de variável `threshold` definido como `100`.

Script de carregamento

```
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
];
 
set threshold = 100;
					
/* Create new table called Transaction_Buckets 
Compare transaction_amount field from Transaction table to threshold of 100.
Output results into a new field called Compared to Threshold
 */

Transaction_Buckets:
Load
   transaction_id,
   If(transaction_amount > $(threshold),'Greater than $(threshold)','Less than $(threshold)') as [Compared to Threshold]
Resident Transactions;
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `transaction_id`

* `[Compared to Threshold]`

Tabela de resultados mostrando a saída do uso da função ifif no script de carregamento.

| cabeçalho | Comparado a Limite |
| --- | --- |
| 3750 | Menor que 100 |
| 3751 | Maior que 100 |
| 3752 | Menor que 100 |
| 3753 | Maior que 100 |
| 3754 | Maior que 100 |
| 3756 | Menor que 100 |
| 3757 | Maior que 100 |

## Exemplo – Avaliar os dados do produto usando if

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de produtos. Você deseja identificar e categorizar os produtos de acordo com o fato de serem consumíveis ou não.

Script de carregamento

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:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `ProductID`

* `ProductName`

* `ProductCategory`

Crie a seguinte medida:

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`, para retornar os valores necessários.

Tabela de resultados

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

Você pode ver nos resultados que a função `if` avalia a expressão e retorna os valores necessários. Por exemplo, os produtos da categoria `Fruits` ou `Toiletries` são classificados como `Consumable`.

## Exemplo – Avaliar e classificar os dados do cliente usando if

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de clientes. Você deseja identificar e categorizar os clientes cuja região e categoria de setor atendam aos seus requisitos de classificação.

Script de carregamento

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:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Crie a seguinte medida:

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, para retornar o valor necessário.

Tabela de resultados

| ClientID | ClientName | Region | Industry | If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = '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 | Sound | Healthcare | Secondary Segment |

Você pode ver nos resultados que a função `if` avalia a expressão e retorna os valores necessários. Por exemplo, `Acme Corp` é classificado como `Target Segment` porque atende aos requisitos para fazer parte da região `North` ou `East` e do setor `Manufacturing` ou `Technology`.

## Exemplo – Avaliar os dados do incidente usando if

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

#### Expressão de gráfico

Visão geral

Use a função if para categorizar um conjunto de dados de relatórios de incidentes.

Script de carregamento

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:

  * Date

  * Location

  * Incidents

```
Example:
LOAD * inline [
Date, Location, Incidents
1/3/2016, Beijing, 0
1/3/2016, Boston, 12
1/3/2016, Stockholm, 3
1/3/2016, Toronto, 0
1/4/2016, Beijing, 0
1/4/2016, Boston, 8];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* Data

* Localização

* Incidentes

Crie as seguintes dimensões calculadas:

* =if(Incidents&gt;=10, 'Critical', 'Ok' )

* =if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok'))

Tabela de resultados

| Date | Location | Incidents | if(Incidents&gt;=10, 'Critical', 'Ok' ) | if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok')) |
| --- | --- | --- | --- | --- |
| 1/3/2016 | Beijing | 0 | Ok | Ok |
| 1/3/2016 | Boston | 12 | Critical | Critical |
| 1/3/2016 | Stockholm | 3 | Ok | Warning |
| 1/3/2016 | Toronto | 0 | Ok | Ok |
| 1/4/2016 | Beijing | 0 | Ok | Ok |
| 1/4/2016 | Boston | 8 | Ok | Warning |

## Exemplo – Categorizar as datas usando if

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

#### Expressão de gráfico

Visão geral

Use a função if para categorizar as datas.

Script de carregamento

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

```
SET FirstWeekDay=0;
Load 
Date(MakeDate(2022)+RecNo()-1) as Date
Autogenerate 14;
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* Date

Crie as seguintes dimensões calculadas:

* WeekDay(Date)

* =If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day')

Tabela de resultados

| Date | WeekDay(Date) | If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day') |
| --- | --- | --- |
| 1/1/2022 | Sat | WeekEnd |
| 1/2/2022 | Sun | WeekEnd |
| 1/3/2022 | Mon | Normal Day |
| 1/4/2022 | Tue | Normal Day |
| 1/5/2022 | Wed | Normal Day |
| 1/6/2022 | Thu | Normal Day |
| 1/7/2022 | Fri | Normal Day |
| 1/8/2022 | Sat | WeekEnd |
| 1/9/2022 | Sun | WeekEnd |
| 1/10/2022 | Mon | Normal Day |
| 1/11/2022 | Tue | Normal Day |
| 1/12/2022 | Wed | Normal Day |
| 1/13/2022 | Thu | Normal Day |
| 1/14/2022 | Fri | Normal Day |