Rang einzigartigIch möchte eine neue Spalte berechnen, um eine Spalte eindeutig zu ordnen. Unten sind die Beispielausgaben, die ich erreichen möchte. Aber die Verwendung der JSL-Rangformel hilft mir nicht, das zu erreichen, was ich will. Kann mir bitte jemand raten?
Die Formel, die ich verwende, ist Col Rank (: Label)
| Etikett | Rang | Was ich möchte |
| 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 | 7 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,max | 8 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,max | 9 | 3 |
SkripterstellungBetreff: Eindeutiger RangDanke Jim & MS. Es funktioniert hervorragend!
Betreff: Eindeutiger RangWenn Sie eine Spaltenformel wünschen, sollte dies funktionieren. Unabhängig von der Sortierung.
Local( {L = Associative Array( :Label ) << get keys}, Loc( L, :Label ) )
Derselbe Ansatz könnte in JSL ohne Spaltenformel verwendet werden.
dt = Current Data Table();
dt << New Column( "Rank Unique", continuous );
L = Associative Array( :Label ) << get keys;
For Each Row( :Rank Unique = Loc( L, :Label ) );
Betreff: Eindeutiger Rangdt = current data table();
dt:Rank << delete formula;
Betreff: Eindeutiger RangHallo Jim,
Danke für den Rat. Für die Lösung Nr. 2. Wie entferne ich die Formel mit JSL, anstatt es manuell zu tun?Betreff: Eindeutiger RangEs gibt ein paar Möglichkeiten, dies zu tun ... (das fällt mir ein, so früh am Morgen)
- Verwenden Sie eine Übersichtstabelle, um die Ränge zu erstellen
- Führen Sie Tables==>Summary aus
- Gruppieren Sie nach Ihrer Label-Spalte
- Angenommen, die Ausgabedatentabelle ist von niedrig nach hoch sortiert, erstellen Sie eine neue Spalte mit dem Namen „Rang“ und geben Sie ihr die Formel........Row()
- Führen Sie Tables==>Update aus, um die Übersichtstabelle wieder mit der ursprünglichen Tabelle zu verknüpfen, wobei der Abgleich in der Spalte „Label“ erfolgt
- Erstellen Sie eine neue Rangformelspalte
- Sortieren Sie die Daten nach Label
- Erstellen Sie eine neue Spalte namens Rang mit der Formel
If( Row() == 1,
count = 1,
If( :Label != Lag( :Label ),
count
++)
);
count;
- Achten Sie darauf, zu Column Info zu gehen und das zu entfernen, nachdem die Spalte erstellt wurde.Der Grund dafür ist, dass, da die Formel auf der Reihenfolge der Daten und der Vollständigkeit der Daten basiert, alle Änderungen an den Daten (Sortierung usw.) die Formel erneut ausführen und möglicherweise die Rangfolge ändern.