Sei mai stato confuso dal risultato quando provi ad aggiungere valori numerici usando un operatore più (+)? Forse hai scoperto la funzione Sum() per aggirare il problema ma non hai mai capito perché funzionasse. In questo post del blog, spiego la funzione Add(), più (+) operatore e la funzione Sum() per aiutarti a ottenere i risultati di cui hai bisogno dal tuo script o dalla formula della 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 elenchi di numeri.
Ma cosa succede se uno dei valori manca di un valore numerico (.)? La funzione Add() restituirà missing se uno degli argomenti è un valore mancante.
Nell'esempio precedente, il risultato era 3 per entrambe le espressioni. Basandosi su questo, se un valore mancante fosse uno degli argomenti, allora ritornerebbe mancante, 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, è ignora valori mancanti.
Di seguito è riportata la sintassi per la funzione Sum(). Notare 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 tornare mancante? Ebbene sì, può. Quando gli argomenti forniti alla funzione Sum() sono tutti valori mancanti, mancherà anche il risultato. In questo esempio, manca il valore di x e y.
x = y = .;
Sum( x, y ); //Returns missing
E non inciampare pensando che puoi usare l'operatore più per specificare gli argomenti.
Sum( 1 + . + 2 ); ); //Returns missing
Quando lo fai, JMP vede questo come un argomento che usa 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().