J'ai deux rendez-vous différents pour des personnes différentes. La première colonne (A) est le nom de la personne. La deuxième colonne est (B = date de l'événement d'indexation) et la troisième est (C = date d'intervention). La quatrième colonne est la différence (D) entre les deux dates "BC/ en jours(1)" .
Ma question est de savoir comment laisser JMP choisir une valeur spécifique dans D pour chaque personne (A). Je dois sélectionner la valeur dans les délais suivants :
1- La valeur la plus proche en D avant la date de l'événement d'indexation (B). Supposons qu'une personne ait les valeurs de différence de date suivantes.0, -1, -10. Je veux zéro dans ce cas
2- La première valeur de D dans les 2 semaines après A (0 jour jusqu'à 14 jours), disons qu'une personne a 2, 8, 14. j'en veux 2
3- La première valeur en D après 2 semaines de A (15 jours ou plus) Disons qu'une personne a 17, 25, 35. j'en veux 17
Salut,
Comme Jed le mentionne, plus de contexte, c'est mieux, mais je pense que je vois ce que vous voulez.
Dans le cas (1), un maximum, mais seulement parmi les différences inférieures ou égales à zéro.
Dans le cas (2), un minimum, mais seulement parmi les différences entre 0 et 14 inclus.
Dans le cas (3), un minimum, mais seulement parmi les différences de 15 ou plus.
Si c'est ce que vous voulez, alors dans chaque cas, vous pouvez utiliser la même idée :
1) Définissez dynamiquement les données que vous NE voulez PAS manquer, puis
2) Calculez le maximum ou le minimum des données, tout en ignorant les données manquantes.
Dans le code ci-dessous, chaque formule a la même structure :
Col <> ( If ( je veux ignorer les données, les rendre manquantes, sinon utiliser les données d'origine), << variable de regroupement >> ).
Alors, quelles données voulons-nous ignorer ?
Dans le cas ( 1 ), c'est :diff > 0... toute différence supérieure à 0
Dans le cas (2), c'est le cas ! ( 0 <= :diff <= 14)... toute différence non comprise entre 0 et 14 inclus
Dans le cas ( 3 ), c'est :diff < 15... toute différence inférieure à 15
En exécutant le code, vous verrez un tableau comme celui ci-dessous. Dans mon code, la colonne de regroupement est la colonne "personne"... et je viens de simuler les différences, à partir de votre description c'est la colonne d'intérêt.
Acclamations,
Brady
Names Default To Here( 1 );
nr = 50;
dt = New Table( "ex",
New Column( "Person", character, <<SET values=""> 0, ., :diff ), :Person ) ) );
dt << New Column( "form_2", formula( Col Min( If( !(0 <= :diff <= 14), ., :diff ), :Person ) ) );
dt << New Column( "form_3", formula( Col Min( If( :diff < 15, ., :diff ), :Person ) ) );</SET>

Avez-vous la possibilité de partager un exemple de tableau de données pour que cela soit plus clair ? La fonction Tables...Anonymize peut faciliter le partage si les informations personnelles ou propriétaires ne peuvent pas être partagées.