JSL 從另一個列字元腳本中的元件建立新列假設我有輸入列並希望根據其內容建立新列。 輸入列總是總共有 8 個斜杠,如下所示。 然而,有時它們之間會存在不同長度的實際數據。 因此... 我想在新列中指示何時存在帶有簡單“Y”的數據,而所有其他位置在大量行上都將是“N”。
輸入列 Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
////a/b/// NNNNYYNNN
//////// YNNNNNNNNNN
品質和工藝工程回覆:JSL 從另一個列字元腳本中的元件建立新列非常感謝! 以及所有其他提供幫助的人。 Formula2 成功了。
回覆:JSL 從另一個列字元腳本中的元件建立新列但是,要在每種情況下返回 8 個字符,您可以使用另一個公式,請參閱該表中的公式 2:
New Table( "Test 3",
Add Rows( 4 ),
New Column( "Input Column",
Character,
"Nominal",
Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} )
),
New Column( "Formula",
Character,
"Nominal",
Formula(
Regex(
Regex(
Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ),
"[^/]",
"Y",
GLOBALREPLACE
),
"/",
"N",
GLOBALREPLACE
)
),
Set Display Width( 246 )
),
New Column( "Formula2",
Character,
"None",
Formula(
item_lst = Words( Substitute( :Input Column, "/", "/;" ), ";" );
result_str = "";
For( i = 1, i <= N Items( item_lst ), i++,
If( item_lst[i] == "/",
result_str = result_str || "N",
result_str = result_str || "Y"
)
);
result_str;
),
Set Selected,
Set Display Width( 394 )
)
)回覆:JSL 從另一個列字元腳本中的元件建立新列您可以新增另一個正規表示式,將多個字元替換為一個:
Names Default To Here( 1 );
dt = New Table( "Test",
Add Rows( 4 ),
New Column( "Input Column", Character, "Nominal", Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} ) ),
New Column( "Formula",
Character,
"Nominal",
Formula( Regex( Regex( Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ), "[^/]", "Y", GLOBALREPLACE ), "/", "N", GLOBALREPLACE ) ),
Set Selected,
Set Display Width( 246 )
)
);回覆:JSL 從另一個列字元腳本中的元件建立新列謝謝回覆。 不熟悉這個功能,它很有用/有幫助。 這會處理斜杠,但會為字串中的每個字母提供一個“Y”。 我只想要一個“Y”來表示斜線之間的所有字元。回覆:JSL 從另一個列字元腳本中的元件建立新列您可以在公式中使用雙正規表示式:
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
一種正規表示式將“/”之外的所有內容替換為“Y”,另一種正規表示式則將“/”替換為“N”。