Finden Sie das erste Element mit Bedingung in einer SpalteHallo, ich habe Daten mit 2 Spalten: Gruppe und Punktzahl, und ich möchte die 3 Spalten berechnen, die zuerst aufgerufen werden und die "erste Punktzahl nach Gruppe" zurückgeben, die nicht 10000000000 ist. In diesen Beispieldaten ist Gruppe a = 0, Gruppe b = 53. und da Gruppe c nur 10000000000 enthält, wird nichts dafür angezeigt.
Könnte mir jemand mit einer jmp-Formel für diese Spalte helfen, aber nicht jsl? Ich danke dir sehr!
| Gruppe | Ergebnis | zuerst |
| ein | 10000000000 | 0 |
| ein | 0 | 0 |
| ein | 100 | 0 |
| ein | 10000000000 | 0 |
| ein | 8 | 0 |
| ein | 10000000000 | 0 |
| ein | 10000000000 | 0 |
| ein | 10000000000 | 0 |
| b | 53 | 53 |
| b | 10000000000 | 53 |
| b | 1 | 53 |
| c | 10000000000 | . |
| c | 10000000000 | . |
| c | 10000000000 | . |
AnalytikBetreff: Erstes Element mit Bedingung in einer Spalte findenHier ist eine Möglichkeit, die Formel zu schreiben
curgroup = :group;
value = :score[Min(
Current Data Table() << get rows where(
:group == curgroup & :score != 10000000000
)
)];
Betreff: Erstes Element mit Bedingung in einer Spalte findenHallo Jim, danke für die Antwort. Ich habe es in die Formel eingefügt und den Spaltennamen ersetzt, aber es hat nicht die richtige Antwort ergeben. Könnten Sie mir helfen, den folgenden Screenshot zu überprüfen? Vielen Dank.
Betreff: Erstes Element mit Bedingung in einer Spalte findenDer Bildschirmauszug der Formel lässt mich nicht sehen, ob Sie die Spalten korrekt referenzieren.Das heißt, platzieren Sie ein ":" vor den Spaltennamen, aber nicht vor der Curgroup und dem Wert?
Welche Fehlermeldungen erhalten Sie?
Wenn Sie sagen, dass es nicht richtig funktioniert, was bedeutet das?Erhalten Sie nicht die richtigen Werte oder erhalten Sie keine Ergebnisse?
Ich habe Ihre Beispieldatentabelle mit einer Spalte namens Jim's Formula angehängt, in der meine Formel auf die Datentabelle angewendet wird.Auf diese Weise können Sie eine funktionierende Version der Formel zum Vergleich mit dem, was Sie erstellen möchten, verwenden.
Betreff: Erstes Element mit Bedingung in einer Spalte findenDanke Jim! Ich habe Ihre Formel direkt in meine Daten eingefügt und erneut überprüft - sie funktionierte in den obersten ~ 7000 Zeilen, aber von da an ist alles "." Und zeigt nicht die erste Zahl an, die nicht 10000000 ist. Als ich die Formel eingab, lief sie lange, so dass ich esc drücken musste, um jmp freizugeben. Verursacht das, dass dies geschieht? Ich habe insgesamt rund 7000k Zeilen.Betreff: Erstes Element mit Bedingung in einer Spalte findenDas sind viele Zeilen. Diese Formel benötigt möglicherweise weniger Speicher. Es wird angenommen, dass der erste Wert ≠ 10000000000 immer kleiner als 10000000000 ist.
If(Col Min(:score, :group) == 10000000000,
.,
Col Min(
:score[Col Min(Row(), :group, :score == 10000000000)],
:group
)
)
Re: Erstes Element mit Bedingung in einer Spalte findenHier ist ein anderer Ansatz zur Lösung des Problems.Dieser Ansatz ist ein Skript.Es sollte effizienter sein als der bisherige Ansatz mit einer einzigen Formelspalte.Es findet zuerst die ersten Werte, extrahiert sie in eine neue Tabelle und verwendet dann die Update-Plattform, um die Werte wieder in die ursprüngliche Datentabelle einzufügen.
names default to here(1);
dt=current data table();
// Create a column that finds the first values
dt<<NEW column=""></NEW>