Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Les exigences pour le calcul avec les données de "Big Class.jmp" et la formule sont les suivantes:
Ajoutez la colonne «row6» et trouvez la hauteur minimale de la ligne 10 et jusqu'à 6 lignes;
Ajoutez la colonne "row7" et trouvez la valeur minimale de la colonne de hauteur à partir de la ligne 10 et jusqu'à 7 lignes;
...
Comment trouver le résultat de "row6" - "row9" directement en utilisant la méthode du tableau de mémoire?
Merci!
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<NEW column="">9,min(height[Index(Row()-6,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-7,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-8,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-9,Row())])));dt<<RUN formulas=""></RUN></RUN></RUN></RUN></NEW>
ScriptingRe: Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Si je comprends bien, vous souhaitez obtenir des résultats pour les lignes 6 à 9 directement dans les tableaux sans utiliser de formules?
Vous trouverez ci-dessous un exemple pour la ligne6 utilisant For Each Row with list et le même calcul que la formule pour la colonne row6.
Names Default To Here(1);
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<NEW column="">9,
min(height[Index(Row()-6,Row())])
)
);
);
dt<<RUN formulas="">9,
min(:height[Index(Row()-6,Row())])
)
)
);
show(row6_list);
dt << new column("row6_l", << set values(row6_list));</RUN></NEW>
Re: Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Names Default To Here( 1 );
dt = current data table();
theHeight = dt:height << get values;
row6=shape([.],40);
row7=shape([.],40);
row8=shape([.],40);
row9=shape([.],40);
row10=shape([.],40);
For(i=11,i<=N Rows(theHeight),i++,
row6[i]=Min(theHeight[i-6::i]);
row7[i]=Min(theHeight[i-7::i]);
row8[i]=Min(theHeight[i-8::i]);
row9[i]=Min(theHeight[i-9::i]);
row10[i]=Min(theHeight[i-10::i]);
);
Vous devez lire le Guide de création de scripts pour pouvoir commencer à résoudre ces problèmes par vous-même.
Re: Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Merci Jim!
Il semble que cette méthode ne soit pas l'opération de matrice de mémoire complète.
Re: Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Mon calcul réel est:
1. Calculez la valeur minimale en fonction des exigences ci-dessus.
2. Calculez la valeur maximale selon le même principe.
3. Mettez la valeur maximale / minimale des catégories 6, 7, 8 et 9 respectivement.
4. Sélectionnez la valeur minimale des quatre ratios
Ceci génère le rapport minimum de chaque ligne à la table. Les autres données intermédiaires ne sont pas sorties.

J'ai écrit le code dans le VBA d'Excel.
Sub vba()
ar = Range("d2:d" & Cells(Rows.Count, "d").End(3).Row)
ReDim br(1 To UBound(ar), 1 To 8): ReDim cr(1 To UBound(ar), 1 To 1)
For r = 10 To UBound(ar)
n = 99: m = 0
For c = 0 To 8
If ar(r - c, 1) < n Then n = ar(r - c, 1)
If ar(r - c, 1) > m Then m = ar(r - c, 1)
If c > 4 Then br(r, c - 4) = n: br(r, c) = m
Next
Next
Cells(2, "G").Resize(UBound(br), UBound(br, 2)) = br
For r = 10 To UBound(ar)
For c = 1 To 4
If c = 1 Then
cr(r, 1) = br(r, c + 4) / br(r, c)
Else
If br(r, c + 4) / br(r, c) < cr(r, 1) Then cr(r, 1) = br(r, c + 4) / br(r, c)
End If
Next
Next
Cells(2, "f").Resize(UBound(br), 1) = cr
End Sub
Comment changer ce VBA en JSL?
Merci!
Re: Comment obtenir le résultat de la formule calculée avec plusieurs colonnes directement à partir du calcul d'un tableau en mémoire?Comme ma capacité de lecture en anglais est limitée, je ne peux utiliser que des exemples prêts à l'emploi pour référence.
La réponse se trouve dans cet exemple.Remplacement des valeurs de matrice
Merci les experts!