Je voudrais calculer une différence de valeur entre deux lignes classées par Type et ID et triée par colonne de date. Voir l'exemple de tableau de données. Notez que la colonne "Calculé" montre les résultats actuels, tandis que la colonne "Prévu" montre les résultats que j'aimerais obtenir.Spotfire sur la fonction - date précédente avec plusieurs catégories
ID Type Date ValueA ValueB ValueC Calculated Expected
1 A 8/15/2017 38.11
1 A 8/15/2017 78.10 39.99
1 A 8/22/2017 110.24 32.14
1 B 8/22/2017 20
1 B 9/16/2017 10
1 A 9/16/2017 101.13 -9.11
2 C 8/17/2012 90
2 A 8/18/2012 863.25
2 B 8/18/2012 15
2 A 8/19/2012 952.35 89.1 89.1
2 B 8/19/2012 20
J'ai essayé l'expression personnalisée suivante, mais il semble calculer une valeur de différence que pour les cas où il y a une date consécutive pour un ID donné.
Case
when [Type]="A" then [Value] - Max([Value]) over (Intersect([ID],Previous([Date])))
else NULL
L'expression est une tentative de filtrer au type « A » pour la déclaration OVER, de sorte que la date précédente est la date précédente que pour des valeurs classées dans la catégorie de type « A ». Cependant, il semble considérer la date précédente comme NULL si elle n'est pas une date consécutive (c'est-à-dire le jour précédent). Voir "Calculé" dans le tableau ci-dessus pour les résultats de cette expression.
J'ai également essayé d'ajouter Type à l'instruction Intersect, par ex. Intersection ([ID], [Type], Précédent ([Date]), mais je reçois un résultat similaire
donc la valeur n'est pas toujours remplie? quel est le résultat attendu ? – scsimon
J'ai mis à jour le post pour répondre à vos questions. Ajout de plusieurs colonnes de valeurs correspondant aux types différents. Ainsi, une colonne de valeur sera remplie dans une ligne pour seulement le type respectif, sinon null. J'ai également ajouté une colonne appelée "Expected" pour montrer le résultat que j'aimerais atteindre. –