Saltar para o conteúdo principal

Fórmula

Referência de configuração: Fórmula

Visão geral​

O componente Fórmula calcula valores automaticamente com base noutras colunas do mesmo registo ou em dados de outras features. O resultado é só de leitura — os utilizadores não podem editar diretamente os campos de fórmula.

Escrever fórmulas​

Tipos de fórmula​

TipoDescriçãoExemplo
SUMSoma valores de colunas selecionadasPrice + Tax + Shipping
SUBTRACTSubtrai valores de colunasBudget - Spent
MULTIPLYMultiplica valores de colunasQuantity × Unit Price
DIVIDEDivide valores de colunasTotal / Count
CONCATENATECombina texto de colunas com um separador"FirstName LastName"
SUMIFSoma valores de uma feature com condiçõesSoma o total das encomendas em que o estado é "paga"
COUNTIFConta registos de uma feature que cumprem condiçõesConta tarefas em que o estado é "concluída"
XLOOKUPProcura um valor noutra featureEncontra o email de um cliente pelo respetivo ID
EXPRESSIONExpressão dinâmica de formato livreCálculos complexos com lógica personalizada
ARITHMETIC EXPRESSIONConstrutor visual com parênteses e operadores(Price × Quantity) - Discount

Funções disponíveis nas expressões​

Nos tipos EXPRESSION o editor sugere e insere todas as funções reconhecidas pelo motor:

  • Agregação — SUM, MIN, MAX, AVG, SUMIF, COUNTIF, AVERAGEIF, MAXIF, MINIF
  • Condicionais — IF, IFS, AND, OR, NOT
  • Datas — TODAY, NOW, DATEDIFF, DATEADD, EOMONTH, YEAR, MONTH, DAY
    • DATEADD(@data, 30, "day") soma dias, semanas ("week"), meses ("month") ou anos ("year"); n negativo subtrai e o dia encosta ao fim do mês (31/01 + 1 mês = 28/02).
    • EOMONTH(@data, 1) dá o último dia do mês n meses depois (0 ou omitido: o próprio mês).
  • Texto — CONCAT, UPPER, LOWER, LEN, LEFT, RIGHT
  • Matemática — ROUND, CEIL, FLOOR, ABS, SQRT, POWER
  • Pesquisa — XLOOKUP, LASTBEFORE, FIRSTAFTER
  • Zonas: ZONE, ZONES

Fórmulas entre features​

SUMIF, COUNTIF e XLOOKUP podem referenciar dados de outras features:

  • SUMIF — Selecione uma feature de origem, a coluna a somar, e defina condições de filtro (por exemplo, somar todos os valores de fatura em que clientId corresponde ao ID do registo atual).
  • COUNTIF — Igual ao SUMIF, mas conta os registos correspondentes em vez de somar valores.
  • XLOOKUP — Especifique uma feature de origem, uma coluna de pesquisa (para comparar) e uma coluna de retorno (o valor a obter).

Zonas no mapa​

ZONE(@local, "Zonas") devolve o nome da zona onde fica o ponto da coluna @local. O primeiro argumento é uma coluna Localização (também serve uma lista [lat, lng] ou o texto "lat,lng"); o segundo é o nome da tabela das zonas, que tem de ter uma coluna Zona. O nome é o da coluna de título dessa tabela (a primeira coluna de texto, por exemplo «Nome»).

  • Quando o ponto cai em mais de uma zona, ganha a zona criada primeiro.
  • ZONES(@local, "Zonas") devolve os nomes de todas as zonas que contêm o ponto, separados por vírgulas, pela mesma ordem.
  • Quando o ponto não cai em nenhuma zona, ou a localização está vazia, o resultado é texto vazio: um registo que sai de uma zona perde o nome dela.
  • A fronteira conta como dentro da zona.
  • Se a tabela não existir, ou não tiver uma coluna Zona, a célula mostra o erro.

O valor recalcula quando a localização do registo muda e quando uma zona é desenhada, alterada ou apagada. Filtre ou agrupe pela coluna da fórmula como por qualquer texto.

Configuração do tipo CONCATENATE​

DefiniçãoDescrição
Campos para concatenarLista de checkboxes com as colunas da feature atual. Marque as colunas cujo valor deve entrar no texto combinado
Ordem dos camposDepois de selecionar mais do que um campo, reordene-os com as setas para cima/baixo; a ordem da lista é a ordem em que aparecem no resultado
Separador de textoTexto inserido entre cada valor concatenado (por defeito ", ")
Máx.Por campo, o nº máximo de caracteres que esse campo contribui para o resultado. Em branco = sem limite

Quando o valor de um campo excede o "Máx." definido, é cortado nesse limite e recebe … no final.

Este corte aplica-se ao valor calculado/armazenado da fórmula, não é só um efeito de apresentação — a tabela, a pesquisa e a exportação veem o texto já cortado. A coluna de origem não é alterada. Para colunas do tipo Ligação a tabela, o corte aplica-se ao label resolvido, não ao ID interno.

Opções de apresentação​

DefiniçãoDescrição
Renderizar comoApresenta o resultado da fórmula utilizando outro tipo de componente (por exemplo, como badge de Lista ou link de Ligação a tabela)
Configuração do componente de renderizaçãoConfiguração para o componente de apresentação escolhido

Histórico de fórmulas​

O OutDo mantém as últimas 3 configurações de fórmula como histórico, permitindo reverter para uma fórmula anterior, caso necessário.

Em todas as vistas, os campos de fórmula apresentam o resultado calculado como texto só de leitura (ou através do componente de apresentação configurado).

Erros​

Uma fórmula que não consegue calcular guarda o erro em vez de um valor: o campo fica vazio e mostra # a vermelho, com o motivo no tooltip (por exemplo «Divisão por zero» ou «A coluna @preco não existe nesta tabela»). O mesmo acontece nos cartões das listas e nos painéis laterais dos formulários. No formulário, o motivo aparece por extenso e, a quem pode desenhar o workspace, a ligação Editar coluna…. Quando a causa se corrige (o dado muda ou a fórmula é editada), o valor volta no recálculo seguinte. Se a fórmula não produzir resultado nenhum, o campo mantém o valor anterior.

Uma fórmula que lê outra fórmula da mesma linha com erro não calcula: fica com o erro «A fórmula depende de «coluna», que tem um erro», em vez de contar o valor em falta como 0.

O Texto quando sem valor aplica-se apenas a células vazias, nunca a um erro. Uma coluna vazia conta como 0 numa conta.

O Construtor verifica a fórmula antes de guardar: funções desconhecidas, número de argumentos errado, parênteses ou aspas por fechar, colunas e tabelas que não existem e ciclos entre fórmulas impedem o Guardar (o primeiro problema que bloqueia é o que o botão indica). Todos os problemas aparecem num aviso dentro do cartão Cálculo, a vermelho quando algum bloqueia e a amarelo caso contrário; as referências a colunas ou tabelas que já não existem ficam a vermelho em Depende de. Se uma coluna usada for apagada depois, as células mostram o aviso da configuração até a fórmula ser corrigida.

Os erros são metadados do sistema (__errors): não aparecem na API, nas exportações nem na IA. Os zeros que fórmulas com erro tenham gravado antes desta versão só são corrigidos no próximo recálculo da linha ou em Recalcular.