> ## Documentation Index
> Fetch the complete documentation index at: https://ajuda.medemerge.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# case

> Devolve um valor conforme a primeira condição verdadeira: faixas, rótulos e contas condicionais.

`case` testa condições em ordem e devolve o resultado da primeira que for verdadeira. Serve para criar faixas, dar nome a códigos e fazer contas que dependem de uma condição.

## Sintaxe

```text theme={null}
case(condição1, resultado1, condição2, resultado2, …, padrão)
```

| Argumento | O que é |
| - | - |
| `condição` | Uma comparação ou função que dá verdadeiro ou falso. |
| `resultado` | O que devolver quando a condição logo antes dele é verdadeira. |
| `padrão` | Opcional. O que devolver quando nenhuma condição é verdadeira. Sem ele, fica vazio. |

Os pares `condição, resultado` se repetem quantas vezes for preciso. `if` é o mesmo que `case`.

## Exemplos

Os exemplos usam esta tabela de amostra. As colunas são fictícias.

| setor | minutos\_espera | convenio | valor |
| - | - | - | - |
| PS | 45 | SUS | 120 |
| PS | 12 | Unimed | 300 |
| UTI | 25 | SUS | 900 |

### Faixas de espera

Numa coluna personalizada:

```text theme={null}
case([minutos_espera] > 30, "longa", [minutos_espera] > 10, "média", "curta")
```

| minutos\_espera | resultado |
| - | - |
| 45 | longa |
| 12 | média |
| 25 | média |

A ordem importa: 45 também é maior que 10, mas a primeira condição verdadeira é a que vale. Agrupe por essa coluna em **Resumir** para contar os atendimentos de cada faixa.

### Dar nome a códigos

```text theme={null}
case([setor] = "PS", "Pronto-socorro", [setor] = "UTI", "Terapia intensiva", [setor])
```

O `padrão` é a própria coluna: o setor sem nome definido aparece como está.

### Conta condicional

Dentro de uma agregação, `case` escolhe o que entra na conta:

```text theme={null}
Sum(case([convenio] = "SUS", [valor], 0))
```

Resultado: **1020**, a soma dos valores do SUS. `SumIf([valor], [convenio] = "SUS")` faz a mesma conta.

## Limitações

* Todos os resultados precisam ser do mesmo tipo: todos textos, todos números ou todos datas. `case([minutos_espera] > 30, "longa", 0)` mistura texto e número, e a consulta falha.
* A linha em que a condição dá vazio (a coluna comparada está vazia) segue para a próxima condição, até o `padrão`.

## Relacionadas

* [if](/expressoes/funcoes#if): o mesmo que `case`.
* [coalesce](/expressoes/funcoes#coalesce): o primeiro valor que não está vazio.
* [CountIf](/expressoes/funcoes/countif) e [SumIf](/expressoes/funcoes#sumif): contagem e soma com critério, sem `case`.
* Em SQL, `CASE WHEN … THEN … ELSE … END`. Na planilha, `SES`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.