JSL Création d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneSupposons que j'ai une colonne d'entrée et que je souhaite créer une nouvelle colonne en fonction de son contenu. La colonne de saisie aura toujours un total de 8 barres obliques comme ci-dessous. Cependant, il y aura parfois des données réelles de longueurs variables entre elles. Ainsi... Je souhaite indiquer dans une nouvelle colonne lorsqu'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
//////// NNNNNNNN
//////// NNNNNNNN
////a/b/// NNNNYYNNN
a//////// YNNNNNNNN
Ingénierie Qualité et ProcédésRe : Création JSL d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneTrès grand merci ! Et à tous ceux qui ont aidé. La Formula2 a réussi.
Re : Création JSL d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneCependant, 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 )
)
)Re : Création JSL d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneVous pouvez ajouter simplement une autre expression régulière, qui remplace plusieurs 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 : Création JSL d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneMerci 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 : Création JSL d'une nouvelle colonne à partir de composants dans un autre script de caractères de colonneVous pouvez utiliser une double regex dans une formule :
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
Une expression régulière pour remplacer tout ce qui n'est pas "/" par "Y" et une autre pour remplacer "/" par "N".