Triez les colonnes par ordre décroissant et utilisez les 4 plus grandes pour le calculJ'ai un tableau de données et j'ai besoin d'obtenir les 4 premières valeurs les plus grandes d'une plage de colonnes, intitulées "Nozzle #". Ces valeurs de colonne varient selon la variable ou la colonne intitulée « Test # ».

Je dois ensuite appliquer ces valeurs et, dans une nouvelle colonne, calculer l'aire d'un cercle par numéro de test. Étant donné que j'ai une table de données plus grande, j'aimerais soit regrouper les colonnes en utilisant la logique For, If et Contains, soit existe-t-il une approche plus efficace en JSL ?
Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculVeuillez jeter un œil à la première formule que je vous ai donnée.Il crée d'abord une liste de toutes les valeurs des différentes colonnes de la ligne donnée.Il trie ensuite les valeurs et enfin prend les quatre premières valeurs dans une chaîne de caractères.
Si vous ajoutez ce code au dernier code, vous obtiendrez une valeur pour la colonne contenant les 4 premières valeurs les plus grandes.
Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculJe l'ai essayé, code affiché ci-dessous, mais cela me donne toutes les valeurs triées.
theList = {};
For( i = 2, i <= 7, i++,
For Each Row(
Eval( Parse( "Insert Into( theList," || Char( Column( dt, i )[Row()] ) || ")" ) )
)
);
theList = Sort Descending( theList );Cédant,
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 814px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="image.png" style="width: 814px;"><span class="lia-inline-image-display-wrapper" image-alt="image.png" style="width: 814px;"><img src="https://us.v-cdn.net/6038925/uploads/images/21024iC715F1791A69F0B3/image.png" role="button" title="image.png" alt="image.png" /></span></SPAN></SPAN>
Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculEssayez d'utiliser ce formulaire
dt = Current Data Table();
theList = {};
For( i = 2, i <= 7, i++,
Eval( Parse( "Insert Into( theList," || Char( Column( dt, i )[Row()] ) || ")" ) )
);
theList = Sort Descending( theList );Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculJ'ai donc essayé de mettre les colonnes dans une liste en utilisant une boucle for, affichée comme Liste1ère dans le fichier buse_script.jsl. Chaque fois que j'essaie de les trier, seuls les noms de colonnes sont triés et non les valeurs des colonnes. J'ai également essayé d'utiliser le code que vous avez montré et les listes sont affichées comme vides dans le journal ci-dessous.

Mon objectif global ressemblerait à ceci :

(remarque : j'ai saisi manuellement les valeurs de la colonne "Les plus grandes". Puis appliqué la formule ("Le plus grand"/4) ^ 2 pour les colonnes "Zone".)
J'ai joint le tableau de données et mon script ci-dessous. Merci!
Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculVoici un exemple d’une façon de procéder.J'avoue que c'est un peu fou, mais cela devrait vous montrer du JCL qui vous donnera une idée de ce que vous pouvez faire.J'ai effectué le calcul dans une nouvelle colonne du tableau de données que vous avez affiché lors de votre première demande.

Voici la formule que j'ai développée pour la nouvelle colonne
theList = {};
Insert Into( theList, :Nozzle 1 );
Insert Into( theList, :Nozzle 2 );
Insert Into( theList, :Nozzle 3 );
Insert Into( theList, :Nozzle 4 );
Insert Into( theList, :Nozzle 5 );
Insert Into( theList, :Nozzle 6 );
theList = Sort Descending( theList );
theOutput = Char( theList[1] );
theOutput = theOutput || ", " || Char( theList[2] );
theOutput = theOutput || ", " || Char( theList[3] );
theOutput = theOutput || ", " || Char( theList[4] );
theOutput;Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculJe voudrais les 4 premières valeurs de buse les plus élevées par test. Ce serait donc :
18684 = 5,5 5 4 0
18685 = 5 5 4 0,5
18688 = 5,5 5 4 0,5
18689 = 5 5 0,5 0
Re : Trier les colonnes par ordre décroissant et utiliser les 4 plus grandes pour le calculVoulez-vous les 4 premières valeurs les plus grandes dans les colonnes N° de buse pour chaque ligne, ou les 4 premières valeurs les plus grandes pour toutes les lignes pour toutes les colonnes N° de buse ?