Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?Die Voraussetzungen für die Berechnung mit den Daten von „Big Class.jmp“ und Formel sind wie folgt:
Fügen Sie die Spalte "row6" hinzu und finden Sie die Mindesthöhe von Zeile 10 bis zu 6 Zeilen;
Fügen Sie die Spalte "row7" hinzu und finden Sie den Mindestwert der Höhenspalte ab Zeile 10 und bis zu 7 Zeilen;
...
Wie finde ich das Ergebnis von "row6" -- "row9" direkt mit der Speicher-Array-Methode?
Danke!
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>
SkripterstellungBetreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?Da meine Englischkenntnisse begrenzt sind, kann ich nur fertige Beispiele als Referenz verwenden.
Die Antwort findet sich in diesem Beispiel.Ersetzen von Matrixwerten
Danke Experten!
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?Meine eigentliche Rechnung lautet:
1. Berechnen Sie den Mindestwert gemäß den oben genannten Anforderungen.
2. Berechnen Sie den Maximalwert nach dem gleichen Prinzip.
3. Geben Sie jeweils den maximalen/minimalen Wert der Kategorien 6, 7, 8 und 9 ein.
4. Wählen Sie den Mindestwert der vier Verhältnisse aus
Dies gibt das minimale Verhältnis jeder Zeile zur Tabelle aus. Andere Zwischendaten werden nicht ausgegeben.

Ich habe den Code in Excels VBA geschrieben.
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
Wie ändere ich dieses VBA in JSL?
Danke!
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?Danke Jim!
Es scheint, dass diese Methode nicht die vollständige Operation des Speicherarrays ist.
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?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]);
);
Sie müssen den Skriptleitfaden lesen, damit Sie diese Probleme selbst lösen können.
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher abgerufen werden?Wenn ich das richtig verstehe, möchten Sie Ergebnisse für row6 bis row9 direkt in Arrays erhalten, ohne Formeln zu verwenden?
Unten ist ein Beispiel für row6 mit For Each Row mit Liste und der gleichen Berechnung wie die Formel für Spalte 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>