Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesSalut tout le monde,
Je cherche à remplir/remplacer les valeurs de cellule entre deux cellules en fonction du motif/texte de ces deux cellules. Veuillez consulter l'image et les données ci-jointes.
Toute aide, merci, - HSS

ScriptRe : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesQuelques questions:
- Les déclencheurs de la colonne Code d'état actuel sont-ils statiques ou dynamiques ?
- Vous recherchez une solution graphique ou une solution de script ?
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesSalut Jed,
Questions - Les déclencheurs de la colonne Code d'état actuel sont-ils statiques ou dynamiques ?
Réponse - Dynamique.
Ques - Vous recherchez une solution graphique ou une solution de script ?
Réponse - Script.
Merci
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesSalut @HSS ,
Pouvez-vous donner un exemple de ce avec quoi la colonne vide doit être remplie ? Il semble que vous vouliez remplir les cellules vides de la colonne Device_State avec une sorte de texte, mais il n'était pas clair d'après votre image ce que le texte devrait être. De plus, il semble que vous vouliez que ce texte change en fonction du réglage actuel appliqué, qu'il s'agisse de 0 amp, 0,0001 amp, etc. Est-ce correct ?
Je ne comprends pas comment vous voulez que les informations de la colonne Current_State_Code influencent le texte entrant dans la colonne Device_State, si tel est le cas.
Merci!,
DS
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellules
Dynamique dans quel sens ? Vous avez donné un exemple, il est donc difficile de penser à une solution couvrant les changements.
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesSalut,
J'ai créé une colonne "Required-Current_State_Code" - 4ème colonne dans la table de données ou l'image.
J'ai créé une 3ème colonne en utilisant la commande "Contient()". Cela peut fournir la valeur de début et de fin des cellules vides.
IF( Contient( :Current_State_Code, "amp" ), :Required-Current_State_Code = :Current_State_Code, )
Et puis remplissez les valeurs manquantes. Comme Fill "Initialization" entre 'A = 0 amp' et 'B = 0.0001 amp' et ainsi de suite. Ces valeurs de remplissage (Initialisation, Rampe, Chaleur, etc.) proviennent d'un autre tableau. Mais le nombre de lignes entre 'A = 0 amp' et 'B = 0.0001 amp' n'est pas fixe, infecte cette valeur actuelle n'est pas non plus fixe, par exemple Cela peut être 'B = 0,01 amp' . Seulement c'est qu'il devrait y avoir "amp" dedans.
J'espère que cela vous aidera.
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesMoyens dynamiques -
Nombre de rangées entre 'A = 0 amp' et 'B = 0,0001 amp'.
En fait, 'A = 0 amp' et 'B = 0,0001 amp' ne sont pas non plus fixes, cela peut être 'AA = 0 amp' et 'BB = 0,8 amp' La seule chose est que nous devons remplir les valeurs entre deux cellules qui contiennent ' ampli'. La valeur que nous devons remplir provient d'une autre table.
Dans l'ensemble de données donné,
Remplir "Initialisation" entre 'A = 0 amp' et 'B = 0.0001 amp'
Remplissez "Rampe" entre 'B = 0,0001 amp' et 'C = 0,001 amp'
etc.
J'espère que cela vous aidera.
Merci
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesSur la base des données d'exemple fournies, nous n'avons pas besoin de savoir entre, seul point de départ. Parce que nous ne savons pas exactement comment définir Initialisation et ainsi de suite cet exemple n'utilisera pas ceux-ci mais plutôt les numéros de ligne pour 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 : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellulesQuelque chose comme ça pourrait fonctionner, si je comprends bien. Vous auriez besoin de changer la liste sur la ligne 3 pour être la bonne liste à chaque fois, et la section Try est là parce que la boucle ne sait actuellement pas quoi faire du dernier groupement. Si c'est la bonne approche, vous pouvez supprimer le besoin de la section Try avec de meilleures conditions. Script ci-dessous pour travailler avec votre exemple de tableau de données :
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 : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellules@Jed_Campbell
Désolé pour la réponse tardive, j'étais en congé, oui cela fonctionnera pour moi.
Merci, HSS
Re : Comment remplir/remplacer du texte entre deux cellules, en fonction de valeurs spécifiques dans ces deux cellules@jthi
Désolé pour la réponse tardive j'étais en congé. Cela semble plus généraliser la façon de procéder. Je vais essayer d'implémenter quelque chose de cette manière, ou j'utiliserai @Jed_Campbell la solution.
Merci, HSS