FormelanwendungIF(MONTH(A151)=MONTH(A150),NA(),COUNTIF(W151:W181,1)*100/(COUNTIF(W151:W181,1)+COUNTIF(W151:W181,0))) . Dies ist eine Formel, die in Excel angewendet wird, um eine neue Spalte zu erstellen, wobei Spalte A ein Datum enthält und Spalte W nur 0 und 1 als Werte enthält. So wenden Sie dieselbe Formel in JMP an, wenn wir Werte für die Spalten A und W haben.
Erweiterte statistische ModellierungBetreff: FormelanwendungSo würde ich damit umgehen.
Die Loc()-Funktion gibt eine Matrix aller Werte in der Matrix zurück, die mit dem zweiten Argument in der Loc()-Funktion übereinstimmen. daher
Geben Sie eine Matrix an
[1,0,1,1,.,5]
Dann
Loc( [1,0,1,1,.,5], 1 )
würde die Matrix zurückgeben
[ 1, 1, 1 ]
Es ist also einfach, die Anzahl der Zeilen in der Matrix zu zählen, um CountIF zu ermitteln
Length( Loc( [1,0,1,1,.,5], 1 ) )
was den Wert 3 zurückgibt
Hier ist die vollständige Formel
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Index( Row(), Row() + 29 )];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Typischerweise versucht man in JMP zu vermeiden, dass Berechnungen auf einer bestimmten Anzahl von Zeilen in der Datentabelle basieren. Diese aktuelle Diskussion ist ein gutes Beispiel dafür. Damit die obige Formel korrekt funktioniert, erfordert die Datentabelle, dass nach der Monatsänderung genau 30 Zeilen gefunden werden, um die Berechnungen durchzuführen. Wir alle wissen, dass verschiedene Monate eine unterschiedliche Anzahl von Tagen haben. Die folgende Änderung der obigen Formel zeigt, wie die Berechnungen auf der Grundlage aller Daten für den aktuellen Monat durchgeführt werden, unabhängig von der Anzahl der Tage im Monat
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Current Data Table() << get rows where(
Year( :A ) == Year( :A[Row()] ) & Month( :A ) == Month( :A[Row()] )
)];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Betreff: FormelanwendungKönnten Sie eine Beispieltabelle mit allen erforderlichen Spalten + der erwarteten Ergebnisspalte als JMP-Tabelle bereitstellen? Erleichtert das Verständnis des Problems als der Versuch, eine Excel-Formel ohne Daten in eine JMP-Formel umzuwandeln. Vielleicht brauchen Sie einfach so etwas wie
Col Cumulative Sum(:W, :A) oder Col Sum(:W, :A)
Betreff: FormelanwendungVielen Dank für die Antwort. Ich habe diese Formel angewendet, aber sie ergibt eine kumulative Summe, aber in meinem Fall muss ich bei jedem Monatswechsel die Zählung von 0 und 1 für die nächsten 30 Tage erhalten
Betreff: FormelanwendungHallo-
Ich hatte gerade angefangen zu antworten, als mir ein weiterer Beitrag auffiel. Dies könnte eine Alternative sein ...

Hinweise:
Die Monatsfunktion gibt den Monatsteil eines beliebigen Datums-/Zeitstempels als Zahl zurück, genau wie die Excel-Funktion Month().
Das IF prüft, ob die aktuelle Zeile nicht an der Monatsgrenze liegt. Dies ist so eingestellt, dass ein JMP-„Missing“ zurückgegeben wird, das sich möglicherweise etwas anders verhält als ein Excel NA().
Da die Werte als 1 und 0 codiert waren, wurde einfach ein Durchschnitt der nächsten 30 Zeilen gebildet und nicht {Anzahl 1/(Anzahl 0 + Anzahl 1)}.
Beim Übergang zwischen Tabellenkalkulationsformeln und JMP-Datentabellen mit Formeln, die wie relative Excel-Referenzen (Verzögerung, gleitender Durchschnitt) funktionieren ...
* Untersuchen Sie das Verhalten am oberen und unteren Ende sorgfältig, um die gewünschte Funktion sicherzustellen. Ein relativer Excel-Verweis auf die Zeile darüber, der in die erste Zeile kopiert wird, würde einen #Ref!-Fehler zurückgeben. Ein JMP Lag(1) gibt in der ersten Zeile ein Missing zurück. Beachten Sie auch die Besonderheiten des gleitenden JMP-Durchschnitts, da die Anzahl der verbleibenden Zeilen <30 wird (möglicherweise kein Problem – achten Sie einfach darauf). Dies lässt sich mit einer zusätzlichen Bedingung in JMP-Formeln abfangen: if (row()==1, spezielle Funktion für die erste Zeile, andernfalls verwenden Sie die Lag-Funktion).
Die Beschreibung enthält keine Begründung für das Tabellendesign. Wenn jedoch der Anteil der 1-Werte im aktuellen Monat ermittelt werden soll und davon ausgegangen wird, dass pro Monat 30 Zeilen der Reihe nach sortiert sind, gibt es einen anderen Ansatz, der robust gegenüber # Zeilen/Monat <> 30 und Zeilensortierung ist. Mit ausgewählter Datums-/Zeitstempelspalte A – Rechtsklick > neue Formelspalte > Datum/Uhrzeit > „Monat Jahr.“ …
Erstellen Sie dann eine neue Formelspalte, um den „durchschnittlichen“ W für diesen Monat/dieses Jahr zu ermitteln. Col Mean( :was_W, :"Month Year[was_A]"n ) * 100, ähnliche Bedingung, um bei Bedarf die Begrenzungszeile zu finden
Betreff: FormelanwendungIhre Anfrage ist etwas unklar, aber ich denke, ich komme Ihren Wünschen nahe – siehe beigefügte Datei. Ich habe eine Spalte mit zufälligen Daten erstellt und diese dann sortiert. Die W-Spalte ist ein Zufallsvektor mit den Werten 0 und 1. Die Formel zählt den Bruchteil von 1 Werten in den nächsten 30 Tagen nach einer Änderung in Monaten. Wenn dies nicht das ist, was Sie möchten, können Sie es entweder klarer erklären oder ein einfaches Beispiel veröffentlichen. Denken Sie daran, dass JMP keine Tabellenkalkulation ist und daher Excel-Formeln wie CountIF nicht immer gut übersetzt werden können.
Betreff: FormelanwendungDas ist, was ich dachte, mein Beispiel tut – und es schien in der angehängten Datei zu funktionieren. Ich würde gerne verstehen, warum es nicht funktioniert hat, aber Ihr Kommentar liefert keine nützlichen Informationen. Ähnlich wie bei Ihrer ursprünglichen Anfrage sollten Sie etwas mehr Details angeben, damit wir verstehen, was Sie wollen und warum Vorschläge das nicht erreichen.