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.
Sum(CA_HT + MARGE)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.