Rang uniqueJe veux calculer une nouvelle colonne pour classer une colonne de manière unique. Vous trouverez ci-dessous l'exemple de sortie que je souhaite obtenir. Mais l'utilisation de la formule de classement JSL ne m'aide pas à atteindre ce que je veux. Quelqu'un peut-il me conseiller s'il vous plaît?
La formule que j'utilise est Col Rank(:Label)
| Étiquette | Rang | Ce que je veux |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,max | 1 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,max | 2 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,max | 3 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,max | 4 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,max | 5 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,max | 6 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,max | sept | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,max | 8 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,max | 9 | 3 |
ScriptRe : Rang uniqueMerci Jim et MS. Cela fonctionne avec brio !
Re : Rang uniqueSi vous voulez une formule de colonne, cela devrait fonctionner. Indépendant du tri.
Local( {L = Associative Array( :Label ) << get keys}, Loc( L, :Label ) )
La même approche pourrait être utilisée dans JSL sans formule de colonne.
dt = Current Data Table();
dt << New Column( "Rank Unique", continuous );
L = Associative Array( :Label ) << get keys;
For Each Row( :Rank Unique = Loc( L, :Label ) );
Re : Rang uniquedt = current data table();
dt:Rank << delete formula;
Re : Rang uniqueSalut Jim,
Merci du conseil. Pour la solution #2. Comment supprimer la formule en utilisant JSL au lieu de le faire manuellement ?Re : Rang uniqueIl y a plusieurs façons de le faire .... (à laquelle je peux penser, si tôt le matin)
- Utiliser un tableau récapitulatif pour créer les rangs
- Tableaux d'exécution==>Résumé
- Grouper par votre colonne Libellé
- En supposant que le tableau de données de sortie est trié de bas en haut, créez une nouvelle colonne appelée "Rank" et donnez-lui la formule ........ Row ()
- Exécuter les tables ==> Mettre à jour pour joindre la table récapitulative à la table d'origine, correspondant à la colonne Libellé
- Créer une nouvelle colonne de formule de classement
- Trier les données par étiquette
- Créez une nouvelle colonne appelée Rang avec la formule
If( Row() == 1,
count = 1,
If( :Label != Lag( :Label ),
count
++)
);
count;
- Assurez-vous d'aller dans les informations sur la colonne et de supprimer le après la création de la colonne.La raison en est que puisque la formule est basée sur l'ordre des données et l'exhaustivité des données, toute modification des données (tri, etc.) réexécutera la formule et modifiera éventuellement le classement.