Este é um texto extraído daqui . Eu publiquei aqui como um homem de palha. Se alguém que sabe como isso difere das fórmulas nas planilhas do Google pode fazer um comentário, talvez possamos terminar com uma boa resposta.
Fórmulas
As fórmulas permitem realizar cálculos nas células da tabela. Toda fórmula PODE começar com um prefixo de espaço para nome, especificando a sintaxe e a semântica usadas na fórmula. Quando não há prefixo, são utilizadas a sintaxe e a semântica padrão da fórmula, conforme descrito abaixo. Isto é seguido por um sinal de igual e depois pela própria fórmula. Implementações podem aceitar várias sintaxes da fórmula, e eles podem aceitar várias extensões para a sintaxe da fórmula padrão. No entanto, todas as implementações que aceitam fórmulas DEVEM aceitar a sintaxe padrão da fórmula e a semântica, conforme descrito aqui. Eles também podem aceitar extensões para ele.
Um documento que implementa o esquema estrito NÃO PODE usar um prefixo de espaço para nome da fórmula (já que não há garantia de que outros sistemas receptores possam processá-lo) e NÃO PODE usar nenhuma extensão para a semântica e sintaxe descritas abaixo: Na fórmula padrão sintaxe, após o sinal de igual inicial, uma fórmula deve ser uma expressão. Uma expressão pode ser um número, uma cadeia constante, um intervalo nomeado, um par de expressões conectadas por um operador binário, uma expressão prefixada por um operador unário, um operador lógico, uma chamada de função, um endereço de célula ou uma expressão cercada por parênteses. Uma chamada de função e um operador lógico podem ter zero ou mais parâmetros separados por ponto e vírgula, e cada parâmetro DEVE ser uma expressão. A sintaxe para cada um deles é a seguinte:
Números. Os números são gravados e lidos nesse formato usando o código de idioma "C" (usando o separador decimal "." E sem separador de milhares), usando setlocale (LC_NUMERIC, "C") ou equivalente. Os números podem terminar em%, que divide esse número por 100. O "%" não altera o significado de outros operadores, portanto 2 + 10% é 2,1 (não 2,2). Observe que os sinais - e + iniciais são permitidos como operadores unários, descritos abaixo. Os escritores DEVEM escrever números que correspondam ao padrão (observe que ele deve começar com um dígito): [0-9] + (. [0-9] +)? ([EE] [+ -]? [0-9] + )?%? Os leitores DEVEM poder ler esses números, bem como aceitar números que começam com um “.” Inicial, para que possam ler números na forma: ((. [0-9] +) | ([0- 9] + (. [0-9] +)? ([EE] [+ -]? [0-9] +)?))%? Cadeias constantes .. As cadeias constantes são cercadas por aspas duplas; para incorporar aspas duplas, o caractere de aspas duplas é usado duas vezes. As strings são armazenadas no formato UTF-8. Observe que, como todo o conteúdo é armazenado como XML, todas as aspas duplas na fórmula são realmente armazenadas como "no XML. As cadeias constantes correspondem ao padrão: \" ([^ "] | \" \ ") * \"
Intervalos / campos nomeados. Intervalos / campos nomeados referem-se a um valor definido separado ou conjunto de valores (em uma planilha, normalmente referente a um endereço de célula ou conjunto de endereços). Os nomes não diferenciam maiúsculas de minúsculas; portanto, "a" e "A" se referem ao mesmo intervalo. As implementações devem aceitar pelo menos intervalos nomeados que correspondam ao seguinte padrão: [A-Za-z] [A-Za-z0-9 _] *
Operadores. Operadores comuns de prefixo e prefixo são aceitos. Eles têm a seguinte associatividade e precedência (da prioridade mais baixa à mais alta):
Operador (es) de associatividade Comentários
esquerda <, =,>, <=,> =, <> Menor que, igual a, maior que,
menor que ou igual a, maior que ou igual a,
não é igual a.
esquerda +, -, & Adicionar, subtrair, concatenação de string. Observe que
unário (prefixo) + e - tem uma prioridade diferente.
esquerda *, / Multiplicar, dividir. Divisão não trunca, então
1/2 é igual a 0,5.
poder ^ à direita (2 ^ 3 é 8). Os leitores também devem aceitar "**".
nenhum +, - Prefixa operadores unários, por exemplo, -5 ou - [. A1].
Observe que estes têm uma precedência diferente do que
adicione e subtraia.
A precedência pode ser substituída usando parênteses, então "= 2 + 3 * 4" calcula 14 enquanto "= (2 + 3) * 4" calcula 20. Observe que +, -, *, /, ^ converte qualquer string ou valores binários eles usam números antes de computar; Observe que & (concatenação de string) converte quaisquer valores em strings antes de concatená-los. Operadores lógicos. Operadores lógicos têm a mesma sintaxe que as chamadas de função; seus nomes não diferenciam maiúsculas de minúsculas, os parâmetros são separados por ponto e vírgula e seu nome DEVE ser seguido por parênteses. Os operadores lógicos são:
Contador de parâmetros do operador Comentário
TRUE () 0 Esta é uma constante booleana, embora sua sintaxe faça com que pareça uma função
FALSE () 0 Esta é uma constante booleana
NOT (expressão) 1 Se a expressão for TRUE () retorna FALSE (), então retorna TRUE ()
AND (e1; e2 [; e] *) 2 ou mais Se todas as expressões forem TRUE () retornam TRUE (), caso contrário, retorna FALSE ()
OR (e1; e2 [; e] *) 2 ou mais Se todas as expressões forem FALSE () retornam FALSE (), caso contrário, retorna TRUE ()
IF (condição; true_exp; false_exp)
3 Avalia a condição. Se for verdade, retorne true_exp, caso contrário, retorne false_exp
As implementações de AND (), OR () e IF () devem entrar em curto-circuito, ou seja, devem avaliar da esquerda para a direita e avaliar apenas as expressões que devem ser avaliadas para calcular o resultado. Uma implementação pode optar por avaliar mais, mas somente quando as expressões não têm efeitos colaterais. Implementações de AND () e OR () DEVEM aceitar um número arbitrário de parâmetros, mas DEVEM aceitar pelo menos 30 em cada uso. As operações NOT (), AND () e OR (), bem como a condição em IF (), destinam-se a valores booleanos; se expressões de outros tipos são usadas, uma implementação NÃO DEVE considerar 0 como falso e qualquer outro valor numérico como true, e NÃO DEVE considerar uma string de comprimento zero como false e qualquer outro valor de string como true. Se um valor de erro for calculado para uma expressão, esse primeiro erro será o resultado da operação lógica.
Chamadas de função.Uma chamada de função possui um nome de função que corresponde ao padrão [A-za-z] [A-Za-z0-9 _] * seguido por um parêntese de abertura, zero ou mais parâmetros e um parêntese de fechamento. Os parâmetros são separados por ponto e vírgula (não vírgula), embora os leitores PODEM opcionalmente aceitar chamadas de função usando vírgulas como separadores também. Os nomes das funções não diferenciam maiúsculas de minúsculas; portanto, "sum" e "SUM" são a mesma função. Se houver parâmetros, cada um deve ser uma expressão e nenhum pode estar vazio; portanto, X (;) não é uma chamada de função legal enquanto RAND () é perfeitamente legal. Se um parâmetro é opcional, PODE ser omitido, mas se omitido, seu separador DEVE ser omitido também (as especificações das funções devem indicar quais parâmetros são opcionais e o que significa omitir). As implementações típicas terão muitas funções internas, e a maioria das implementações também oferece suporte a uma ou mais maneiras de criar funções definidas pelo usuário. Funções comuns incluem:
- SUM ( lista ) - resume todos os números no (s) intervalo (s) da lista .
- COUNT ( lista ) - conta o número de números no (s) intervalo (s) da lista
- MÉDIA ( lista ) - Calcula a média, igual a SUM ( lista ) / COUNT ( lista )
- MIN ( lista ) - valor numérico mínimo da lista
- MAX ( lista ) - valor máximo da lista
- ROUND ( n , count ) - arredonda n para contar dígitos (se o contador for omitido, count = 0)
- INT ( n ) - arredonde n para baixo para o número inteiro mais próximo.
- ISEVEN ( n ) - retorna TRUE () se n for par; caso contrário, retorna FALSE ().
- Substituto ( texto ; searchText ; newtext ; ocorrência ) - substitutos newText para searchText no texto , ocorrência número de vezes (se ocorrência omitido, todas as vezes).
Endereços de células que contêm números . Os endereços podem ser relativos ou absolutos. Um endereço relativo consiste em uma letra da coluna e um número de linha. Prefixar a letra da linha ou o número da coluna com a $
torna a linha ou coluna absoluta.
O espaço em branco (espaço, tabulação, nova linha e retorno de carro) é ignorado na sintaxe das fórmulas padrão, exceto no conteúdo das constantes de sequência e como um separador para vários endereços de intervalo de células em uma lista de endereços de intervalo de células.
As interfaces de usuário das implementações PODEM optar por aceitar e exibir fórmulas de maneira diferente de como elas são trocadas nesse formato de dados. Por exemplo, eles PODEM aceitar e exibir números usando o formato do local atual, PODEM sempre usar um local específico para formatos numéricos, PODEM usar vírgulas em vez de ponto-e-vírgula para separadores de parâmetros, PODE aceitar e exibir endereços de células sem exigir o uso de colchetes. Mas as interfaces de usuário de implementação DEVEM aceitar o formato padrão como entrada, bem como sempre que possível, por exemplo, implementações DEVEM aceitar números que atendam aos requisitos de localidade "C" (assim como a localidade atual) e DEVEM aceitar endereços de célula entre colchetes. Além disso, interfaces de usuário de implementação DEVE corrigir erros prováveis, possivelmente com um diálogo. Por exemplo,
A seguir, é apresentado um exemplo de uma fórmula simples:
=sum(A1:A5)
Esta fórmula calcula a soma dos valores de todas as células no intervalo ".A1: .A5". A função é "soma". Os parâmetros são marcados com um "(" no início e um ")" no final. Se uma função contiver mais de um parâmetro, os parâmetros serão separados por um ";". A seguir, é apresentada uma variação da fórmula mostrada acima:
=sum(A1;A2;A3;A4;A5)
O resultado desta fórmula é o mesmo. Os componentes que você usa na fórmula dependem do aplicativo que você está usando.