Buscar nombre específico por IFHola
He configurado una nueva columna " Nombre del PIN "
y me gustaría agregar un número de PIN
Significa que si contiene gp_0 en la columna " Nombre de la prueba " debería ser GP_0
o si tienes contiene gp_1 en el nombre de la prueba debería estar GP_1 en columna "Nombre del PIN"
o si tienes contiene gp_11 en el nombre de la prueba debería estar GP_11 en la columna "Nombre del PIN"
yo escribí el guión
Columna(dt,"PIN_NAME") << Fórmula ( Si ( Contiene( :TEST_NAME, "gp_0") ), "GP_0",
Si( Contiene( :TEST_NAME, "gp_1"), "GP_1",
Si( Contiene( :TEST_NAME, "gp_10"), "GP_10",
Si( Contiene( :TEST_NAME, "gp_11"), "GP_11",
If( Contiene( :TEST_NAME, "gp_12" ), "GP_12" ))))));
pero veo que la fórmula agrega GP_1 incluso si tengo gp_11 en el nombre de la prueba.
Entonces mi pregunta es, ¿cómo puedo establecer exactamente el nombre para la búsqueda?

Automatización y secuencias de comandosventanasRe: Buscar nombre específico por IFJMP finalizará el ciclo If() tan pronto como se cumpla una condición.Técnicamente, "gp_11" contiene "gp_1"....
Podrías reescribir el bucle If() al revés, como
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"
);
Pero eso va a resultar muy largo y engorroso si tienes que comprobar muchos médicos de cabecera.Quizás algo como esto funcione para usted.
Uppercase( Regex( :TEST_NAME, "io_(gp_\d+)", "\1", IGNORE CASE ) );
Busca "io_" seguido de "gp_" y cualquier número de dígitos."IGNORAR CASO" está activado para que "GP" también satisfaga la expresión regular.Si ese no es el comportamiento que desea, simplemente omita esa parte.
Re: Buscar nombre específico por IFTrabajé este código y parece funcionar, y funciona bastante rápido.
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)),"[]")
);