À moins qu'il n'y ait une vraie raison de conserver les valeurs de date cible en tant que colonne de caractères, je vous suggère de la convertir en colonne de date JMP.
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", format( "ddmonyyyy") );
for each row(
if( :"Time (Months)"n <= 3,
:Target Date =
Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
:Target Date =
Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
)
);

Il est très facile de convertir la sortie ci-dessus en caractère par la modification ci-dessous
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", character );
for each row(
if( :"Time (Months)"n <= 3,
:Target Date = format(
Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
"ddmonyyyy"
),
:Target Date = format(
Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 ),
"ddmonyyyy"
)
)
);

Si le format de sortie doit être exactement comme le format de données d'entrée, ce qui suit sera accompli
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", character );
monthList = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP",
"OCT", "NOV", "DEC"};
for each row(
if( :"Time (Months)"n <= 3,
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
);
:Target Date = Substr( "0", Length( Char( Day( temp ) ) ) ) ||
Char( Day( temp ) ) || "-" || monthList[Month( temp )] || "-" ||
Char( Year( temp ) );
);

Si vous vouliez utiliser une formule plutôt que For Each Row, ce serait pour la formule de la sortie ci-dessus
monthList = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
If( :"Time (Months)"n <= 3,
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
);
Substr( "0", Length( Char( Day( temp ) ) ) ) || Char( Day( temp ) ) || "-" || monthList[Month( temp )] || "-" ||
Char( Year( temp ) );Le tableau ci-joint ajoute 4 jours à votre colonne de date disponible pour obtenir la date cible.Étapes : modifiez le type de données pour la date disponible en numérique/continu avec le format de date approprié ; puis utilisez la fonction Incrément de date pour ajouter 4 jours à la date disponible, enfin modifiez la mise en forme de la colonne de date cible résultante pour qu'elle corresponde à ce que vous avez utilisé dans la colonne de date disponible.
Une note supplémentaire - dans votre exemple, il semble que vous ayez ajouté une semaine (7 jours au lieu de 4).
J'ai un script JSL qui extrait périodiquement les données d'une base de données Access.
La base de données Access contient une colonne de date « Date disponible » avec un jj-Lun-AAAA (par exemple, 12-AVR-2018). Ce que j'essaie de faire, c'est de créer une nouvelle colonne "Date cible" dans JMP qui ajoute x nombre de jours à la date dans "Date disponible" pour chaque ligne.
Par exemple: Dans l'image ci-dessous, la Date cible est égale à Date disponible + 4 jours. J'essaie de calculer automatiquement la date cible en fonction de la date disponible. Le nombre de jours est basé sur la colonne « Durée (mois) ».

C'est ce que j'ai essayé jusqu'à présent, qui ne fonctionne évidemment pas. Je pense que je dois convertir la colonne « Date disponible » en un type de données numérique, puis ajouter le nombre de jours et reconvertir en caractère ?
dt << New Column("Target Date", "Character", "Nominal");
dt << For Each Row(
IF (:"Time (Months)" <= 3, :"Target Date" = :"Available Date" + 4 ),
IF (:"Time (Months)" > 3, :"Target Date" = :"Available Date" + 7 )
);