Ceci est un texte extrait d' ici . Je l'ai posté ici comme un homme de paille. Si quelqu'un qui sait en quoi cela diffère des formules dans les feuilles de calcul Google pourrait faire un commentaire, nous pourrions peut-être nous retrouver avec une bonne réponse.
Formules
Les formules vous permettent d'effectuer des calculs dans les cellules du tableau. Chaque formule PEUT commencer par un préfixe d'espace de nom spécifiant la syntaxe et la sémantique utilisées dans la formule. Lorsqu'il n'y a pas de préfixe, la syntaxe et la sémantique de formule par défaut décrites ci-dessous sont utilisées. Ceci est suivi d'un signe égal, puis de la formule elle-même. Les implémentations PEUVENT accepter plusieurs syntaxes de formule, et elles PEUVENT accepter diverses extensions de la syntaxe de formule par défaut. Cependant, toutes les implémentations qui acceptent les formules DOIVENT accepter la syntaxe et la sémantique des formules par défaut, comme décrit ici. Ils PEUVENT également accepter des extensions.
Un document implémentant le schéma strict NE PEUT PAS utiliser un préfixe d'espace de nom de formule (car il n'y a aucune garantie que d'autres systèmes récepteurs seraient en mesure de le traiter), et NE PEUT PAS utiliser les extensions de la sémantique et de la syntaxe décrites ci-dessous: Dans la formule par défaut syntaxe, après le signe égal initial, une formule doit être une expression. Une expression peut être un nombre, une chaîne constante, une plage nommée, une paire d'expressions connectées par un opérateur binaire, une expression préfixée par un opérateur unaire, un opérateur logique, un appel de fonction, une adresse de cellule ou une expression entourée de parenthèses. Un appel de fonction et un opérateur logique peuvent avoir zéro ou plusieurs paramètres séparés par des points-virgules, et chaque paramètre DOIT être une expression. La syntaxe de chacun d'eux est la suivante:
Nombres. Les nombres sont écrits et lus dans ce format en utilisant les paramètres régionaux "C" (en utilisant le séparateur décimal "." Et aucun séparateur de milliers), en utilisant setlocale (LC_NUMERIC, "C") ou équivalent. Les nombres peuvent se terminer par%, ce qui divise ce nombre par 100. Le «%» ne change pas la signification des autres opérateurs, donc 2 + 10% est 2,1 (et non 2,2). Notez que les signes - et + sont autorisés comme opérateurs unaires, décrits ci-dessous. Les auteurs DOIVENT écrire des nombres qui correspondent au modèle (notez qu'il doit commencer par un chiffre): [0-9] + (. [0-9] +)? ([EE] [+ -]? [0-9] + )?%? Les lecteurs DOIVENT être capables de lire ces nombres, ainsi que d'accepter les nombres qui commencent par un ".", Donc ils doivent être capables de lire les nombres sous la forme: ((. [0-9] +) | ([0- 9] + (. [0-9] +)? ([EE] [+ -]? [0-9] +)?))%? Chaînes constantes .. Les chaînes constantes sont entourées de guillemets doubles; pour intégrer un guillemet double, le caractère guillemet double est utilisé deux fois. Les chaînes sont stockées au format UTF-8. Notez que puisque tout le contenu est stocké en XML, tous les guillemets doubles dans la formule sont en fait stockés en tant que "dans le XML. Les chaînes constantes correspondent au modèle: \" ([^ "] | \" \ ") * \"
Plages / champs nommés. Les plages / champs nommés font référence à une valeur définie distincte ou à un ensemble de valeurs (dans une feuille de calcul, faisant généralement référence à une adresse de cellule ou à un ensemble d'adresses). Les noms ne sont pas sensibles à la casse, donc "a" et "A" se réfèrent à la même plage. Les implémentations doivent accepter au moins des plages nommées qui correspondent au modèle suivant: [A-Za-z] [A-Za-z0-9 _] *
Les opérateurs. Les opérateurs d'infixe et de préfixe ordinaires sont acceptés. Celles-ci ont l'associativité et la priorité suivantes (de la plus basse à la plus haute priorité):
Opérateur (s) d'associativité Commentaires
gauche <, =,>, <=,> =, <> Inférieur à, égal à, supérieur à,
inférieur ou égal à, supérieur ou égal à,
pas égal à.
gauche +, -, & Ajouter, soustraire, concaténation de chaîne. Notez que
unaire (préfixe) + et - a une priorité différente.
gauche *, / Multiplier, diviser. La division ne tronque pas, donc
1/2 est égal à 0,5.
droite ^ Puissance (2 ^ 3 est 8). Les lecteurs DEVRAIENT également accepter «**».
none +, - Préfixez les opérateurs unaires, par exemple, -5 ou - [. A1].
Notez que ceux-ci ont une priorité différente de celle
ajouter et soustraire.
La priorité peut être remplacée en utilisant des parenthèses, donc "= 2 + 3 * 4" calcule 14 tandis que "= (2 + 3) * 4" calcule 20. Notez que +, -, *, /, ^ convertissent n'importe quelle chaîne ou valeur binaire ils utilisent en nombres avant de calculer; notez que & (concaténation de chaînes) convertit toutes les valeurs en chaînes avant de les concaténer. Opérateurs logiques. Les opérateurs logiques ont la même syntaxe que les appels de fonction; leurs noms ne respectent pas la casse, les paramètres sont séparés par des points-virgules et leur nom DOIT être suivi de parenthèses. Les opérateurs logiques sont:
Opérateur Nombre de paramètres Commentaire
TRUE () 0 Il s'agit d'une constante booléenne, bien que sa syntaxe la fasse apparaître comme une fonction
FALSE () 0 Ceci est une constante booléenne
NOT (expression) 1 Si l'expression est TRUE () renvoie FALSE (), sinon renvoie TRUE ()
AND (e1; e2 [; e] *) 2 ou plus Si toutes les expressions sont TRUE () renvoie TRUE (), sinon renvoie FALSE ()
OU (e1; e2 [; e] *) 2 ou plus Si toutes les expressions sont FALSE () renvoie FALSE (), sinon renvoie TRUE ()
IF (condition; true_exp; false_exp)
3 Évalue l'état. Si c'est vrai, retournez true_exp, sinon retournez false_exp
Les implémentations de AND (), OR () et IF () doivent court-circuiter, c'est-à-dire qu'elles doivent évaluer tour à tour de gauche à droite et n'évaluer que les expressions qu'elles doivent évaluer pour calculer le résultat. Une implémentation peut choisir d'évaluer davantage, mais uniquement lorsque les expressions n'ont aucun effet secondaire. Les implémentations de AND () et OR () DEVRAIENT accepter un nombre arbitraire de paramètres, mais DOIVENT en accepter au moins 30 à chaque utilisation. Les opérations NOT (), AND () et OR (), ainsi que la condition dans IF (), sont destinées aux valeurs booléennes; si des expressions d'autres types sont utilisées, une implémentation NE DEVRAIT PAS considérer 0 comme faux et toute autre valeur numérique comme vraie, et NE DEVRAIT PAS considérer une chaîne de longueur nulle comme fausse et toute autre valeur de chaîne comme vraie. Si une valeur d'erreur est calculée pour une expression, cette première erreur est le résultat de l'opération logique.
Appels de fonction.Un appel de fonction a un nom de fonction correspondant au modèle [A-za-z] [A-Za-z0-9 _] * suivi d'une parenthèse ouvrante, de zéro ou plusieurs paramètres et d'une parenthèse fermante. Les paramètres sont séparés par un point-virgule (pas une virgule), bien que les lecteurs PEUVENT éventuellement accepter les appels de fonction en utilisant des virgules comme séparateurs. Les noms de fonction ne sont pas sensibles à la casse, donc «sum» et «SUM» sont la même fonction. S'il y a des paramètres, chacun doit être une expression et aucun ne peut être vide, donc X (;) n'est pas un appel de fonction légal tandis que RAND () est parfaitement légal. Si un paramètre est facultatif, il PEUT être omis, mais s'il est omis, son séparateur DOIT également être omis (les spécifications de la fonction doivent indiquer quels paramètres sont facultatifs et ce que leur omission signifie). Les implémentations typiques auront de nombreuses fonctions intégrées, et la plupart des implémentations prennent également en charge une ou plusieurs façons de créer des fonctions définies par l'utilisateur. Les fonctions communes incluent:
- SUM ( list ) - résume tous les nombres dans la ou les plages de la liste .
- COUNT ( liste ) - compte le nombre de nombres dans la ou les plages de la liste
- MOYENNE ( liste ) - Calcule la moyenne, égale à SUM ( liste ) / COUNT ( liste )
- MIN ( liste ) - valeur numérique minimale de la liste
- MAX ( liste ) - valeur maximale de la liste
- ROUND ( n , count ) - arrondir n pour compter les chiffres (si count omis, count = 0)
- INT ( n ) - arrondit n à l'entier le plus proche.
- ISEVEN ( n ) - retourne TRUE () si n est pair, sinon retourne FALSE ().
- REMPLACER ( texte , searchtext ; newText ; occurrence ) - substituts Newtext pour searchtext en texte , occurrence nombre de fois (si occurrence omis, en tout temps).
Adresses de cellules contenant des nombres . Les adresses peuvent être relatives ou absolues. Une adresse relative se compose d'une lettre de colonne et d'un numéro de ligne. Préfixer la lettre de ligne ou le numéro de colonne avec un $
rend la ligne ou la colonne absolue.
Les espaces (espace, tabulation, retour à la ligne et retour chariot) sont ignorés dans la syntaxe des formules par défaut, sauf dans le contenu des constantes de chaîne et comme séparateur pour plusieurs adresses de plage de cellules dans une liste d'adresses de plage de cellules.
Les interfaces utilisateur des implémentations PEUVENT choisir d'accepter et d'afficher les formules différemment de la façon dont elles sont échangées dans ce format de données. Par exemple, ils PEUVENT accepter et afficher des nombres en utilisant le format des paramètres régionaux actuels, ils PEUVENT toujours utiliser un paramètre régional particulier pour les formats numériques, ils PEUVENT utiliser des virgules au lieu de points-virgules pour les séparateurs de paramètres, et ils PEUVENT accepter et afficher les adresses de cellule sans nécessiter la utilisation de crochets. Mais les interfaces utilisateur d'implémentation DEVRAIENT accepter le format par défaut en entrée aussi bien que possible, par exemple, les implémentations DEVRAIENT accepter les nombres qui répondent aux exigences locales «C» (ainsi que les paramètres régionaux actuels), et DEVRAIENT accepter les adresses de cellules entre crochets. De plus, les interfaces utilisateur de mise en œuvre DEVRAIENT corriger les erreurs probables, éventuellement avec un dialogue. Par exemple,
Voici un exemple de formule simple:
=sum(A1:A5)
Cette formule calcule la somme des valeurs de toutes les cellules de la plage «.A1: .A5». La fonction est «somme». Les paramètres sont marqués d'un «(« au début et d'un «)» à la fin. Si une fonction contient plusieurs paramètres, les paramètres sont séparés par un «;». Voici une variante de la formule ci-dessus:
=sum(A1;A2;A3;A4;A5)
Le résultat de cette formule est le même. Les composants que vous utilisez dans la formule dépendent de l'application que vous utilisez.