Usando Pat Match en LoopHola,
Estoy tratando de escribir un programa para tomar una cadena de entrada, encontrar una palabra clave dentro de la cadena completa y crear una nueva columna con solo la abreviatura. El script debe iterar sobre todas las filas de una sola columna. Mi código genera un error y creo que es la sintaxis de mi bucle, pero parece que no puedo averiguar dónde está el error. Esto es lo que tengo:
For Each Row(
:prodFam = If(
Pat Match(:prodGroup, "aleutian"),
"ALEUTIAN",
Pat Match(:prodGroup, "ari"),
"ARI",
Pat Match(:prodGroup, "blue"),
"BLUE RIDGE",
y el bucle continúa. ¡Cualquier ayuda es muy apreciada, gracias!
Re: Usando Pat Match en LoopComo dice, la función Contiene devuelve un valor numérico (la posición en la que está contenido el elemento). Sin embargo, puede tratar el valor como booleano: 0 = falso, de lo contrario verdadero, por lo que puede escribir el código que trata la función Contiene como booleano:
Si (Contiene (...),
// hacer algo
)
Re: Usando Pat Match en LoopNecesitas una respuesta booleana para tu Si() Funcionar para funcionar. Así es como el resultado de Contiene () Se interpretará como ya he explicado.
Re: Usando Pat Match en LoopEl problema con el uso de la función Contains () es que devuelve un valor numérico cuando realmente solo necesito un valor booleano verdadero o falso. Supongo que podría usar el valor que devuelve para indexar una subcadena, pero al final eso parece más líneas de código para algo que se podría hacer usando la coincidencia de pat, ¿no es así? ¡Gracias por la respuesta!
Re: Usando Pat Match en LoopEn primer lugar, si este código no forma parte de un script más grande, entonces puede ingresar como una fórmula de columna. El argumento en el Por cada fila() La función es la misma que la fórmula de columna.
Segundo, mientras que los patrones de cadenas de caracteres son muy útiles, creo que podrías usar Contiene (cadena de prueba, cadena de destino) en este caso. No está buscando un patrón sino una cadena literal (palabra). Contiene () devuelve la ubicación si se encuentra o cero si no se encuentra. JMP interpreta el cero como falso y el no cero como verdadero, por lo que su lógica implementada con el Si() Las funciones se mantienen como están.
Re: Usando Pat Match en LoopAsí que me di cuenta de que una vez que creas una referencia a una columna, ya no usas dos puntos para indicar que es un nombre de columna. Sin embargo, mi script ahora se ejecuta sin rellenar la tabla con las abreviaturas. ¿Todavía me falta algo? ¡Gracias!