Salut - J'ai besoin d'aide pour mettre une formule pour trouver une ligne la plus récente en fonction des conditions et récupérer une valeur de colonne différente / effectuer des calculs entre deux paramètres de ligne (DateTime).
Le tableau de données ci-dessous (également joint) comporte : les colonnes Asset, DateTime, Discrete et Action .
Les données sont triées en fonction de l'actif d'abord, puis de la date et de l'heure (croissant)
Il existe également une variable de table days_threshold = 4.
Action(Desired) est la forme d'action souhaitée dans laquelle la formule actuelle

doit être modifié.
Toute ligne qui obtient un Discret = 1 (qui est normalement déterminé par une règle de formule ignorée ici et à la place des exemples de valeurs fournies) , Action doit commencer à regarder ses propres lignes précédentes (dans DateHeure forme descendante). Deux conditions dans cette recherche sont :
1- À la recherche du même Actif Pour qui Discret =1 (c'est-à-dire XY01 ou XY02)
2- Regardez jusqu'à la valeur la plus récente de Acte = 1 est trouvé .
Calculer le nombre de jours entre la dernière fois que l'action était 1 et DateTime de la ligne actuelle.
Si la différence (en jours) >= days_threshold = 4 ---> alors Action de la ligne actuelle = 1
Sinon si la différence (en jours) < days_threshold ---> alors Action de la ligne courante = 0
Uniquement intéressé à trouver l'heure la plus récente où l'action était "1" ... Une fois que cette valeur unique est trouvée (si elle existe), la recherche peut s'arrêter à ce point. La limite de recherche est jusqu'à la première occurrence de cet actif (c'est-à-dire l'enregistrement le plus ancien). Si l'action n'a jamais été définie sur "1" auparavant, alors l'action de la ligne actuelle peut être définie sur "1"
par exemple, la ligne 2 est la première fois que XY01 obtient Action =1 (basé sur Discrete, qui est lui-même lié à certaines règles, montrant simplement les valeurs w/ dans cet exemple).
Ensuite, à la ligne 3, Discrete est à nouveau défini sur 1, mais cette fois, Action doit être égal à 0 car le nombre de jours de différence entre les lignes précédentes et actuelles est de 0 (< days_threshold).
De même, pour la ligne 5, Action reste toujours 0 car seulement 3 jours se sont écoulés depuis la dernière fois où Action était 1.
Enfin, l'action est définie sur "1" à la ligne 6.
Fourni deux actifs suivant cette idée - définissez les valeurs souhaitées sur Action(Desired).
Je préfère que ce soit une formule plutôt qu'un script.
merci d'avance l'équipe JMP.
Altug Bayram
