Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneSalut tout le monde,
Je dois trouver la valeur maximale dans une colonne (:PMA Counter) après avoir vérifié la condition dans une autre colonne (:Condition). la colonne de condition contient les caractères "Après" et "Avant" pour les différentes lignes.
Je veux choisir ceux qui sont "Après" et trouver le maximum de (:PMA Counter) entre eux.J'utilise déjà le script ci-dessous mais cela ne fonctionne pas et ne me donne que le Max sans tenir compte de la colonne Condition.
dt=Table courante();
dt< dt<ScriptRe : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneExcellente solution
Merci:)Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonne
J'ai créé par erreur la colonne Current PMA Counter en tant que chaîne de caractères, et elle devait être numérique ..... le JSL ci-dessous semble fonctionner
names default to here(1);
dt=current data table();
dt << New Column( "Current PMA Counter",
Formula(
If( Row() == 1,
x = Col Max( If( Contains( :Condition, "After" ), :PMA Counter, . ) )
);
If( Contains( :Condition, "After" ),
y = x,
y = .
);
y;
)
);
Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneVous pouvez voir les données jointes.
Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonnepouvez-vous joindre un exemple de tableau de données auquel vous appliquez cela ?Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneMerci, Jim
il trouve la valeur mais pour une raison quelconque n'apparaît pas dans la colonne. LE compteur PMA actuel est tout videRe : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneVoici quelques versions de la formule (elles ne sont pas testées).Ils diffèrent par ce sur quoi le Col Max est basé
// formula where col max is based upon only rows with "After" in PMA Counter
// and the Col Max only appears in rows where PMA Counter has "After" in it
dt << New Column( "Current PMA Counter",
Character,
Nominal,
Formula(
If( Row() == 1,
x = Col Max( If( Contains( :Condition, "After" ), :PMA Counter, . ) )
);
If( Contains( :Condition, "After" ),
y = x,
y = .
);
y;
)
);
// formula where col max is based upon all rows
// and the Col Max only appears in rows where PMA Counter has "After" in it
dt << New Column( "Current PMA Counter",
Character,
Nominal,
Formula(
If( Row() == 1,
x = Col Max( :PMA Counter )
);
If( Contains( :Condition, "After" ),
y = x,
y = .
);
y;
)
);
Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneJe voulais dire que seules les lignes qui avaient "After" dans la colonne Condition obtiennent la valeur Max dans la colonne Current PMA Counter. Les autres lignes restent vides.Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneJe ne comprends pas ce que vous demandez.Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonnePuis-je avoir le Maximum uniquement dans les lignes liées aux lignes "Après" ?Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneMerci beaucoup Jim
Re : Trouver le maximum d'une colonne en faisant correspondre une autre condition de colonneLa ligne Select n'est pas honorée par la formule.Voici une façon de gérer ce dont vous avez besoin
dt << New Column( "Current PMA Counter",
Character,
Nominal,
Formula( Col Max( If( Contains( :Condition, "After" ), :PMA Counter, . ) ) )
);