Fórmulas
Campos de Formula nos Boards da Copera permitem criar colunas calculadas que derivam seus valores automaticamente de outros dados nas suas linhas. Alimentado pelo Motor de Fórmulas da Copera -- uma linguagem de fórmulas dedicada com seu próprio parser e avaliador -- você pode construir desde aritmética simples até lógica condicional complexa e cálculos com datas.
Visão Geral da Linguagem de Fórmulas
As fórmulas da Copera usam uma sintaxe similar às fórmulas de planilhas. Cada fórmula é avaliada por linha, com acesso a todos os valores de coluna naquela mesma linha. O motor de fórmulas suporta:
- Operadores aritméticos:
+,-,*,/para operações matemáticas - Concatenação de texto:
¶ juntar valores de texto - Operadores de comparação:
=,!=,>,<,>=,<= - Operadores lógicos:
AND,OR,NOTpara combinar condições - Referências a campos: Referencie outras colunas envolvendo o nome da coluna em chaves, ex.:
{Nome da Coluna} - Funções aninhadas: Funções podem ser usadas como argumentos de outras funções
Sintaxe Básica
{Price} * {Quantity}
Esta fórmula multiplica o valor da coluna "Price" pela coluna "Quantity" para cada linha.
IF({Status} = "Done", "Completo", "Pendente")
Esta fórmula retorna "Completo" quando a coluna Status é igual a "Done", e "Pendente" caso contrário.
Referência de Funções
O Motor de Fórmulas da Copera fornece mais de 100 funções organizadas nas seguintes categorias. Abaixo está uma referência das funções mais comumente usadas.
Funções Matemáticas
| Função | Descrição | Exemplo |
|---|---|---|
ABS(number) | Valor absoluto | ABS({Balance}) |
CEIL(number) | Arredondar para cima para o inteiro mais próximo | CEIL({Score} / 10) |
FLOOR(number) | Arredondar para baixo para o inteiro mais próximo | FLOOR({Price}) |
ROUND(number, decimals) | Arredondar para casas decimais especificadas | ROUND({Average}, 2) |
MIN(a, b, ...) | Menor valor | MIN({Estimate}, {Budget}) |
MAX(a, b, ...) | Maior valor | MAX({Score1}, {Score2}) |
SUM(a, b, ...) | Soma dos valores | SUM({Q1}, {Q2}, {Q3}, {Q4}) |
AVERAGE(a, b, ...) | Média aritmética | AVERAGE({Test1}, {Test2}) |
MOD(number, divisor) | Resto da divisão | MOD({Row Number}, 2) |
POWER(base, exponent) | Elevar a uma potência | POWER({Side}, 2) |
SQRT(number) | Raiz quadrada | SQRT({Area}) |
Funções de Texto
| Função | Descrição | Exemplo |
|---|---|---|
CONCAT(a, b, ...) | Juntar valores de texto | CONCAT({First Name}, " ", {Last Name}) |
LEFT(text, count) | Extrair do início | LEFT({Code}, 3) |
RIGHT(text, count) | Extrair do final | RIGHT({Phone}, 4) |
MID(text, start, count) | Extrair do meio | MID({ID}, 2, 4) |
LEN(text) | Contagem de caracteres | LEN({Description}) |
LOWER(text) | Converter para minúsculas | LOWER({Email}) |
UPPER(text) | Converter para maiúsculas | UPPER({Code}) |
TRIM(text) | Remover espaços iniciais/finais | TRIM({Input}) |
REPLACE(text, old, new) | Substituir ocorrências | REPLACE({URL}, "http", "https") |
SEARCH(find, text) | Encontrar posição de substring | SEARCH("@", {Email}) |
Funções de Data
O motor de fórmulas integra-se com uma extensa biblioteca de datas, dando acesso a poderosas funções de manipulação e comparação de datas.
| Função | Descrição | Exemplo |
|---|---|---|
TODAY() | Data atual | TODAY() |
NOW() | Data e hora atuais | NOW() |
YEAR(date) | Extrair ano | YEAR({Created}) |
MONTH(date) | Extrair mês (1-12) | MONTH({Due Date}) |
DAY(date) | Extrair dia do mês | DAY({Birthday}) |
WEEKDAY(date) | Dia da semana (0-6) | WEEKDAY({Start Date}) |
WEEKNUM(date) | Número da semana do ano | WEEKNUM({Created}) |
QUARTER(date) | Trimestre (1-4) | QUARTER({Close Date}) |
DATEADD(date, count, unit) | Adicionar tempo a uma data | DATEADD({Start}, 14, "days") |
DATEDIFF(date1, date2, unit) | Diferença entre datas | DATEDIFF({Start}, {End}, "days") |
IS_BEFORE(date1, date2) | Verificar se date1 é antes de date2 | IS_BEFORE({Due Date}, TODAY()) |
IS_AFTER(date1, date2) | Verificar se date1 é depois de date2 | IS_AFTER({Due Date}, TODAY()) |
IS_SAME_DAY(date1, date2) | Verificar se é o mesmo dia | IS_SAME_DAY({Created}, TODAY()) |
IS_TODAY(date) | Verificar se a data é hoje | IS_TODAY({Due Date}) |
IS_WEEKEND(date) | Verificar se a data cai em fim de semana | IS_WEEKEND({Delivery Date}) |
START_OF_MONTH(date) | Primeiro dia do mês | START_OF_MONTH({Date}) |
END_OF_MONTH(date) | Último dia do mês | END_OF_MONTH({Date}) |
START_OF_WEEK(date) | Primeiro dia da semana | START_OF_WEEK({Date}) |
END_OF_WEEK(date) | Último dia da semana | END_OF_WEEK({Date}) |
ADD_BUSINESS_DAYS(date, days) | Adicionar apenas dias úteis | ADD_BUSINESS_DAYS({Start}, 5) |
DIFF_BUSINESS_DAYS(d1, d2) | Dias úteis entre datas | DIFF_BUSINESS_DAYS({Start}, {End}) |
Funções Lógicas
| Função | Descrição | Exemplo |
|---|---|---|
IF(condition, then, else) | Valor condicional | IF({Amount} > 1000, "Alto", "Baixo") |
SWITCH(expr, val1, result1, ...) | Comparar contra múltiplos valores | SWITCH({Priority}, "P0", "Crítico", "P1", "Alto", "Normal") |
AND(a, b, ...) | Verdadeiro se todas as condições forem verdadeiras | AND({Complete}, {Approved}) |
OR(a, b, ...) | Verdadeiro se qualquer condição for verdadeira | OR({Urgent}, {Overdue}) |
NOT(value) | Inverter um booleano | NOT({Archived}) |
ISBLANK(value) | Verificar se está vazio | ISBLANK({Notes}) |
Exemplos Comuns de Fórmulas
Concatenando Nomes
CONCAT({First Name}, " ", {Last Name})
Combina colunas de nome e sobrenome com um espaço entre elas.
Calculando Dias Até o Vencimento
DATEDIFF(TODAY(), {Due Date}, "days")
Retorna o número de dias restantes até a data de vencimento. Valores negativos indicam itens atrasados.
Rótulos de Status Condicionais
IF(IS_BEFORE({Due Date}, TODAY()), "Atrasado",
IF(DATEDIFF(TODAY(), {Due Date}, "days") <= 3, "Vence em Breve", "No Prazo"))
Retorna "Atrasado" para itens vencidos, "Vence em Breve" para itens com vencimento em até 3 dias, e "No Prazo" para o restante.
Cálculo de Porcentagem
ROUND({Completed Tasks} / {Total Tasks} * 100, 1)
Calcula a porcentagem de conclusão arredondada para uma casa decimal.
Dias Úteis Restantes
DIFF_BUSINESS_DAYS(TODAY(), {Deadline})
Calcula o número de dias úteis (excluindo fins de semana) entre hoje e um prazo.
Tratamento de Erros
Quando uma fórmula contém erros, a Copera exibe um indicador de erro na célula em vez de um valor. Erros comuns incluem:
- Erros de sintaxe -- Parênteses não correspondentes, operadores ausentes ou nomes de funções não reconhecidos.
- Incompatibilidade de tipos -- Tentar realizar aritmética em valores de texto ou operações de data em números.
- Referências nulas -- Referenciar uma coluna que não tem valor na linha atual. Use
ISBLANK()para tratar campos opcionais de forma elegante. - Divisão por zero -- Dividir por uma coluna que contém zero. Envolva com um
IFpara verificar:IF({Total} = 0, 0, {Part} / {Total}).
O editor de fórmulas mostra uma pré-visualização ao vivo do resultado conforme você digita, facilitando a detecção e correção de erros antes de salvar.
Criação de Fórmulas com Assistência de IA
Se você não tem certeza de como escrever uma fórmula, a Copera oferece um assistente de fórmulas alimentado por IA. Descreva o que você deseja calcular em linguagem natural, e o assistente gerará uma fórmula para você. Você pode revisar, editar e refinar a sugestão antes de aplicá-la à sua coluna.
Próximos Passos
- Saiba mais sobre Campos Computados para entender os campos Formula, Function e Tracker em profundidade.
- Configure Automações que disparam com base em resultados de fórmulas.
- Use Filtros e Ordenação para filtrar linhas por valores de colunas de fórmula.