Exemplos de Fórmulas Mais Usadas Permalink
Este guia apresenta exemplos práticos de fórmulas para o ajudar a calcular custos, combinar valores, medir tempo, aplicar condições e organizar dados de tarefas no Quire. Cada exemplo demonstra como as fórmulas podem transformar dados brutos de tarefas em informações significativas.
Cálculos de Custos
Para calcular o custo total de uma tarefa e de todas as suas sub-tarefas, são necessários dois campos personalizados:
- Crie um campo personalizado Cost.
- Tipo de campo: Number
- Casas decimais: 2
- Crie um campo personalizado Total Cost.
- Tipo de campo: Fórmula
- Introduza a fórmula a seguir:
SUM(subtasks.{Total Cost}, Cost)
Esta fórmula soma o custo próprio da tarefa ao custo total de todas as suas sub-tarefas.
Consulte todas as funções que pode usar nas fórmulas do Quire.
Apresentar Vários Valores num Único Campo
Pode usar uma fórmula de array para apresentar ou calcular vários valores de uma só vez. Um array é uma coleção de elementos como tarefas, números ou valores de texto.
Exemplo: Apresentar tarefas específicas num único campo
[#2, #23]
Isto devolve as tarefas indicadas como uma lista.
Dica: Pode especificar tarefas com o identificador de tarefa #task_ID na sua fórmula.
Cálculos com Arrays
As fórmulas de array permitem aplicar a mesma operação a vários elementos simultaneamente.
Exemplo: Obter as datas limite de várias tarefas
[#2, #23].due
Isto é equivalente a:
[#2.due, #23.due]
O uso de arrays reduz a repetição e melhora a legibilidade das fórmulas.
Saiba mais sobre as fórmulas de array do Quire que permitem listar ou fazer cálculos sobre uma coleção de dados.
Cálculos de Duração
É possível calcular a duração entre duas datas em diferentes unidades.
Exemplo: Calcular a duração em dias
(due - start).days
Isto devolve o número de dias entre as datas de início e data limite.
Nota: O resultado é arredondado por excesso para o número inteiro mais próximo (o menor inteiro maior ou igual ao valor real). Por exemplo, uma duração de uma hora será contabilizada como um dia.
Duração Precisa
Para obter resultados mais precisos, pode ajustar a fórmula.
Exemplo: Converter horas em dias
(due - start).hours / 24
Extração de Informação de Datas
É possível extrair componentes individuais de um campo de data, tais como:
- Ano
- Mês
- Dia
- Hora
- Minuto
- Segundo
- Dia da semana
Exemplo: Obter o dia da semana de uma data limite
due.weekday
Nota: O valor do dia da semana segue um formato numérico em que 1 = segunda-feira, 2 = terça-feira, e assim sucessivamente.
Cálculos de Dias Úteis
Use a função WORKDAYS para calcular os dias úteis entre duas datas.
WORKDAYS(start, due)
Se a data de início e a data limite forem iguais, o resultado é 1 dia.
Usar a Data de Hoje
Exemplo:
WORKDAYS(<today>, <tomorrow>)
Devolve 2 dias.
Configuração Personalizada do Fim de Semana
Pode definir quais os dias considerados fim de semana.
WORKDAYS(start, due, weekend)
Substitua weekend por um dos valores a seguir:
| Código de fim de semana | Dias considerados fim de semana |
|---|---|
| 1 | Sáb, Dom |
| 2 | Dom, Seg |
| 7 | Sex, Sáb |
| 9 | Sex, Dom |
| 11 | Dom |
| 16 | Sex |
Lógica Condicional
Pode usar o operador condicional ?: para devolver resultados diferentes consoante uma condição. Funciona de forma semelhante a uma instrução IF.
Pode definir dois resultados: apresenta o primeiro se a condição for verdadeira e o segundo se for falsa.
Exemplo: Apresentar indicadores de estado com base no tempo gasto (quando o total de horas gastas numa tarefa ultrapassa 5 horas)
timeSpent > 5h ? "🔴" : "🟢"
- Condição:
timeSpent > 5h - Resultado se verdadeiro: 🔴
- Resultado se falso: 🟢
Ordenar e Organizar Valores
Use a função SORT para ordenar valores por ordem crescente.
Por exemplo, se tiver 4 sub-tarefas com datas limite a 1 de setembro, 23 de agosto, 1 de setembro e 30 de julho respetivamente:
SORT(subtasks.due)
Resultado: ordena as datas limite das sub-tarefas da mais antiga para a mais recente e lista todas as datas limite no campo.
Jul 30, Aug 23, Sep 1, Sep 1
Remover Duplicados
Combine SORT com a função DISTINCT.
Como se pode ver no resultado, há duas sub-tarefas com a mesma data limite (1 de setembro). Experimente:
DISTINCT(SORT(subtasks.due))
Resultado:
Jul 30, Aug 23, Sep 1
Ordenar por Data Limite
Use o operador order by.
subtasks order by any.due
Isto localiza as sub-tarefas e ordena-as pelas suas datas limite.
Nota: Pode usar o identificador any com o operador order by para especificar o campo pelo qual pretende ordenar.
Consulte todos os operadores e funções disponíveis que pode usar nas fórmulas do Quire.
Perguntas Frequentes
Como apresento vários valores de tarefas num único campo de fórmula do Quire?
Use a sintaxe de array — [#2, #23].due obtém as datas limite das tarefas #2 e #23 como uma lista. Consulte as fórmulas de array do Quire para saber mais.
Como calculo o custo total de uma tarefa incluindo as suas sub-tarefas no Quire?
Crie um campo Number chamado “Cost” e um campo Fórmula chamado “Total Cost”, depois introduza SUM(subtasks.{Total Cost}, Cost).
Como calculo a duração de uma tarefa em dias entre a data de início e a data limite no Quire?
Use (due - start).days para dias inteiros (arredondados por excesso), ou (due - start).hours / 24 para maior precisão.
Como calculo os dias úteis entre duas datas no Quire?
Use WORKDAYS(start, due). Adicione um código de fim de semana como terceiro argumento para personalizar quais os dias considerados fim de semana — por exemplo, WORKDAYS(start, due, 7) trata sexta-feira e sábado como fim de semana.
Como extraio componentes específicos de uma data, como o dia da semana ou o mês, numa fórmula do Quire?
Use a notação de ponto — due.weekday devolve o número do dia da semana (1 = segunda-feira, 7 = domingo). O mesmo funciona para ano, mês, dia, hora, minuto e segundo.
Como escrevo uma fórmula condicional no Quire?
Use o operador ?: — timeSpent > 5h ? "🔴" : "🟢" apresenta um indicador vermelho se o tempo gasto ultrapassar 5 horas, e verde caso contrário.
Como ordeno os valores de sub-tarefas usando uma fórmula do Quire?
Use SORT(subtasks.due) para ordenar da data mais antiga para a mais recente. Envolva com DISTINCT() para remover duplicados: DISTINCT(SORT(subtasks.due)).