Pular para o conteúdo principal

Formulas

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 Formulas da Copera -- uma linguagem de formulas dedicada com seu proprio parser e avaliador -- voce pode construir desde aritmetica simples ate logica condicional complexa e calculos com datas.

Visao Geral da Linguagem de Formulas

As formulas da Copera usam uma sintaxe similar as formulas de planilhas. Cada formula e avaliada por linha, com acesso a todos os valores de coluna naquela mesma linha. O motor de formulas suporta:

  • Operadores aritmeticos: +, -, *, / para operacoes matematicas
  • Concatenacao de texto: & para juntar valores de texto
  • Operadores de comparacao: =, !=, >, <, >=, <=
  • Operadores logicos: AND, OR, NOT para combinar condicoes
  • Referencias a campos: Referencie outras colunas envolvendo o nome da coluna em chaves, ex.: {Nome da Coluna}
  • Funcoes aninhadas: Funcoes podem ser usadas como argumentos de outras funcoes

Sintaxe Basica

{Price} * {Quantity}

Esta formula multiplica o valor da coluna "Price" pela coluna "Quantity" para cada linha.

IF({Status} = "Done", "Completo", "Pendente")

Esta formula retorna "Completo" quando a coluna Status e igual a "Done", e "Pendente" caso contrario.

Referencia de Funcoes

O Motor de Formulas da Copera fornece mais de 100 funcoes organizadas nas seguintes categorias. Abaixo esta uma referencia das funcoes mais comumente usadas.

Funcoes Matematicas

FuncaoDescricaoExemplo
ABS(number)Valor absolutoABS({Balance})
CEIL(number)Arredondar para cima para o inteiro mais proximoCEIL({Score} / 10)
FLOOR(number)Arredondar para baixo para o inteiro mais proximoFLOOR({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, ...)Media aritmeticaAVERAGE({Test1}, {Test2})
MOD(number, divisor)Resto da divisaoMOD({Row Number}, 2)
POWER(base, exponent)Elevar a uma potenciaPOWER({Side}, 2)
SQRT(number)Raiz quadradaSQRT({Area})

Funcoes de Texto

FuncaoDescricaoExemplo
CONCAT(a, b, ...)Juntar valores de textoCONCAT({First Name}, " ", {Last Name})
LEFT(text, count)Extrair do inicioLEFT({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 minusculasLOWER({Email})
UPPER(text)Converter para maiusculasUPPER({Code})
TRIM(text)Remover espacos iniciais/finaisTRIM({Input})
REPLACE(text, old, new)Substituir ocorrenciasREPLACE({URL}, "http", "https")
SEARCH(find, text)Encontrar posicao de substringSEARCH("@", {Email})

Funcoes de Data

O motor de formulas integra-se com uma extensa biblioteca de datas, dando acesso a poderosas funcoes de manipulacao e comparacao de datas.

FuncaoDescricaoExemplo
TODAY()Data atualTODAY()
NOW()Data e hora atuaisNOW()
YEAR(date)Extrair anoYEAR({Created})
MONTH(date)Extrair mes (1-12)MONTH({Due Date})
DAY(date)Extrair dia do mesDAY({Birthday})
WEEKDAY(date)Dia da semana (0-6)WEEKDAY({Start Date})
WEEKNUM(date)Numero 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)Diferenca entre datasDATEDIFF({Start}, {End}, "days")
IS_BEFORE(date1, date2)Verificar se date1 e antes de date2IS_BEFORE({Due Date}, TODAY())
IS_AFTER(date1, date2)Verificar se date1 e depois de date2IS_AFTER({Due Date}, TODAY())
IS_SAME_DAY(date1, date2)Verificar se e o mesmo diaIS_SAME_DAY({Created}, TODAY())
IS_TODAY(date)Verificar se a data e 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 mesSTART_OF_MONTH({Date})
END_OF_MONTH(date)Ultimo dia do mesEND_OF_MONTH({Date})
START_OF_WEEK(date)Primeiro dia da semanaSTART_OF_WEEK({Date})
END_OF_WEEK(date)Ultimo dia da semanaEND_OF_WEEK({Date})
ADD_BUSINESS_DAYS(date, days)Adicionar apenas dias uteisADD_BUSINESS_DAYS({Start}, 5)
DIFF_BUSINESS_DAYS(d1, d2)Dias uteis entre datasDIFF_BUSINESS_DAYS({Start}, {End})

Funcoes Logicas

FuncaoDescricaoExemplo
IF(condition, then, else)Valor condicionalIF({Amount} > 1000, "Alto", "Baixo")
SWITCH(expr, val1, result1, ...)Comparar contra multiplos valoresSWITCH({Priority}, "P0", "Critico", "P1", "Alto", "Normal")
AND(a, b, ...)Verdadeiro se todas as condicoes forem verdadeirasAND({Complete}, {Approved})
OR(a, b, ...)Verdadeiro se qualquer condicao for verdadeiraOR({Urgent}, {Overdue})
NOT(value)Inverter um booleanoNOT({Archived})
ISBLANK(value)Verificar se esta vazioISBLANK({Notes})

Exemplos Comuns de Formulas

Concatenando Nomes

CONCAT({First Name}, " ", {Last Name})

Combina colunas de nome e sobrenome com um espaco entre elas.

Calculando Dias Ate o Vencimento

DATEDIFF(TODAY(), {Due Date}, "days")

Retorna o numero de dias restantes ate a data de vencimento. Valores negativos indicam itens atrasados.

Rotulos 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 ate 3 dias, e "No Prazo" para o restante.

Calculo de Porcentagem

ROUND({Completed Tasks} / {Total Tasks} * 100, 1)

Calcula a porcentagem de conclusao arredondada para uma casa decimal.

Dias Uteis Restantes

DIFF_BUSINESS_DAYS(TODAY(), {Deadline})

Calcula o numero de dias uteis (excluindo fins de semana) entre hoje e um prazo.

Tratamento de Erros

Quando uma formula contem erros, a Copera exibe um indicador de erro na celula em vez de um valor. Erros comuns incluem:

  • Erros de sintaxe -- Parenteses nao correspondentes, operadores ausentes ou nomes de funcoes nao reconhecidos.
  • Incompatibilidade de tipos -- Tentar realizar aritmetica em valores de texto ou operacoes de data em numeros.
  • Referencias nulas -- Referenciar uma coluna que nao tem valor na linha atual. Use ISBLANK() para tratar campos opcionais de forma elegante.
  • Divisao por zero -- Dividir por uma coluna que contem zero. Envolva com um IF para verificar: IF({Total} = 0, 0, {Part} / {Total}).

O editor de formulas mostra uma pre-visualizacao ao vivo do resultado conforme voce digita, facilitando a deteccao e correcao de erros antes de salvar.

Criacao de Formulas com Assistencia de IA

Se voce nao tem certeza de como escrever uma formula, a Copera oferece um assistente de formulas alimentado por IA. Descreva o que voce deseja calcular em linguagem natural, e o assistente gerara uma formula para voce. Voce pode revisar, editar e refinar a sugestao antes de aplica-la a sua coluna.

Proximos Passos

  • Saiba mais sobre Campos Computados para entender os campos Formula, Function e Tracker em profundidade.
  • Configure Automacoes que disparam com base em resultados de formulas.
  • Use Filtros e Ordenacao para filtrar linhas por valores de colunas de formula.