Índice
Uma das características mais poderosas do SeaTable é a coluna de fórmulas . Com fórmulas pode contar os valores de outras colunas da tabela atual – ou mesmo de outra tabela ligada –, utilizá-los para cálculos, convertê-los, avaliá-los, combiná-los entre si e compará-los. Além disso, as fórmulas podem devolver constantes e valores lógicos.
Pode adicionar tantas colunas de fórmula quantas quiser, que por sua vez continuam a calcular com os resultados das colunas de fórmula existentes. A grande vantagem: os resultados nas colunas de fórmula são atualizados automaticamente assim que os valores nas colunas envolvidas são alterados.
Atualmente, o SeaTable oferece as seguintes funções se selecionar o tipo de coluna Fórmula:
- Linhas
- Constantes
- Operandos
- Funções matemáticas
- Funções de texto
- Funções de data
- Funções lógicas
- Funções estatísticas
- Funções de ligação
Para além das funções, existem uma ou mais listas de colunas no editor de fórmulas. Estas são as colunas selecionáveis da tabela atual e, se aplicável, as colunas das tabelas ligadas. Se clicar no símbolo “+” à direita, a referência da coluna é inserida no campo de entrada, no formato {ColumnName} ou {LinkColumn.ColumnName}. Pode utilizar estes elementos diretamente na sua fórmula. Em alternativa, pode também introduzir manualmente nomes de colunas entre chavetas.
Neste artigo mostramos-lhe uma visão completa de todas as fórmulas da SeaTable com exemplos adequados. Se procura uma função específica, pode usar a combinação de teclas Ctrl +F para encontrar rapidamente uma entrada nesta página.
A colecção de fórmulas SeaTable com exemplos
Linhas
| Operador | Descrição | Exemplo |
|---|---|---|
| rowID() | Devolve o número de identificação único da linha atual como string. | X18XAJeTSWeaO5hlqyUp1w |
Constantes
| Operador | Descrição | Exemplos |
|---|---|---|
| e | Devolve o número Euler e=2.71828…. regressa. | e+1
= 3.71828183 |
| pi | Devolve o número do círculo Pi. | pi
= 3.14159265 |
| true() | Devolve o valor lógico ’true'. | true()
= true |
| false() | Devolve o valor lógico ‘false’. | false()
= false |
Operandos
| Operador | Descrição | Exemplos |
|---|---|---|
| add(num1, num2) | Acrescenta dois valores numéricos (num1 e num2) e devolve o resultado. | add(1, 2)
= 3 |
| Alternativa: + | 1+2
= 3 |
|
| subtract(num1, num2) | Subtrai um valor numérico (num2) de outro (num1). | subtract(5, 4)
= 1 |
| Alternativa: - | 5-4
= 1 |
|
| multiply(num1, num2) | Multiplica dois valores numéricos. | multiply(3, 4)
= 12 |
| Alternativa: * | 3*4
= 12 |
|
| divide(num1, num2) | Divide-se um valor numérico (num1) por outro (num2). | divide(5, 2)
= 2.5 |
| Alternativa: / | 3/2
= 1.5 |
|
| mod(num1, num2) | Calcula o resto de uma divisão. | mod(10, 7)
= 3 |
| Alternativa: % | 15%7
= 1 |
|
| power(num1, num2) | Calcula a potência (num2) de um número (num1). | power(3, 2)
= 9 |
| Alternativa: ^ | 3^2
= 9 |
|
| greater(num1, num2) | Verifica se um valor numérico (num1) é superior a outro (num2) e retorna o valor lógico ‘verdadeiro’ ou ‘falso’. | greater(2, 3)
= false |
| Alternativa: > | 2>3
= false |
|
| lessthan(num1, num2) | Verifica se um valor numérico (num1) é menor que outro (num2) e retorna o valor lógico ‘verdadeiro’ ou ‘falso’. | lessthan(2, 3)
= true |
| Alternativ: < | 2<3
= true |
|
| greatereq(num1, num2) | Verifica se um valor numérico (num1) é maior ou igual a outro (num2) e retorna o valor lógico ‘verdadeiro’ ou ‘falso’. | greatereq(2, 3)
= false |
| Alternativa: >= | 2>=3
= false |
|
| lessthaneq(num1, num2) | Verifica se um valor numérico (num1) é inferior ou igual a outro (num2) e retorna o valor lógico ‘verdadeiro’ ou ‘falso’. | lessthaneq(2, 3)
= true |
| Alternativ: <= | 2<=3
= true |
|
| equal(number1, number2) | Verifica se dois valores (number1, number 2) são iguais e devolve o valor lógico ‘verdadeiro’ ou ‘falso’. | equal({Old price}, {New price})
= false |
| Alternativa: = = | {Old price}={New price}
= false |
|
| unequal(number1, number2) | Verifica se dois valores (number1, number2) são desiguais e devolve o valor lógico ‘verdadeiro’ ou ‘falso’ em cada caso. | unequal({Old price}, {New price})
= true |
| Alternativa: <» | {Old price}<>{New price}
= true |
|
| concatenate(string1, string2, …) | Concatena várias cordas (string1, string 2, …) numa só corda. | concatenate({Supplier}, " is ", {Status})
= Linux is great |
| Alternativa: & | {Supplier} & " is " & {Status}
= Linux is great |
Funções matemáticas
| Operador | Descrição | Exemplo de entrada | Resultado |
|---|---|---|---|
| abs(number) | Devolve o valor absoluto de um número. | abs(-2) | 2 |
| ceiling(number, significance) | Arredonda um número para o número inteiro ou para o múltiplo mais próximo do passo especificado (significance). Se qualquer dos argumentos for não-numérico, a fórmula devolve um valor vazio. | ceiling(2.14) | 3 |
| Se o número for um múltiplo exacto do significado, então não há lugar a arredondamentos. Se o número e o significado forem negativos, então o arredondamento está longe de 0. Se o número for negativo e o significado for positivo, então o arredondamento está perto de 0. | ceiling(-2.14, 4) | 0 | |
| even(number) | Atribui o número par maior mais próximo a um número real (number). | even(2.14) | 4 |
| exp(number) | Função exponencial para o número de Euler e. Devolve o valor de e elevado à potência de um determinado número. | exp(1) | 2.71828… |
| floor(number, significance) | Arredonda um número para o número inteiro ou para o múltiplo mais próximo do passo especificado (significance). Se qualquer dos argumentos for não-numérico, a fórmula devolve um valor vazio. | floor(2.86) | 2 |
| Se o número for um múltiplo exacto do significado, não há arredondamento. Se o sinal do número for positivo, o arredondamento é para 0. Se o sinal do número for negativo, o arredondamento é para longe de 0. | floor(-3.14, 5) | -5 | |
| int(number) | Atribui o número inteiro menor mais próximo a um número real (number). | int(-3.14) | -4 |
| lg(number) | Função logarítmica (number) com 10 como base. | lg(100) | 2 |
| ln(number) | Função logarítmica (number) com o número e de Euler como base. | ln(e) | 1 |
| log(number, base) | Função logarítmica (number) com base definível. | log(81, 3) | 4 |
| No entanto, se não for dada nenhuma base, esta função funciona exactamente como lg(), ou seja, com 10 como base. | log(1000) | 3 | |
| odd(number) | Atribui o número ímpar maior mais próximo a um número real (number). | odd(-2.14) | -1 |
| round(number, digits) | Arredonda um número para um número especificado de casas decimais (digits). Se não for especificada uma casa decimal (digits), o número é arredondado para a primeira casa decimal à esquerda do ponto decimal. | round(3.14) | 3 |
| Se for dada uma casa decimal positiva (digits), arredondar para o dígito à direita do ponto decimal. | round(3.14, 1) | 3.1 | |
| Se for dada uma casa decimal negativa (digits), é arredondado para a esquerda da vírgula decimal. | round(3.14, -3) | 0 | |
| round(99.1, -2) | 100 | ||
| rounddown(number, digits) | Arredondar um número na direcção de zero. Se não for indicada uma casa decimal (digits), o número é arredondado para a 1ª casa decimal à esquerda da vírgula. | rounddown(3.12, 1) | 3.1 |
| rounddown(-3.15) | -3 | ||
| roundup(number, digits) | Arredonda um número a partir do zero. Se não for indicada uma casa decimal (digits), o número é arredondado para o 1º dígito à esquerda do ponto decimal. | roundup(3.12, 1) | 3.2 |
| roundup(-3.15) | -4 | ||
| sign(number) | Verifica se um número é maior, igual ou menor do que 0. Devolve os valores 1, 0 e -1 respectivamente. Por outras palavras, devolve o sinal de um número, respectivamente para ‘+’, ‘zero’ e ‘-’ com 1, 0, e -1. | sign(-2) | -1 |
| sqrt(number) | Devolve a raiz quadrada de um número. | sqrt(81) | 9 |
| sum(num1, num2, …) | Devolve a soma dos números (num1, num2, …). | sum(7,8,9) | 24 |
Funções de texto
| Operador | Descrição | Exemplo de entrada | Resultado |
|---|---|---|---|
| concatenate(text1, text2, text3) | Concatena várias cadeias de caracteres (text1, text2, text3, …) numa única cadeia. | concatenate(“Sea”, “Table”, " “, “Cloud”) | SeaTable Cloud |
| Alternativa: text1 & text2 & text3 | “Sea” & “Table” & " " & “Cloud” | SeaTable Cloud | |
| exact(string1, string2) | Verifica se duas cordas (string1, string2) são exactamente idênticas. Devolve os valores ‘verdadeiro’ ou ‘falso’. A caixa superior/baixa é tida em conta. | exact(‘SeaTable’, ‘Seatable’) | false |
| find(findString, sourceString, startPosition) | Retorna a posição inicial de uma corda (findString) dentro de outra corda (sourceString). A sensibilidade ao caso é respeitada. Sem um achado, 0 é devolvido. Se a posição inicial (startPosition) for dada como decimal, é arredondada para baixo. Se a célula na coluna de palavras-chave (findString) ainda estiver vazia, 1 é devolvido. Se a célula na coluna para a cadeia de destino (sourceString) ainda estiver vazia, é devolvido um valor vazio (’’). | find(‘Sea’, ‘seaTable’, 1) | 0 |
| A pesquisa começará a partir da ‘startPosition’ dada. No entanto, esta “posição inicial” não tem qualquer influência no resultado: depois devolve sempre a posição inicial absoluta. Se a ‘startPosition’ da corda a ser encontrada (findString) foi dada após a posição inicial real da corda (sourceString), 0 é devolvido, porque nada foi encontrado a partir desta posição. | find(’table’, ‘big table’, 4) | 5 | |
| find(’table’, ‘big table’, 6) | 0 | ||
| left(string, count) | Devolve o número especificado (count) de caracteres no início de uma cadeia. | left(‘SeaTable’, 3) | Sea |
| len(string) | Retorna o número de caracteres de uma corda. | len(‘SeaTable’) | 8 |
| lower(string) | Converte um fio em letras minúsculas. | lower(‘DeutscH’) | deutsch |
| mid(string, startPosition, count) | Retorna o número especificado (count) de caracteres da posição inicial especificada (startPosition) a partir de uma cadeia. | mid(‘SeaTable is the best’, 1, 8) | SeaTable |
| A posição inicial (startPosition) e o número (count) não devem ser vazios, negativos ou iguais a zero. No entanto, se a posição inicial e a contagem forem dadas como decimais, elas são arredondadas para baixo. Um número dado em demasia (count) será ignorado. | mid(‘SeaTable is the best.’, 10.9, 27.3) | is the best. | |
| replace(sourceString, startPosition, count, newString) | Substitui uma parte (count) de uma corda (sourceString) de uma determinada posição inicial (startPosition) por outra corda (newString). O número (count) de caracteres só é tido em conta para a corda antiga (sourceString), mas não para a nova corda (newString). | replace(‘SeaTable is the best.’, 1, 8, ‘Seafile’) | Seafile is the best. |
| Se a contagem for dada como zero, a nova cadeia é simplesmente adicionada a partir da posição inicial na cadeia antiga. | replace(‘SeaTable is the best.’, 1, 0, ‘Seafile’) | SeafileSeaTable is the best. | |
| rept(string, number) | Repete um fio tantas vezes (number) quantas as especificadas. | rept(‘Sea ‘, 3) | Sea Sea Sea |
| right(string, count) | Devolve o número especificado (count) de caracteres no fim de uma cadeia. | right(‘SeaTable’, 5) | Table |
| search(findString, sourceString, startPosition) | Retorna a posição inicial de uma corda (findString) dentro de outra corda (sourceString). O caso não é tido em conta. Sem um achado, 0 é devolvido. Se a posição inicial (startPosition) for dada como decimal, é arredondada para baixo. Se a célula na coluna de palavras-chave (findString) ainda estiver vazia, 1 é devolvido. Se a célula na coluna para a cadeia de destino (sourceString) ainda estiver vazia, é devolvido um valor vazio (’’). | search(‘Sea’, ‘seaTable’, 1) | 1 |
| A pesquisa começará a partir da ‘startPosition’ dada. No entanto, esta “posição inicial” não tem qualquer influência no resultado: depois devolve sempre a posição inicial absoluta. Se a ‘startPosition’ da corda a ser encontrada (findString) foi dada após a posição inicial real da corda (sourceString), 0 é devolvido, porque nada foi encontrado a partir desta posição. | search(’table’, ‘big table’, 4) | 5 | |
| search(’table’, ‘big table’, 6) | 0 | ||
| substitute(sourceString, oldString, newString, index) | Substitui texto existente (oldString) por novo texto (newString) numa cadeia (sourceString). Se houver mais do que um texto (oldString) na cadeia (sourceString), apenas o ‘índice’ -ésimo texto é substituído. A sensibilidade ao caso é respeitada. | substitute(‘SeaTableTable’, ‘Table’, ‘file’, 1) | SeafileTable |
| Se o índice for dado como 0 ou não, todas as partes de texto encontradas (oldString) são substituídas pelo novo texto (newString). | substitute(‘SeaTableTable’, ‘Table’, ‘file’) | Seafilefile | |
| T(value) | Verifica se um valor é texto. Em caso afirmativo, o texto é devolvido. Se não, o valor de retorno está vazio. | T(123) | (em branco) |
| T(‘123’) | 123 | ||
| text(number, format) | Converte um número em texto e formata-o no formato especificado. O formato pode ser percentagem (‘percent’) e número, dólar (‘dollar’), euro (’euro’) e yuan (‘yuan’). | text(150, ’euro’) | €150 |
| Quando um número é directamente convertido para uma percentagem, o seu valor absoluto é retido. Ou seja, 50 é convertido em 5000%. Contudo, se quiser 50%, deve dividir o número por 100 antes da conversão. | text(50, ‘percent’) | 5000% | |
| text(50/100, ‘percent’) | 50% | ||
| trim(string) | Remove espaços no início e no fim de um cordel. | trim(’ SeaTable ‘) | SeaTable |
| upper(string) | Converte um fio em letras maiúsculas. | upper(‘DeutscH’) | DEUTSCH |
| value(string) | Converte um texto (string) que representa um número em número. | value(‘123’) | 123 |
Funções de data
| Operador | Descrição | Exemplo de entrada | Resultado |
|---|---|---|---|
| date(year, month, day) | Retorna uma data em formato internacional (ISO) a partir do ano, mês e dia introduzidos. Se o ano for introduzido com dois dígitos, é automaticamente entendido como um ano nos anos 1900s. Se o número do mês ou do dia for demasiado grande (superior a 12 ou 31 respectivamente), estes meses ou dias são automaticamente convertidos para o ano ou mês seguinte. | date(2021, 1, 3) | 2021-01-03 |
| + | Acrescenta dias ou duração a uma data com ou sem minutos. Se a coluna de datas não tiver minutos, 00:00 desse dia é considerado como o valor por defeito. | date(2021, 1, 31)+1 | 2021-02-01 |
| Por exemplo, se for introduzida uma duração de 8 horas e 20 minutos na coluna {duração} tem: | date(2021, 1, 31)+{duração} | 2021-01-31 08:20 | |
| - | Subtrai dias ou duração a partir de uma data com ou sem minutos. Se a coluna de datas não tiver minutos, 00:00 é considerado como o valor por defeito a partir desse dia. | date(2021, 1, 31) - 30 | 2021-01-01 |
| Por exemplo, se for introduzida uma duração de 8 horas e 20 minutos na coluna {duração} tem: | date(2021, 1, 31)-{duração} | 2021-01-30 15:40 | |
| Com {Data1}-{Data2} devolve a diferença horária em dias. | date(2021, 1, 31)-date(2020, 12, 23) | 39 | |
| dateAdd(date, count, unit) | Adiciona o número especificado (count) de anos (‘years’), meses (‘months’), semanas (‘weeks’), dias (‘days’), horas (‘hours’), minutos (‘minutes’) ou segundos (‘seconds’) a uma data/hora (date). | dateAdd(‘2020-02-03’, 2, ‘days’) | 2020-02-05 |
| Dica: se quiser adicionar uma duração complexa (count) como 1 dia 12 horas, pode convertê-la em, por exemplo, 24+12=36 horas e introduzi-la como duração única (count) na fórmula. Converter a duração para a unidade mais pequena: neste caso, horas. | dateAdd(‘2020-09-04 13:05:18’, 36, ‘hours’) OU dateAdd({form submission}, 36, ‘hours’) | 2020-09-06 01:05:18 | |
| dateDif(startDate, endDate, unit) | Calcula os segundos, dias, meses ou anos entre dois valores de data. O argumento da unidade opcional pode ser um dos seguintes: S (segundos), D (dias completos), M (meses completos), Y (anos completos), YD (dias completos, ignorando anos), YM (meses completos, ignorando dias e anos), MD (dias completos, ignorando meses e anos). | dateDif(‘2018-01-01’, ‘2020-01-01’, ‘Y’) | 2 |
| O argumento da unidade opcional pode ser um dos seguintes: S (segundos), D (dias completos), M (meses completos), Y (anos completos), YD (dias completos, sem ter em conta os anos), YM (meses completos, sem ter em conta os dias e anos), MD (dias completos, sem ter em conta os meses e anos). | dateDif(‘2019-10-11’, ‘2020-12-12’, ‘M’) | 14 | |
| datetimeFormat(date, format) | Converte o valor de uma coluna de data numa string. Os marcadores de posição (format) permitem apresentar o mês, o dia, a hora, o minuto e o segundo no formato pretendido. | datetimeFormat(“2020-01-01”, “MM/DD/YYYY”) | 01/01/2020 |
| Dica: se inserir o marcador de posição MMMM, o nome completo do mês é apresentado por extenso. | datetimeFormat({Birthday}, “D MMMM YYYY”) | 6 November 1972 | |
| day(date) | Devolve o dia de uma data como um número. O número devolvido situa-se entre 1 e 31. | day(‘2020-01-03’) | 3 |
| days(startDate, endDate) | Devolve o número de dias entre dois valores de data (startDate e endDate). | days(‘2020-01-01’, ‘2020-02-03’) | 33 |
| eomonth(startDate, months) | Determina a data do último dia do mês que é o número especificado (months) de meses após a data especificada (startDate). Se o número (months) for dado como 0, o último dia do mês é simplesmente determinado. | eomonth(‘2020-01-01’, 1) | 2020-02-29 |
| Se o número (months) for dado como negativo, é determinada a data do último dia do mês que contém o número absoluto (months) de meses antes da data especificada (startDate). | eomonth(‘2020-01-01’, -1) | 2019-12-31 | |
| hour(date) | Retorna a hora de uma hora (date) como um número. O número devolvido situa-se entre 0 e 23. | hour(‘2020-02-14 13:14:52’) | 13 |
| Se não houver hora na hora (date), 0 é devolvido. | hour(‘2020-02-14’) | 0 | |
| hours(startDate, endDate) | Retorna o número de horas entre dois valores de data (startDate e endDate). As actas nos valores das datas não são tidas em conta. | hours(‘2020-02-14 13:14’, ‘2020-02-14 15:14’) | 2 |
| Se não forem incluídas horas na especificação da hora (startDate ou endDate), assume-se automaticamente as 0 horas desse dia. | hours(‘2020-02-14’, ‘2020-02-14 15:14’) | 15 | |
| minute(date) | Retorna a acta de uma hora (date) como um número. O número devolvido situa-se entre 0 e 59. | minute(‘2020-02-14 13:14:52’) | 14 |
| Se não houver minutos na hora (date), 0 é devolvido. | minute(‘2020-02-14’) | 0 | |
| month(date) | Devolve o mês de uma data como um número. O número devolvido situa-se entre 1 (Janeiro) e 12 (Dezembro). | month(‘2020-02-14 13:14:52’) | 2 |
| months(startDate, endDate) | Devolve o número de meses entre dois valores de data (startDate e endDate). Os dias e a hora nos valores de data não são tidos em conta. | months(‘2020-02-01 13:14’, ‘2020-03-31 15:54’) | 1 |
| Se não for indicado um mês nos valores de data (startDate, endDate), Janeiro é automaticamente assumido como o mês. | months(‘2020’, ‘2021’) | 12 | |
| networkdays(startDate, endDate, holiday1, holiday2, …) | Devolve o número de dias úteis completos entre dois valores de data (startDate e endDate). Também se podem definir outros feriados para além de sábado e domingo (holiday1, holiday2, etc.), estes também serão deduzidos. Se não forem incluídos feriados no cálculo, estes parâmetros podem simplesmente ser omitidos. | networkdays(‘2020-01-01’, ‘2020-01-07’,‘2020-01-01’) | 4 |
| Note-se que o último dia especificado (endDate) também é contado na fórmula. Ou seja, como por exemplo nesta fórmula, são contados três dias úteis: 7, 8 e 9 de Setembro de 2020. | networkdays(‘2020-09-07’, ‘2020-09-09’) | 3 | |
| now() | Devolve a data e hora actuais. Esta coluna só é actualizada automaticamente quando a base tiver sido recarregada. | now() | 2020-09-07 12:59 |
| second(date) | Retorna os segundos de uma hora (date) como um número. O número devolvido situa-se entre 0 e 59. | second(‘2020-02-14 13:14:52’) | 52 |
| today() | Devolve a data actual. Esta coluna só é actualizada automaticamente quando a base tiver sido recarregada. | today() | 2020-09-07 |
| Esta função é conveniente para calcular a duração do tempo entre uma determinada data & hora e agora. Em cada recarga ou recálculo da base, o cálculo é actualizado. | networkdays(‘2020-09-01’, today()) | 4 | |
| weekday(date, weekStart) | Devolve o dia da semana de uma data como um número. O número devolvido é entre 1 e 7. Pode definir o primeiro dia da semana (weekStart): Segunda-feira (‘Monday’) ou domingo (‘Sunday’ ou deixar de fora, porque o início como domingo é por defeito). Uma terceira opção não é possível. A caixa superior/inferior não é tida em conta. | weekday(‘2020-01-01’, ‘Monday’) | 3 |
| Se não for dada uma ‘weekStart’ ou se for dada uma ‘weekStart’ que não seja ‘segunda-feira’ ou ‘domingo’, assume-se sempre que é ‘domingo’. Portanto, se deve ser “segunda-feira”, introduzir “segunda-feira”; se deve ser “domingo”, pode omitir este parâmetro. | weekday(‘2020-01-01’, ‘Thursday’) OU weekday(‘2020-01-01’) | 4 | |
| weeknum(date, return_type) | Retorna o número absoluto da semana de uma data como um número. O número devolvido é entre 1 e 53. Aqui pode definir o primeiro dia da semana (return_type). Introduzir o número 1 ou 2, ou 11 a 17, e 21 como “return_type” para definir o início de uma semana: 1/Sunday、2/Monday、11/Monday、12/Tuesday、13/Wednesday、14/Thursday、15/Friday、16/Saturday、17/Sunday. Se o número da semana deve ser devolvido de acordo com a norma ISO, especificar o número 21 como “return_type”, ou utilizar a função isoweeknum. | weeknum(‘2020-01-12’, 11) | 2 |
| Se não for dado ‘return_type’, assume-se sempre que é ‘domingo’. | weeknum(‘2020-01-12’) | 3 | |
| isoweeknum(date) | Devolve o número de semana ISO (KW) de uma data como um número. | isoweeknum(‘2021-01-04’) | 1 |
| Diferente da função weeknum(): com a função isoweeknum() também se obtém por vezes um número de semana que ainda se encontra no ano anterior. Neste exemplo: 1 de Janeiro de 2021 pertence à 53ª semana de calendário de 2020, de acordo com a norma ISO. | isoweeknum(‘2021-01-01’) | 53 | |
| year(date) | Devolve o ano de uma data como um número. | year(‘2020-01-01’) | 2020 |
Funções lógicas
| Operador | Descrição | Exemplo de entrada | Resultado |
|---|---|---|---|
| and(logical1, logical2, …) | Verifica se todos os argumentos (logical1, logical2, …) são verdadeiros (válidos, não vazios e não nulos). Se assim for, ‘verdadeiro’ é devolvido, caso contrário ‘falso’. | and(1, ‘’, 2) | false |
| if(logical, value1, value2) | Verifica se um argumento (logical) é verdadeiro e se sim, retorna o primeiro valor (value1) e se não, retorna o segundo valor (value2). Atenção: os dois valores (value1 e value2) devem ser do mesmo tipo, por exemplo, ambos devem ser string, ou número. Caso contrário, o primeiro resultado definirá o tipo de coluna e onde deve acrescentar o segundo valor, será preenchido um valor vazio. | if(1>2, 3, 4) | 4 |
| Para condição (logical), só é permitida uma comparação com. Se introduzir apenas a condição (logical) e o primeiro valor (value1): devolverá o primeiro valor (value1) se a condição (logical) for verdadeira; e devolverá um valor vazio (’’) se a condição (logical) for falsa. | if({Orçamento}>{Preço}, ‘Sim’) | Sim | |
| ifs(logical1, value1, logical2, value2, …) | Verifica se uma ou mais condições (logical1, logical2, …) são verdadeiras e retorna um valor (value1, value2, …) que corresponde à primeira condição VERDADEIRA. Tente especificar todos os valores devolvidos (value1, value2) no mesmo tipo (tudo «string» ou tudo «number»), como, por exemplo, em ifs({Área}=0,“mini”,{Área}<=100,” small“,{Area}1000,”large“), o resultado será sempre ‘string’, ou no exemplo à direita, o resultado será sempre ”number". No entanto, se tiver especificado números como string, a função ifs também funcionará, mas, nesse caso, a soma não será calculada automaticamente para essa coluna, pois será considerada como string. | ifs( 1>2, 3, 5>4, 9) | 9 |
| isempty(“columnname”) | Verifica se uma célula da coluna indicada está vazia. Se estiver vazia, é devolvido ’true’; se não estiver vazia, ‘false’. | isempty(“Calendar Event ID”) | true |
| iserror(value) | Verifica se o argumento é um valor de erro. Se sim, devolve ’true’; se não, ‘false’. | iserror("#VALUE!") | true |
| not(boolean) | Inverte o valor lógico (boolean). Por outras palavras: converte ‘verdadeiro’ em ‘falso’ e ‘falso’ em ‘verdadeiro’. | not(and(1, ‘’, 2)) | true |
| or(logical1, logical2, …) | Verifica se pelo menos 1 dos argumentos (value1, value2, …) é verdadeiro (válido, não vazio e não zero) e retorna “verdadeiro” neste caso. Se todos os argumentos forem falsos, então devolve ‘falsos’. | or(1, ‘’, 2) | true |
| switch(logical, matcher1, value1, matcher2, value2, …, default) | Avalia uma expressão (logical) em relação a uma lista de valores (matcher) e retorna o resultado (value) que corresponde ao primeiro valor de fósforo. Se não houver correspondência, então é devolvido um valor por defeito opcional. Devem ser especificados pelo menos 3 parâmetros (lógico, de concordância, de valor). | switch(weekday(“2000-01-01”), 1, “Sunday”, 2, “Monday”, 3, “Tuesday”, 4, “Wednesday”, 5, “Thursday”, 6, “Friday”, 7, “Saturday”, “no match”) | Saturday |
| Se houver vários valores idênticos na lista de valores (matcher), apenas a primeira correspondência é tida em conta. | switch(int(68/10), 6, ‘OK’, 6, ‘KO’) | OK | |
| xor(logical1, logical2, …) | Retorna a contravalência de todos os argumentos. Por outras palavras: Verifica se o número de argumentos verdadeiros (logical) é estranho e retorna o valor “verdadeiro”. | xor(1, 0, 2<1, 1) | false |
Funções estatísticas
| Operador | Descrição | Exemplos |
|---|---|---|
| average(number1, number2, …) | Devolve a média dos números (number1, number2, …). | average(1, 2, 3, 4, 5)
= 3 |
| count(number1, number2, …) | Devolve o número de números (number1, number2, …). Só são considerados números válidos e não vazios. Neste exemplo, ’’ é um valor vazio, e ‘3’ não é um número mas um texto. | count(1, '', 2, '3')
= 2 |
| counta(textORnumber1, textORnumber2, …) | Conta o número de células não vazias (textORnumber1, textORnumber2, …). Estas células podem ser texto ou número. Neste exemplo, 1 e 2 são números, ‘3’ é um texto, e ’’ é um valor vazio. | counta(1, '', 2, '3')
= 3 |
| countall(textORnumber1, textORnumber2, …) | Conta o número de elementos (textORnumber1, textORnumber2, …) incluindo números (1, 2), texto (‘3’) e células vazias (’’’). | countall(1, '', 2, '3')
= 4 |
| countblank(textORnumber1, textORnumber2, …) | Conta o número de células vazias. | countall(1, '', 2, '3')
= 1 |
| countItems(“column-name”) | Conta o número de artigos de uma célula. Os tipos de coluna suportados são selecção múltipla, empregado, ficheiro e imagem. | countItems("members")
= 6 |
| max(number1, number2, …) | Devolve o maior valor dos números especificados (number1, number2, …). | max(-1, 3, 4, 2, -1)
= 4 |
| min(number1, number2, …) | Devolve o menor valor dos números especificados (number1, number2, …). | min(-1, 3, 4, 2, -1)
= -1 |
| large(num1, num2, …, k) | Devolve o valor k-mais alto da lista de números (num1, num2, …). Neste exemplo: large(35, 92, 10, 2) devolve os 2 maiores valores de (35, 92, 10), que são 35. | large(35, 92, 10, 2)
= 35 |
| small(num1, num2, …, k) | Retorna o valor k-pequeno da lista de números (num1, num2, …). Neste exemplo: small(9, 2, -7, -3, 3) devolve o 3 menor valor de (9, 2, -7, -3), que é 2. | small(9, 2, -7, -3, 3)
= 2 |
Funções de ligação
Pode utilizar aqui as funções de ligação como fórmula ou configurá-las diretamente com a coluna Fórmula para ligações.
| Operador | Descrição | Exemplos |
|---|---|---|
| countlinks(“Column”, [condition]) | Conta as entradas ligadas na coluna de ligação dada (Column). As entradas podem ser filtradas com a condição de parâmetro opcional([condition]). No exemplo: Na tabela actual existe uma coluna de ligação “Speakers”. Numa das suas células há várias entradas ligadas. Agora queremos contar quantos links existem em cada célula onde o “Price” na entrada ligada é superior a 500. | countlinks("Speakers", "{Price}>500")
= 3 (O número de registos ligados à coluna “Speakers” em que “Price” é superior a 500). |
| rollup(“Column”, “Other column”, summary, [condition]) | Retorna um valor avaliado de entradas ligadas em outras tabelas. Ao ligar a partir da coluna “Column”, as entradas na coluna “Other column” da tabela ligada são avaliadas. Os métodos sumários (“summary”) que podem ser executados são ‘average’, ‘concatenate’, ‘count’, ‘max’, ‘min’ e ‘sum’. Opcionalmente, podem ser aplicadas condições de filtragem. No exemplo: Na tabela actual existe uma coluna de ligação ‘Speakers’ que está ligada a outra tabela. Uma vez que cada “Speaker” está ligado a múltiplas entradas, queremos descobrir, com um “Price” inferior a 500, qual é a maior “Power” para cada “Speaker”. | rollup("Speakers", "Power", "max", "{Price} < 500")
= 80 (O maior valor das entradas ligadas à coluna “Speakers” em “Power” em que o “Price” é inferior a 500). |
| lookup(findmax(“Column”, “Other column”), “Target”) | Procura o maior valor na coluna ligada (“Other column”) e devolve o valor na mesma linha a partir de outra coluna (“Target”). Especifica-se qual a coluna de ligação (“Column”), e qual a coluna de ligação (“Other column”) e a coluna de destino (“Target”) a utilizar. No exemplo: Na tabela actual existe uma coluna de ligação “Speakers” que está ligada a outra tabela. Uma vez que cada “Speaker” está ligado a várias entradas, queremos saber qual o “Price” que cada “Speaker” tem pelo seu maior “Power”. | lookup(findmax("Speakers", "Power"), "Price")
= 350 (Devolve o maior valor “Price” em “Power” ligado à coluna “Speakers”). |
| lookup(findmin(“Column”, “Other column”), “Target”) | Procura o menor valor na coluna ligada (“Other column”) e devolve o valor na mesma linha de outra coluna (“Target”). Especifica-se que coluna de ligação (“Column”), e que coluna de ligação (“Other column”) e coluna de destino (“Target”) devem ser utilizadas. No exemplo: Na tabela actual existe uma coluna de ligação “Speakers” que está ligada a outra tabela. Uma vez que cada “Speaker” está ligado a várias entradas, queremos saber qual o “Price” que cada “Speaker” tem pelo seu “Power” mais pequeno. | lookup(findmin("Speakers", "Power"), "Price")
= 210 (O “Price” do valor mais pequeno em “Power” ligado à coluna “Speakers”). |