Re: formule aide!Voici une façon de le faire. Il trouve d'abord toutes les dates de biopsie dans l'intervalle de la date de laboratoire actuelle, puis trouve la biopsie la plus proche de la date de laboratoire actuelle à partir de la biopsie trouvée.
dt = Current Data Table();
x = .;
Tx = :Tx#;
theRows = dt << get rows where( Tx == :Tx# & :Bx Date >= :Lab Date - In Days( 90 ) & :Bx Date <= :Lab Date + In Days( 90 ) );
If( N Rows( theRows ) > 0,
If( N Rows( theRows ) == 1,
x = :Bx Date[theRows[1]],
x = :Bx Date[theRows[1]];
For( i = 2, i <= N Rows( theRows ), i++,
If( Abs( :Bx Date[theRows[i]] - :Lab Date ) < Abs( x - :Lab Date ),
x = :Bx Date[theRows[i]]
)
);
)
);
x;Re: formule aide!Voici une approche légèrement différente de celle @txnelson . Plutôt que de renseigner la colonne avec les valeurs de date, la formule indique si la date du laboratoire est dans les 3 mois suivant la date de la biopsie. Il utilise cette approche car certaines des dates de laboratoire sont tombées dans les 3 mois de plus d'une date de biopsie.
dt = Current Data Table();
currentPatientId = :Tx#;
latestBxDates = :Bx Date[dt << get rows where(
!Is Missing( :Bx Date ) & currentPatientId == :Tx#
)];
nDays = In Days( 90 );
Any( :Lab Date - nDays < latestBxDates < :Lab Date + nDays );
Re: formule aide!Merci pour votre réponse rapide. Si j'applique votre formule, j'obtiens ce qui suit…. (Voir capture d'écran). Malheureusement, les dates dans la nouvelle «colonne 6» dépassent la date Bx… ..c'est donc pas idéal, car ma question est de savoir comment le niveau de traitement menant à la biopsie a-t-il un effet sur le résultat de la biopsie? Existe-t-il un moyen de modifier cela afin qu'au moment de la biopsie, la date de la colonne 6 devienne la date de la prochaine biopsie à partir de la colonne Date Bx?
Merci, désolé de vous déranger avec ça.
Re: formule aide!La clé de la formule est le choix des dates de biopsie à examiner. Si vous ne souhaitez pas examiner une date de biopsie postérieure à la date de laboratoire actuelle, il suffit de modifier les critères de sélection
dt = Current Data Table();
x = .;
Tx = :Tx#;
theRows = dt << get rows where( Tx == :Tx# & :Bx Date >= :Lab Date - In Days( 90 ) & :Bx Date <= :Lab Date );
If( N Rows( theRows ) > 0,
If( N Rows( theRows ) == 1,
x = :Bx Date[theRows[1]],
x = :Bx Date[theRows[1]];
For( i = 2, i <= N Rows( theRows ), i++,
If( Abs( :Bx Date[theRows[i]] - :Lab Date ) < Abs( x - :Lab Date ),
x = :Bx Date[theRows[i]]
)
);
)
);
x;Re: formule aide!salut @ cjw0 ,
Compte tenu de vos critères reformulés, je pense que cette formule devient beaucoup plus simple si vous triez le tableau par ordre croissant de Tx # et par date de laboratoire décroissante.

Créez ensuite une nouvelle colonne de formule avec les éléments suivants:
If(
Row() == 1 | :Lab Date == :Bx Date | :Tx# != Lag( :Tx# ), :Bx Date,
Is Missing( :Bx Date ) & Lag( :Column 6 ) - :Lab Date <= In Days( 90 ), Lag( :Column 6 )
)
J'espère que cela t'aides.
Re: formule aide!Cet email et / ou tous les documents de cette transmission sont destinés au (x) destinataire (s) uniquement et peuvent contenir des informations confidentielles ou confidentielles. Toute utilisation, divulgation, distribution, copie ou diffusion non autorisée est strictement interdite. Si vous recevez cette transmission par erreur, veuillez en informer immédiatement l'expéditeur et renvoyer l'original.
This email and all document in this transmission is available to a person is one is at a person. Il peut contenir des informations privilégiées ou confidentielles. Toute utilisation, divulgation, distribution, copie, ou diffusion non autorisée est strictement défendue. Si vous êtes le destinataire du message, s'il vous plaît, envoyez-le immédiatement.formule aide!J'utilise JMP® Pro 14.2.0
Je n'ai pas beaucoup d'expérience dans la rédaction de formules JMP. Ce que j'essaie de faire est de comparer les niveaux moyens de médicaments pour les patients ayant subi une biopsie. Les biopsies se déroulent à des intervalles de temps irréguliers. Par conséquent, la plupart des cellules de la colonne Date Bx sont vierges (aucune biopsie n’a eu lieu à cette date, mais leur niveau de médicament a été testé). Si je pouvais écrire une formule pour étiqueter les cellules dans les 3 mois suivant une date Bx donnée, je pourrais alors utiliser cette colonne pour filtrer uniquement les données qui se trouvent dans les 3 mois suivant une date de biopsie et commencer à faire des statistiques. Dans l'idéal, la formule devrait également d'abord s'assurer que les niveaux de médicament proviennent du même patient (Tx # se rapportent à des patients individuels).
Merci beaucoup pour votre aide