Ermitteln des Spaltendurchschnitts basierend auf einer Bedingung in einer anderen SpalteIch suche nach einer Methode, um den Durchschnitt von Spaltendaten basierend auf einer Bedingung in einer anderen Spalte zu ermitteln.
Die folgende Tabelle zeigt, was ich erreichen möchte.
Ich möchte den zeitlich gemittelten Intensitätswert nehmen und eine neue Spalte mit dem gemittelten Wert tabellarisch erstellen.
Der Durchschnitt wird basierend auf „Schritt“ und Gruppe als Auslöser genommen, dh alle Intensitätswerte derselben Gruppe und desselben Schritts werden berücksichtigt
einmal gemittelt und tabelliert werden. Ich habe die Col-Mean-Funktion ausprobiert, aber sie fügt den gemittelten Wert immer wieder mehrmals ein.
Übrigens ist es möglich, eine neue Tabelle mit Zusammenfassung (Durchschnittswert) zu erstellen. Die Tabelle enthält den gemittelten Schritt, die Gruppe, zu der er gehört, und den Durchschnittswert (nur die Daten in Rot).
| Zeitstempel) | Schritt | Intensität | Gruppe | (Möchte Durchschnitt) Zum Beispiel |
1 | 1 | 110 | A | 119,7 |
| 2 | 1 | 115 | A | - |
| 3 | 1 | 123,5 | A | - |
| 4 | 1 | 124 | A | - |
| 5 | 1 | 126 | A | - |
| 3 | 2 | 132 | B | 205,73 |
| 4 | 2 | 140 | B | - |
| 5 | 2 | 345,2 | B | - |
| 1 | 2 | 10 | A | 18.33 |
| 2 | 2 | 20 | A | - |
| 3 | 2 | 25 | A | - |
| . | . | . | . | |
| . | . | . | . | |
Verbraucher- und MarktforschungBetreff: Spaltendurchschnitt basierend auf einer Bedingung in einer anderen Spalte ermittelnDanke Jim.
Betreff: Spaltendurchschnitt basierend auf einer Bedingung in einer anderen Spalte ermittelnIhre Frage kann auf verschiedene Arten interpretiert werden.
- Berücksichtigen Sie bei der Berechnung des Gruppenmittelwerts keine Intensitätswerte > 100
If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( If( :Intensity > 100, :Intensity, . ), :Group, :Step ),
.
)
- Wenn der erste Wert für die Intensität in der Gruppe > 100 ist, berechnen Sie nicht den Gruppenmittelwert
If( (Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step) & :Intensity > 100,
Col Mean( :Intensity, :Group, :Step ),
.
)
Betreff: Spaltendurchschnitt basierend auf einer Bedingung in einer anderen Spalte ermittelnDanke, die Formel hat funktioniert. Übrigens ist es möglich, diese „If“-Formel in ein anderes „If“ zu verschachteln, sodass diese Formel nur ausgeführt wird, wenn „Intensität“ größer als 100 ist. Wie wird die Formel dann aussehen?
Betreff: Spaltendurchschnitt basierend auf einer Bedingung in einer anderen Spalte ermittelnEine geringfügige Änderung der Formel wird Ihnen das geben, was Sie wollen

If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( :Intensity, :Group, :Step ),
.
)