Suchen Sie nach einem bestimmten Namen nach IFHallo
Ich habe eine neue Spalte eingerichtet. Pin-Name "
und möchte eine Nummer mit PIN hinzufügen
Es bedeutet, wenn Sie enthalten gp_0 in der Spalte „ Testname " es sollte sein GP_0
oder wenn Sie enthält gp_1 im Testnamen sollte es so sein GP_1 in Spalte „Pin-Name“
oder wenn Sie enthält gp_11 im Testnamen sollte es so sein GP_11 in Spalte „Pin-Name“
Ich habe das Drehbuch geschrieben
Column(dt,"PIN_NAME") << Formel ( If ( Enthält( :TEST_NAME, "gp_0" ), "GP_0",
If( Enthält( :TEST_NAME, "gp_1" ), "GP_1",
If( Enthält( :TEST_NAME, "gp_10" ), "GP_10",
If( Enthält( :TEST_NAME, "gp_11" ), "GP_11",
If( Enthält( :TEST_NAME, "gp_12" ), "GP_12" ))))));
Aber ich sehe, dass die Formel GP_1 hinzufügt, obwohl ich gp_11 im Testnamen habe.
Meine Frage ist also: Wie kann ich den genauen Namen für die Suche festlegen?

Automatisierung und SkripterstellungWindowsBetreff: Bestimmten Namen nach IF suchenJMP beendet die If()-Schleife, sobald eine Bedingung erfüllt ist.Technisch gesehen enthält „gp_11“ „gp_1“....
Sie könnten die If()-Schleife beispielsweise rückwärts umschreiben
If(
Contains( :TEST_NAME, "gp_12" ), "GP_12",
Contains( :TEST_NAME, "gp_11" ), "GP_11",
Contains( :TEST_NAME, "gp_10" ), "GP_10",
Contains( :TEST_NAME, "gp_1" ), "GP_1"
);
Aber das wird sehr langwierig und umständlich, wenn Sie viele Hausärzte suchen müssen.Vielleicht würde so etwas für Sie funktionieren.
Uppercase( Regex( :TEST_NAME, "io_(gp_\d+)", "\1", IGNORE CASE ) );
Es sucht nach „io_“, gefolgt von „gp_“ und einer beliebigen Anzahl von Ziffern.„IGNORE CASE“ ist aktiviert, damit „GP“ auch die Regex erfüllt.Wenn das nicht das gewünschte Verhalten ist, lassen Sie diesen Teil einfach weg.
Betreff: Bestimmten Namen nach IF suchenIch habe diesen Code ausgearbeitet und er scheint zu funktionieren, und zwar ziemlich schnell
names default to here(1);
dt=current data table();
dt << new column("PIN_NAME", character);
theRows = dt << get rows where( contains(:TEST_NAME,"_gp_"));
for each( {fndRow,i}, theRows,
:PIN_NAME[fndRow] = word(1,uppercase(substr(:TEST_NAME[fndRow],contains(:TEST_NAME[fndRow],"_gp_")+1)),"[]")
);