Wert1_rel könnte eine Formelspalte sein.
Ich bin mir nicht sicher, wie die Formel auf Ihren Beispieldaten basieren würde.
Normalerweise würde ich relativ zu bedeuten erwarten Wert1 - Param1 , oder Wert1 - 0 , aber keines entspricht dem Beispiel.
Hallo zusammen,
Ich muss den prozentualen Anteil der Werte der Spalte berechnen Wert1 basierend auf der Position des ausgewählten Wertes aus Spalte Wert1 . Als Beispiel, wenn ich das basierend auf dem zweiten Wert in Spalte machen möchte Wert1 (Position 2 oder Wert 2), die resultierende Spalte Wert1_rel mit relativen Werten sollte so aussehen:

Darüber hinaus können weitere Daten vorhanden sein, die nach Artikel gruppiert werden müssen und dann für jeden Artikel einen prozentualen Anteil (vielleicht normalisiert oder relativer Wert ist ein etwas verwirrender Begriff) für alle anderen Werte. Wie kann ich das machen? Wenn die Erklärung nicht gut genug ist, verzeihen Sie bitte und fragen Sie nach.
Vielen Dank und beste Grüße
Hallo,
Diese zugegebenermaßen komplexe Formel (vielleicht stellt jemand eine einfachere vor) können Sie in einer neuen Spalte verwenden:
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
Col Cumulative Sum( 1, :Group ) == 2 & :Group == Expr( :Group[Row()] )
)] / :Val
)
)
Es lohnt sich wahrscheinlich, dies zumindest ein wenig auszupacken.
Das Konstrukt Eval( Eval Ausdr( )) wird verwendet, um die Auswertung des Ausdrucks Ausdr ( :Group[Row()] ) zu erzwingen. Ohne dies werden in jeder Zeile mehrere Werte zurückgegeben... einer für jede Gruppe. Versuchen Sie es, indem Sie den Wrapper Eval ( Eval Expr ()) und den Wrapper Expr () entfernen, um zu sehen, was ich meine.
Um den Wert zu bestimmen, den wir im Verhältnis verwenden, müssen wir die 2. Reihe innerhalb der aktuellen Gruppe greifen. Um diese Zeile zu finden, müssen wir auf Gruppe (der zweite Teil der Get-Zeilen-Where-Klausel) und auch als 2. Wert innerhalb der Gruppe übereinstimmen. Eine einfache Möglichkeit, dies zu tun, besteht darin, sich die kumulative Summe einer Spalte von Einsen anzusehen, die nach :Group gruppiert ist. Wenn diese Spalte == 2 ist, haben wir den 2. Wert einer Gruppe. Dies geschieht in mehreren Zeilen, aber der 2. Teil der Klausel beschränkt das Ergebnis auf die Gruppe, die der Gruppe der aktuellen Zeile entspricht. Auf diese Weise muss die Tabelle nicht einmal nach Gruppe oder Wert sortiert werden.
Wenn Sie die 2 in der kumulativen Summen-Äquivalenz in k ändern, können Sie den k-ten Wert in der Gruppe anstelle des 2. verwenden.
Prost,
Brady
