Sélection de lignes basée sur plusieurs colonnes et plusieurs critères<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut les gars,
J'ai lu les discussions disponibles sur la sélection de lignes mais je ne peux toujours pas compiler une formule pour accomplir ce dont j'ai besoin (désolé - je suis encore TRÈS inexpérimenté ..).
J'ai un tableau qui ressemble à ceci :
| La personne | Composé | Dose | Unités |
| Forgeron | Aspirine | 200 | mg |
| Forgeron | Aspirine | 150 | mg |
| Jones | Gabapentine | 20 | ug |
| Jones | Gabapentine | 30 | ug |
| Jones | NyQuil | 60 | mL |
| Édison | Motrin | 600 | mg |
| Édison | Motrin | 600 | mg |
Pour chaque personne, je dois regarder la colonne Composé et pour chaque Composé, puis regarder les doses et choisir la ligne avec la dose la plus élevée. Si une personne avait utilisé deux composés, j'ai besoin de faire une évaluation de dose pour seulement une comp avec plusieurs doses. Donc, en parcourant ce tableau, je devrais obtenir un nouveau tableau comme ci-dessous:
| La personne | Composé | Dose | Unités |
| Forgeron | Aspirine | 200 | mg |
| Jones | Gabapentine | 30 | ug |
| Jones | NyQuil | 60 | mL |
| Édison | Motrin | 600 | mg |
Puis-je avoir une aide s'il vous plait? Sera très apprécié !!!!!
Re : Sélection de lignes basée sur plusieurs colonnes et plusieurs critèresMerci les gars!
J'ai essayé les trois solutions - et j'ai obtenu la table que je voulais.
C'est beaucoup plus simple que je ne le pensais - et j'adore les fonctions de résumé et de tabulation !!
Merci encore
Tania
Re : Sélection de lignes basée sur plusieurs colonnes et plusieurs critèresByron est correct. J'ai été un peu trop rapide et j'ai oublié que si deux personnes en séquence prennent le même composé, mon état n'attrapera pas le premier.
Voici une formule corrigée et un tableau de données.
Selected State( :Compound != :Compound[Row() + 1] | :Person != :Person[Row() + 1] )

Cette fois, il sélectionne la ligne si le composé ou la personne ne correspond pas à la ligne suivante.
Re : Sélection de lignes basée sur plusieurs colonnes et plusieurs critèresJe suis à l'ancienne et ma première impulsion est d'utiliser l'ancienne approche Tables> Résumé qui est très similaire à l'utilisation de Tabuler.
1. Tableaux > Résumé
2. Faites glisser Personne, puis Composé dans la zone Groupe
3. Cliquez sur Dose, puis cliquez sur le bouton Statistiques et sélectionnez Max
4. Cliquez sur OK
ou sous forme de script :
dt = table de données actuelle();
dt << Résumé( Groupe( :Personne, :Composé ), Max( :Dose ) )
Michael
Re : Sélection de lignes basée sur plusieurs colonnes et plusieurs critèresIl semble que la logique de sélection des lignes signalées doive être un peu plus précise ?
Si( :Personne == Retard( :Personne, 1 ) & :Composé == Retard( :Composé, 1 ), 0, 1)
Essayez d'exécuter ce script sur le tableau des doses dans le message de Jeff, puis exécutez d'abord le script de tri, suivi du script de sous-ensemble.
dt=table de données actuelle();
dt<
By( :Person, :Compound, :Dose ), Order( Croissant, Croissant, Croissant )););
dt<
dt << Subset( Output Table( "Subset of dose bw" ), Selected Rows( 0 ), Rows( [1, 3, 5, 6] ), Selected columns only( 0 )););
dt<
Numérique, Nominal, Format( "Meilleur", 12 ),
Formule( Si( :Personne == Retard( :Personne, 1 ) & :Composé == Retard( :Composé, 1 ),
0, 1 ) ));
Re : Sélection de lignes basée sur plusieurs colonnes et plusieurs critèresPMroz a une bonne solution.
En voici un autre.
Triez votre tableau par Nom, Composé, (croissant) Dose.
Créez ensuite un Colonne État de la ligne ( Cols -> Nouvelle colonne ).

Et ajouter un Formule .

La formule devrait être :
Selected State( :Compound != :Compound[Row() + 1] )
Dans l'éditeur de formule, cela ressemble à ceci :

Cela sélectionnera toute ligne où le nom du composé est différent du nom du composé dans la ligne suivante. Étant donné que le tableau est trié par personne, composé et dose, ces lignes représenteront la dose maximale pour chaque personne.
Vous pouvez ensuite copier ces sélections dans la zone d'état de ligne active à l'aide du menu contextuel à côté du nom de la colonne d'état de ligne.

Les lignes seront sélectionnées et vous pourrez utiliser Tableaux->Sous-ensemble pour obtenir une nouvelle table de données avec uniquement les lignes sélectionnées.
J'ai joint un tableau de données qui le montre.
-Jeff
Re : Sélection de ligne basée sur plusieurs colonnes et plusieurs critèresVous pouvez le faire avec un tableau :
| La personne | Composé | Max |
| Édison | Motrin | 600 |
| Jones | Gabapentine | 30 |
| NyQuil | 60 |
| Forgeron | Aspirine | 200 |
Cliquer sur Analyser > Tabuler (JMP 11) ou Tableaux > Tabuler (JMP 10, 9, 8)
Traîne La personne à la zone de dépôt pour les lignes.
Traîne Composé juste à droite de La personne
Traîne Dose au dessus de N
Traîne Max au dessus de Somme
Cliquez sur Fait
Cliquez sur le petit triangle rouge et sélectionnez Transformer en tableau de données
Vous devrez peut-être normaliser les unités si c'est une considération.