Cómo llenar/reemplazar texto entre dos celdas, según valores específicos en esas dos celdasHola todos,
Estoy buscando llenar/reemplazar valores de celda entre dos celdas según el patrón/texto en esas dos celdas. Por favor, eche un vistazo a la imagen y los datos adjuntos.
Cualquier ayuda, gracias, - HSS

secuencias de comandosRe: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasUnas cuantas preguntas:
- ¿Los activadores de la columna Código de estado actual son estáticos o dinámicos?
- ¿Está buscando una solución GUI o una solución de secuencias de comandos?
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasHola Jed,
Pregunta: ¿Los activadores de la columna Código de estado actual son estáticos o dinámicos?
Respuesta- Dinámico.
Pregunta: ¿Está buscando una solución GUI o una solución de secuencias de comandos?
Respuesta: secuencias de comandos.
Gracias
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasHola @HSS ,
¿Puede proporcionar un ejemplo de cómo se debe llenar la columna vacía? Parece que desea llenar las celdas vacías en la columna Device_State con algún tipo de texto, pero no estaba claro en su imagen cuál debería ser el texto. Además, parece que desea que el texto cambie según la configuración actual aplicada, ya sea 0 amperios, 0,0001 amperios, etc. ¿Es correcto?
No me queda claro cómo desea que la información en la columna Current_State_Code influya en el texto que ingresa en la columna Device_State, si es que ese es el caso.
¡Gracias!,
SD
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdas
Dinámica de qué manera? Dio un ejemplo, por lo que es difícil pensar en una solución que cubra los cambios.
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasHola,
Creé una columna "Required-Current_State_Code" - 4ta columna en la tabla de datos o imagen.
Creé una tercera columna usando el comando "Contiene ()". Esto puede proporcionar el valor inicial y final de las celdas vacías.
IF( Contiene( :Current_State_Code, "amp" ), :Required-Current_State_Code = :Current_State_Code, )
Y luego complete los valores que faltan. Como Llenar "Inicialización" entre 'A = 0 amp' y 'B = 0.0001 amp' y así sucesivamente. Estos valores de llenado (Inicialización, Rampa, Calor, etc.) provienen de otra tabla. Pero el número de filas entre 'A = 0 amperios' y 'B = 0,0001 amperios' no son fijos, infectar este valor actual tampoco es fijo, por ejemplo Puede ser 'B = 0,01 amperios'. Solo esto es que debería tener 'amp' en él.
Espero que esto ayude.
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasMedios dinámicos -
Número de filas intermedias entre 'A = 0 amperios' y 'B = 0,0001 amperios'.
De hecho, 'A = 0 amperios' y 'B = 0,0001 amperios' tampoco son fijos, puede ser 'AA = 0 amperios' y 'BB = 0,8 amperios' Lo único es que necesitamos completar los valores entre dos celdas que contienen ' amperio'. El valor que necesitamos llenar proviene de otra tabla.
En el conjunto de datos dado,
Complete "Inicialización" entre 'A = 0 amp' y 'B = 0.0001 amp'
Rellene "Rampa" entre 'B = 0,0001 amperios' y 'C = 0,001 amperios'
y así.
Espero que esto sea de ayuda.
Gracias
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasSolo en base a los datos de ejemplo proporcionados, no necesitamos saber entre ellos, solo el punto de partida. Porque no sabemos exactamente cómo definir Inicialización y así sucesivamente, este ejemplo no usará esos, sino números de fila para Device_States
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample_Data.jmp");
state_rows = Loc(dt[0, "Device_State"], "Applied_Current");
states_list = Transform Each({val}, As List(state_rows), Char(val));
/* we don't know how to define values which are to be mapped so we will just use row numbers */
current_states = Associative Array(dt[state_rows, "Current_State_Code"], states_list);
new_col = dt << New Column("State", Character, Nominal);
new_col << Set Each Value(
As Constant(
state = "";
ret_val = "";
);
If(:Device_State == "Applied_Current",
ret_val = :Current_State_Code;
state = current_states[ret_val];
,
ret_val = state;
);
ret_val;
);

Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdasAlgo como esto podría funcionar, si lo entiendo correctamente. Necesitaría cambiar la lista en la línea 3 para que sea la lista correcta cada vez, y la sección Probar está allí porque el bucle actualmente no sabe qué hacer con la última agrupación. Si este es el enfoque correcto, podría eliminar la necesidad de la sección Probar con algunos condicionales mejores. Script a continuación para trabajar con su tabla de datos de muestra:
dt = Data Table( "Sample_Data" );
lstStates = {"Initialization", "Ramp", "Heat", "Other"};
lstLocs = dt << Get Rows Where( Contains( :Current_State_Code, "amp" ) );
Try(
For Each( {i, j}, lstLocs,
For Each Row(
dt,
If( (Row() > lstLocs[j] & Row() < lstLocs[j + 1]),
:Current_State_Code = lstStates[j];
)
)
)
);
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdas@Jed_Campbell
Perdón por responder tarde, estaba de permiso, sí, esto funcionará para mí.
Gracias, HSS
Re: Cómo llenar/reemplazar texto entre dos celdas, basado en valores específicos en esas dos celdas@jthi
Disculpa la tardanza en contestar, estaba de baja. Esto parece una forma más generalizada de hacerlo. Intentaré implementar algo de esta manera, o usaré @Jed_Campbell la solución de .
Gracias, HSS