JSL Création d'une nouvelle colonne à partir de composants dans une autre colonne Script de caractèresSupposons que j'ai une colonne d'entrée et que je souhaite créer une nouvelle colonne en fonction de son contenu. La colonne d'entrée aura toujours un total de 8 barres obliques comme ci-dessous. Cependant, il y aura parfois des données réelles de différentes longueurs entre eux. Ainsi... Je veux indiquer dans une nouvelle colonne quand il y a des données avec un simple «Y» et que tous les autres endroits seraient «N» sur un grand nombre de lignes.
Colonne d'entrée Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
//// a / b /// NNNNYYNNN
a //////// YNNNNNNNN
Tableau de donnéesScriptingRe: JSL Création d'une nouvelle colonne à partir de composants dans une autre colonne Script de caractèresVous pouvez utiliser une double regex dans une formule:
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
Une regex pour remplacer tout ce qui n'est pas "/" par "Y" et une autre pour remplacer "/" par "N".
Re: JSL Création d'une nouvelle colonne à partir de composants dans une autre colonne Script de caractèresMerci pour la réponse. Je ne connaissais pas cette fonction et elle est utile / utile. Cela prend en charge les barres obliques mais me donne un «Y» pour chaque lettre de la chaîne. Je veux seulement un «Y» pour tous les caractères entre les barres obliques.Re: JSL Création d'une nouvelle colonne à partir de composants dans une autre colonne Script de caractèresVous pouvez ajouter juste une autre expression régulière, qui remplace de nombreux caractères par un:
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 )
)
);Re: JSL Création d'une nouvelle colonne à partir de composants dans une autre colonne Script de caractèresCependant, pour renvoyer 8 caractères dans chaque cas, vous pouvez utiliser une autre formule, voir formule2 dans ce tableau:
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 )
)
)