Sei mai stato confuso dal risultato quando hai provato ad aggiungere valori numerici usando un operatore più (+)? Forse hai scoperto la funzione Sum() per aggirare il problema ma non hai mai capito veramente perché funzionasse. In questo post del blog, spiego la funzione Add(), l'operatore più (+) e la funzione Sum() per aiutarti a ottenere i risultati di cui hai bisogno dallo script o dalla formula di colonna.

Iniziamo con la funzione Add(). Sapevi che più (+) è la rappresentazione simbolica della funzione Add()? È! Ciò significa che le seguenti due espressioni sono esattamente le stesse:
1 + 2; //Returns 3
Add( 1, 2 ); //Returns 3
La funzione Add() e l'operatore più aggiungono valori per calcolare un valore totale. Gli argomenti possono essere numeri, matrici o liste di numeri.
Ma cosa succede se uno dei valori è un numero mancante (.)? La funzione Add() restituirà missing se uno qualsiasi degli argomenti è un valore mancante.
Nell'esempio precedente, il risultato era 3 per entrambe le espressioni. Sulla base di ciò, se un valore mancante fosse uno degli argomenti, allora restituirebbe missing, anziché 3.
1 + . + 2; //Returns missing
Add( 1, ., 2 ); //Returns missing
Quindi, come si ottiene ancora un valore totale escludendo i valori mancanti? È qui che entra in gioco la funzione Sum(). La funzione Sum() aggiungerà anche valori per calcolare un valore totale, tuttavia, it ignora valori mancanti.
Di seguito è riportata la sintassi per la funzione Sum(). Si noti che gli argomenti sono separati da virgole e viene calcolato il valore totale di tutti gli argomenti non mancanti.
Sum( 1, ., 2 ); //Returns 3
Sum() può mai restituire missing? Beh, sì, può. Quando gli argomenti forniti alla funzione Sum() sono Tutto valori mancanti, mancherà anche il risultato. In questo esempio, mancano i valori di x e y.
x = y = .;
Sum( x, y ); //Returns missing
E non farti inciampare pensando che puoi usare l'operatore più per specificare gli argomenti.
Sum( 1 + . + 2 ); ); //Returns missing
Quando lo fai, JMP lo vede come un argomento che utilizza la funzione Add(). E ricorda che la funzione Add() restituisce missing quando uno qualsiasi degli argomenti è un valore mancante:
Sum( Add( 1, ., 2 ) ); //Returns missing
Che è essenzialmente lo stesso di questo:
Sum( . ); //Returns missing
Se hai modificato l'esempio per includere due argomenti, ad esempio:
Sum( 100, 1 + . + 2 ); //Returns 100
Il risultato è 100 perché gli argomenti sono 100 e mancano, come in:
Sum( 100, . ); //Returns 100
Spero che questo aiuti a chiarire gli usi di Add(), plus (+) e Sum().
Ricordo che quando ho iniziato a utilizzare JMP per la prima volta questo argomento mi ha causato un po' di confusione perché la funzione di aggiunta predefinita in "Nuova colonna formula" è la versione che restituisce un valore mancante se mancano dei valori. In quei secoli bui non mi rendevo conto di quanto grande fosse la comunità che JMP aveva per aiutare con cose come questa! 