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
| Tipo | Descrição | Exemplo |
|---|---|---|
| SUM | Soma valores de colunas selecionadas | Price + Tax + Shipping |
| SUBTRACT | Subtrai valores de colunas | Budget - Spent |
| MULTIPLY | Multiplica valores de colunas | Quantity × Unit Price |
| DIVIDE | Divide valores de colunas | Total / Count |
| CONCATENATE | Combina texto de colunas com um separador | "FirstName LastName" |
| SUMIF | Soma valores de uma feature com condições | Soma o total das encomendas em que o estado é "paga" |
| COUNTIF | Conta registos de uma feature que cumprem condições | Conta tarefas em que o estado é "concluída" |
| XLOOKUP | Procura um valor noutra feature | Encontra o email de um cliente pelo respetivo ID |
| EXPRESSION | Expressão dinâmica de formato livre | Cálculos complexos com lógica personalizada |
| ARITHMETIC EXPRESSION | Construtor 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,DAYDATEADD(@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
clientIdcorresponde 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ção | Descrição |
|---|---|
| Campos para concatenar | Lista de checkboxes com as colunas da feature atual. Marque as colunas cujo valor deve entrar no texto combinado |
| Ordem dos campos | Depois 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 texto | Texto 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ção | Descrição |
|---|---|
| Renderizar como | Apresenta 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ção | Configuraçã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.