JSL Erstellen einer neuen Spalte aus Komponenten in einer anderen Spalte. ZeichenskripterstellungAngenommen, ich habe eine Eingabespalte und möchte basierend auf ihrem Inhalt eine neue Spalte erstellen. Die Eingabespalte enthält immer insgesamt 8 Schrägstriche wie unten. Manchmal liegen jedoch tatsächliche Daten unterschiedlicher Länge dazwischen. Daher... Ich möchte in einer neuen Spalte angeben, wenn es Daten mit einem einfachen „Y“ gibt und alle anderen Stellen über eine große Anzahl von Zeilen „N“ wären.
Eingabespalte Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
////a/b/// NNNNYYNNN
a//////// YNNNNNNNN
Qualitäts- und VerfahrenstechnikBetreff: JSL erstellt eine neue Spalte aus Komponenten in einer anderen Spalte mit ZeichenskriptenGanz großes Dankeschön! Und an alle anderen, die geholfen haben. Die Formel 2 hat es geschafft.
Betreff: JSL erstellt eine neue Spalte aus Komponenten in einer anderen Spalte mit ZeichenskriptenUm jedoch jeweils 8 Zeichen zurückzugeben, können Sie eine andere Formel verwenden, siehe Formel2 in dieser Tabelle:
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 )
)
)Betreff: JSL erstellt eine neue Spalte aus Komponenten in einer anderen Spalte mit ZeichenskriptenSie können einfach einen weiteren regulären Ausdruck hinzufügen, der viele Zeichen durch eins ersetzt:
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 )
)
);Betreff: JSL erstellt eine neue Spalte aus Komponenten in einer anderen Spalte mit ZeichenskriptenDanke für die Antwort. Ich kannte diese Funktion nicht und sie ist nützlich/hilfreich. Dies kümmert sich um die Schrägstriche, gibt mir aber ein „Y“ für jeden Buchstaben in der Zeichenfolge. Ich möchte nur ein „Y“ für alle Zeichen zwischen den Schrägstrichen.Betreff: JSL erstellt eine neue Spalte aus Komponenten in einer anderen Spalte mit ZeichenskriptenSie könnten Double Regex in einer Formel verwenden:
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
Eine Regex, um alles, was nicht „/“ ist, durch „Y“ zu ersetzen, und eine andere, um „/“ durch „N“ zu ersetzen.