Pular para o conteúdo principal

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: & para juntar valores de texto
  • Operadores de comparação: =, !=, >, <, >=, <=
  • Operadores lógicos: AND, OR, NOT para 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çãoDescriçãoExemplo
ABS(number)Valor absolutoABS({Balance})
CEIL(number)Arredondar para cima para o inteiro mais próximoCEIL({Score} / 10)
FLOOR(number)Arredondar para baixo para o inteiro mais próximoFLOOR({Price})
ROUND(number, decimals)Arredondar para casas decimais especificadasROUND({Average}, 2)
MIN(a, b, ...)Menor valorMIN({Estimate}, {Budget})
MAX(a, b, ...)Maior valorMAX({Score1}, {Score2})
SUM(a, b, ...)Soma dos valoresSUM({Q1}, {Q2}, {Q3}, {Q4})
AVERAGE(a, b, ...)Média aritméticaAVERAGE({Test1}, {Test2})
MOD(number, divisor)Resto da divisãoMOD({Row Number}, 2)
POWER(base, exponent)Elevar a uma potênciaPOWER({Side}, 2)
SQRT(number)Raiz quadradaSQRT({Area})

Funções de Texto

FunçãoDescriçãoExemplo
CONCAT(a, b, ...)Juntar valores de textoCONCAT({First Name}, " ", {Last Name})
LEFT(text, count)Extrair do inícioLEFT({Code}, 3)
RIGHT(text, count)Extrair do finalRIGHT({Phone}, 4)
MID(text, start, count)Extrair do meioMID({ID}, 2, 4)
LEN(text)Contagem de caracteresLEN({Description})
LOWER(text)Converter para minúsculasLOWER({Email})
UPPER(text)Converter para maiúsculasUPPER({Code})
TRIM(text)Remover espaços iniciais/finaisTRIM({Input})
REPLACE(text, old, new)Substituir ocorrênciasREPLACE({URL}, "http", "https")
SEARCH(find, text)Encontrar posição de substringSEARCH("@", {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çãoDescriçãoExemplo
TODAY()Data atualTODAY()
NOW()Data e hora atuaisNOW()
YEAR(date)Extrair anoYEAR({Created})
MONTH(date)Extrair mês (1-12)MONTH({Due Date})
DAY(date)Extrair dia do mêsDAY({Birthday})
WEEKDAY(date)Dia da semana (0-6)WEEKDAY({Start Date})
WEEKNUM(date)Número da semana do anoWEEKNUM({Created})
QUARTER(date)Trimestre (1-4)QUARTER({Close Date})
DATEADD(date, count, unit)Adicionar tempo a uma dataDATEADD({Start}, 14, "days")
DATEDIFF(date1, date2, unit)Diferença entre datasDATEDIFF({Start}, {End}, "days")
IS_BEFORE(date1, date2)Verificar se date1 é antes de date2IS_BEFORE({Due Date}, TODAY())
IS_AFTER(date1, date2)Verificar se date1 é depois de date2IS_AFTER({Due Date}, TODAY())
IS_SAME_DAY(date1, date2)Verificar se é o mesmo diaIS_SAME_DAY({Created}, TODAY())
IS_TODAY(date)Verificar se a data é hojeIS_TODAY({Due Date})
IS_WEEKEND(date)Verificar se a data cai em fim de semanaIS_WEEKEND({Delivery Date})
START_OF_MONTH(date)Primeiro dia do mêsSTART_OF_MONTH({Date})
END_OF_MONTH(date)Último dia do mêsEND_OF_MONTH({Date})
START_OF_WEEK(date)Primeiro dia da semanaSTART_OF_WEEK({Date})
END_OF_WEEK(date)Último dia da semanaEND_OF_WEEK({Date})
ADD_BUSINESS_DAYS(date, days)Adicionar apenas dias úteisADD_BUSINESS_DAYS({Start}, 5)
DIFF_BUSINESS_DAYS(d1, d2)Dias úteis entre datasDIFF_BUSINESS_DAYS({Start}, {End})

Funções Lógicas

FunçãoDescriçãoExemplo
IF(condition, then, else)Valor condicionalIF({Amount} > 1000, "Alto", "Baixo")
SWITCH(expr, val1, result1, ...)Comparar contra múltiplos valoresSWITCH({Priority}, "P0", "Crítico", "P1", "Alto", "Normal")
AND(a, b, ...)Verdadeiro se todas as condições forem verdadeirasAND({Complete}, {Approved})
OR(a, b, ...)Verdadeiro se qualquer condição for verdadeiraOR({Urgent}, {Overdue})
NOT(value)Inverter um booleanoNOT({Archived})
ISBLANK(value)Verificar se está vazioISBLANK({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 IF para 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.