← Toutes les astuces

NULL : pourquoi Sum(A + B) peut vous piéger

Une addition ligne à ligne contenant NULL peut faire disparaître la ligne du calcul. RangeSum() permet souvent d’exprimer plus clairement l’intention.

Ce qui se passe

Qlik évalue d’abord l’expression ligne par ligne. Si une composante de l’addition vaut NULL, le résultat de cette ligne peut devenir NULL avant même que Sum() n’agrège les résultats. C’est donc l’endroit où l’addition est effectuée qui change le résultat.

Le problème

Supposons trois lignes. Sur la deuxième, MARGE est NULL. L’expression CA_HT + MARGE est alors NULL pour cette ligne : Sum() ne reçoit donc aucune valeur numérique pour cette addition.

À surveiller
Sum(CA_HT + MARGE)
Écriture conseillée
Sum(CA_HT) + Sum(MARGE)

// ou, pour une logique ligne à ligne :
Sum(RangeSum(CA_HT, MARGE))

RangeSum() traite les valeurs non numériques, dont NULL, comme 0 dans le calcul de la plage. Le choix entre les deux écritures dépend de ce que vous voulez réellement calculer.