除非有真正的理由將目標日期值保留為字符列,否則我建議您將其轉換為 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 )
)
);

通過下面的修改很容易將上面的輸出轉換為字符
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"
)
)
);

如果輸出格式需要與輸入數據格式完全相同,則以下內容將完成
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 ) );
);

如果您想使用公式而不是 For Each Row,這將適用於上述輸出的公式
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 ) );附表將 4 天添加到您的可用日期列以獲得目標日期。步驟:將可用日期的數據類型更改為具有適當日期格式的數字/連續;然後使用 Date Increment 函數將 4 天添加到可用日期,最後更改生成的目標日期列的格式以匹配您在可用日期列中使用的內容。
一個附加說明 - 在您的示例中,看起來您增加了一周(7 天而不是 4 天)。
我有一個 JSL 腳本,可以定期從 Access 資料庫中提取資料。
Access 資料庫包含日期欄位“可用日期”,其中包含 dd-Mon-YYYY(例如, 2018 年 4 月 12 日)格式。 我想要做的是在 JMP 中創建一個新列“目標日期”,為每行的“可用日期”中的日期添加 x 天數。
例如:在下圖中,目標日期等於可用日期 + 4 天。 我正在嘗試根據可用日期自動計算目標日期。 天數基於“時間(月)”列。

這是我到目前為止所嘗試過的,顯然是行不通的。 我想我需要將“可用日期”列轉換為數字資料類型,然後添加天數並轉換回字元?
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 )
);