JSL Creazione di una nuova colonna dai componenti in un'altra colonna Scripting dei caratteriSupponiamo di avere una colonna di input e di voler creare una nuova colonna in base al suo contenuto. La colonna di input avrà sempre un totale di 8 barre come di seguito. Tuttavia, a volte ci saranno dati effettivi di diversa lunghezza tra loro. Così... Voglio indicare in una nuova colonna quando sono presenti dati con una semplice "Y" e tutti gli altri posti sarebbero "N" su un numero elevato di righe.
Colonna di input Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
////a/b/// NNNNYYNNN
a//////// YNNNNNNNN
Ingegneria della qualità e dei processiRi: JSL Creazione di una nuova colonna da componenti in un'altra colonna Scripting di caratteriGrazie mille! E a tutti gli altri che hanno aiutato. La Formula2 ce l'ha fatta.
Ri: JSL Creazione di una nuova colonna da componenti in un'altra colonna Scripting di caratteriTuttavia, per restituire 8 caratteri in ciascun caso è possibile utilizzare un'altra formula, vedere la formula2 nella tabella:
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 )
)
)Ri: JSL Creazione di una nuova colonna da componenti in un'altra colonna Scripting di caratteriPuoi aggiungere solo un'altra espressione regolare, che sostituisce molti caratteri con uno:
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 )
)
);Ri: JSL Creazione di una nuova colonna da componenti in un'altra colonna Scripting di caratteriGrazie per la risposta. Non avevo familiarità con questa funzione ed è utile/utile. Questo si prende cura delle barre ma mi dà una "Y" per ogni lettera nella stringa. Voglio solo una "Y" per tutti i caratteri tra le barre.Ri: JSL Creazione di una nuova colonna da componenti in un'altra colonna Scripting di caratteriPotresti usare la doppia espressione regolare in una formula:
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
Una regex per sostituire tutto ciò che non è "/" con "Y" e un'altra per sostituire "/" con "N".