Avez-vous déjà été confus par le résultat lorsque vous essayez d'ajouter des valeurs numériques à l'aide d'un opérateur plus (+) ? Peut-être avez-vous découvert la fonction Sum() pour contourner le problème mais n'avez jamais vraiment compris pourquoi cela fonctionnait. Dans cet article de blog, j'explique la fonction Add(), l'opérateur plus (+) et la fonction Sum() pour vous aider à obtenir les résultats dont vous avez besoin à partir de votre script ou de votre formule de colonne.

Commençons par la fonction Add(). Saviez-vous que plus (+) est la représentation symbolique de la fonction Add() ? C'est! Cela signifie que les deux expressions suivantes sont exactement identiques :
1 + 2; //Returns 3
Add( 1, 2 ); //Returns 3
La fonction Add() et l'opérateur plus ajoutent des valeurs pour calculer une valeur totale. Les arguments peuvent être des nombres, des matrices ou des listes de nombres.
Mais que se passe-t-il si l'une des valeurs est un chiffre manquant (.) ? La fonction Add() renverra missing si l'un des arguments est une valeur manquante.
Dans l'exemple précédent, le résultat était 3 pour l'une ou l'autre des expressions. En partant de là, si une valeur manquante était l'un des arguments, elle renverrait manquante, plutôt que 3.
1 + . + 2; //Returns missing
Add( 1, ., 2 ); //Returns missing
Alors, comment obtenez-vous encore une valeur totale en excluant les valeurs manquantes ? C'est là qu'intervient la fonction Sum(). La fonction Sum() ajoutera également des valeurs pour calculer une valeur totale, cependant, elle ne tient pas compte valeurs manquantes.
Vous trouverez ci-dessous la syntaxe de la fonction Sum(). Notez que les arguments sont séparés par des virgules et que la valeur totale de tous les arguments non manquants est calculée.
Sum( 1, ., 2 ); //Returns 3
Sum() peut-il jamais revenir manquant? Eh bien, oui, c'est possible. Lorsque le ou les arguments fournis à la fonction Sum() sont tous valeurs manquantes, le résultat sera également manquant. Dans cet exemple, la valeur de x et de y est manquante.
x = y = .;
Sum( x, y ); //Returns missing
Et ne vous trompez pas en pensant que vous pouvez utiliser l'opérateur plus pour spécifier les arguments.
Sum( 1 + . + 2 ); ); //Returns missing
Quand tu fais ça, JMP considère cela comme un argument qui utilise la fonction Add(). Et rappelez-vous que la fonction Add() renvoie missing lorsque l'un des arguments est une valeur manquante :
Sum( Add( 1, ., 2 ) ); //Returns missing
Qui est essentiellement le même que celui-ci :
Sum( . ); //Returns missing
Si vous avez modifié cet exemple pour inclure deux arguments, tels que :
Sum( 100, 1 + . + 2 ); //Returns 100
Le résultat est 100 car les arguments sont 100 et manquants, comme dans :
Sum( 100, . ); //Returns 100
J'espère que cela aide à clarifier les utilisations de Add(), plus (+) et Sum().
Je me souviens que lorsque j'ai commencé à utiliser JMP, ce sujet m'a causé un peu de confusion car la fonction d'ajout par défaut sous "Nouvelle colonne de formule" est la version qui renvoie une valeur manquante si des valeurs manquent. À l'époque sombre, je n'avais pas réalisé à quel point la communauté JMP devait aider avec des choses comme celle-ci ! 