Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenIch möchte Zeilen in meinem Datensatz zählen, wenn 3 Spalten (ABC) übereinstimmen. Ich möchte den Wert in eine neue Spalte (D) eingeben. Hier ist ein Beispiel. Vielen Dank für Ihre Hilfe!
| Spalte A | Spalte B | Spalte C | Spalte D (Zählzählung) |
| 7 | Z | S | 4 |
| 7 | Z | S | 4 |
| 1 | A | P | 3 |
| 1 | A | P | 3 |
| 1 | A | P | 3 |
| 7 | Z | S | 4 |
| 5 | E | M | 2 |
| 5 | E | M | 2 |
| 7 | Z | S | 4 |
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenIch bin froh über die Formel @MS Gepostet funktioniert für Sie! Ich bin gespannt, warum meine Methode bei Ihrer tatsächlichen Tabelle fehlschlägt, aber vielleicht ist es besser, unsere Zeit auf Ihre andere Frage zu verwenden, als zu diagnostizieren, was mit meiner minderwertigen Zwei-Spalten-Methode schief gelaufen ist!
Darf ich fragen, welches Problem durch die Erstellung dieser Bilanz gelöst wird? Es sieht so aus, als würden Sie auf diese Weise nur eine Spalte mit Einsen erhalten, da Sie es unabhängig von der Anzahl der Vorkommen des Musters als 1 zählen. Ich glaube nicht, dass ich vollständig begreife, was Sie tun möchten oder was es Ihnen dabei hilft, es zu erreichen. Ich denke, wenn ich das Endziel wüsste, könnte ich vielleicht eine einfachere Gesamtmethode als eine Reihe von Formelspalten vorschlagen.
@julianisch
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenIch habe immer noch Probleme, dies zum Laufen zu bringen. Die Version mit zwei Gleichungen, die Julian vorgeschlagen hat – die erste Gleichung gibt mir nur Einsen, ich bin mir also nicht sicher, was ich falsch mache. Mit der Einzelgleichungsmethode erhalte ich die Gesamtzahl der Vorkommen eines bestimmten Buckets pro SOG. Der andere Teil, den ich immer noch zu erreichen versuche, ist die Häufigkeit, mit der ich mir einen Eimer schnappen muss. Wenn ich zum Beispiel einen Eimer nehme und 4 Proben entnehme oder ihn noch einmal nehme und 19 Proben entnehme – in jedem Fall habe ich den Eimer nur einmal genommen. Aus meinem Datenbeispiel geht hervor, dass EXULU im 621 SOG insgesamt 4 Mal vorkommt. Ich möchte eine Zählung erstellen, die diese 4 Mal als 1 Mal zählt. EH8QK erscheint insgesamt 19 Mal im 621 SOG, aber ich möchte auch diese alle als 1 Mal zählen. Ich hoffe, dass dies die zweite Hälfte des Problems besser erklärt. Danke schön!
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenEine Alternative zur Verwendung von zwei Spalten zur Ermittlung der Anzahl wäre das Zählen der Zeilen jeder Kombination mit der Funktion ColNumber().
Zum Beispiel:
Col Number(Row(), :J1, :SOG, :BUCKET);
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-214889" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214889" slang="en-US" mode="NONE"><P>Hallo<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Hier ist eine Tabelle, die das erreicht, was Sie meiner Meinung nach erreichen wollen, indem sie die Formeln verwendet, die ich zuvor gezeigt habe, aber für jede Kombination angepasst habe. Meine Berechnung für „# mal BUCKET erscheint pro: SOG (richtige Antwort)“ stimmt nicht mit der überein, die Sie angeblich manuell erstellt haben, aber ich bin mir ziemlich sicher, dass das, was ich hier gemacht habe, korrekt ist, da es mit meiner eigenen manuellen Zählung übereinstimmt. Können Sie überprüfen und bestätigen, dass mir nichts entgangen ist?</P>
<P> </P>
<P>Sie werden feststellen, dass Sie eine benötigen<STRONG> Säulenpaar</STRONG> Für jede dieser Zählungen gibt es eine, die in jeder Gruppierung inkrementell zählt, und eine andere, die die Gesamtsumme ermittelt. Ich habe die Spalten für die inkrementelle Anzahl in der Tabelle ausgeblendet, aber beachten Sie, dass Sie diese haben müssen. Sie können dies auf wirklich jede beliebige Anzahl von Kombinationen verallgemeinern. Sie passen einfach die Formeln wie unten gezeigt an, um die richtigen Spalten als Ihre Nach-Gruppen einzubeziehen:</P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><span class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" style="width: 374px;"><img src="https://us.v-cdn.net/6038925/uploads/images/18030i629C729C275487D5/Screen%20Shot%202019-06-26%20at%205.20.49%20PM.png" role="button" title="Screen Shot 2019-06-26 at 5.20.49 PM.png" alt="Screen Shot 2019-06-26 at 5.20.49 PM.png" /></span></SPAN></SPAN></P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><span class="lia-inline-image-display-wrapper" image-alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" style="width: 536px;"><img src="https://us.v-cdn.net/6038925/uploads/images/18031i3CBC6C15082459EE/Screen%20Shot%202019-06-26%20at%205.20.54%20PM.png" role="button" title="Screen Shot 2019-06-26 at 5.20.54 PM.png" alt="Screen Shot 2019-06-26 at 5.20.54 PM.png" /></span></SPAN></SPAN></P>
<P> </P>
<P>Ich hoffe, das bringt Dich weiter,</P>
<P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2026" target="_blank">@julianisch</A></P></LINGO-BODY><LINGO-SUB id="lingo-sub-214377" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214377" slang="en-US" mode="NONE">Ich sehe, ich habe einen Fehler gemacht. Der Header der letzten Spalte jar_id entspricht Spalte J1. Ich möchte auch wissen, wie oft T1 pro J1 X SOG X BUCKET-Kombination auftritt. Danke schön.</LINGO-BODY><LINGO-SUB id="lingo-sub-214361" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214361" slang="en-US" mode="NONE"><P>Sie haben Recht, jede Zeile ist einzigartig. Hier ist eine Teilmenge des realen Datensatzes. Ich habe ein paar Spalten erstellt, die darstellen, was ich erreichen möchte. Die Spalte „Anzahl, wie oft BUCKET pro SOG erscheint“ habe ich manuell ausgefüllt. Der NULL-Wert kann als eigener BUCKET behandelt werden. In der zweiten Spalte muss angegeben werden, wie oft J1 pro Kombination aus SOG und BUCKET erscheint. Ich hoffe, das macht die Sache einfacher. Vielen Dank für Ihre Hilfe.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214360" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214360" slang="en-US" mode="NONE"><P>Sie haben Recht, jede Zeile ist einzigartig. Hier ist eine Teilmenge des realen Datensatzes. Ich habe ein paar Spalten erstellt, die darstellen, was ich erreichen möchte. Die Spalte „Anzahl, wie oft BUCKET pro SOG erscheint“ habe ich manuell ausgefüllt. Der NULL-Wert kann als eigener BUCKET behandelt werden. In der zweiten Spalte muss angezeigt werden, wie oft J1 pro Kombination aus SOG und BUCKET erscheint. Ich hoffe, das macht die Sache einfacher. Vielen Dank für Ihre Hilfe.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214152" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214152" slang="en-US" mode="NONE"><P>Es scheint, dass jede Zeile in Ihrer Tabelle eindeutig ist, daher würde ich erwarten, dass „Anzahl der Tube-Vorkommen pro JAR X BUCKET X SOG“ für die gesamte Tabelle 1 ist. Verstehe ich dieses Format falsch?</P>
<P> </P>
<P>Außerdem ist es viel hilfreicher, Ihre JMP-Datentabelle oder eine Teilmenge davon mit intakten Spaltenformeln anzuhängen, um zu diagnostizieren, was passiert, als die Tabelle in den Nachrichtentext einzufügen.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214149" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214149" slang="en-US" mode="NONE"><P>Genau das möchte ich tun, du hast es ganz gut erklärt. Aber wenn ich die Formel anwende, erhalte ich nicht die richtigen Werte. Lassen Sie mich ein neues Beispiel anführen, um sicherzustellen, dass wir auf einer Wellenlänge sind. Dies ist ein sehr großer und recht dynamischer Datensatz. Ich hoffe, das erklärt das Problem besser und verwirrt es nicht. Danke schön.</P><P> </P><TABLE border="1"><TBODY><TR><TD><STRONG>ROHR</STRONG></TD><TD><STRONG>KRUG</STRONG></TD><TD><STRONG>EIMER</STRONG></TD><TD><STRONG>WIE G</STRONG></TD><TD><EM><STRONG>Nr. Mal, dass Tube pro JAR X BUCKET X SOG auftritt</STRONG></EM></TD><TD><U><EM><STRONG>Anzahl der eindeutigen Zeiten, in denen Jar pro Bucket-X-SOG-Kombination auftritt</STRONG></EM></U></TD><TD> </TD></TR><TR><TD>ASX</TD><TD>ABE</TD><TD>WDNH</TD><TD>5001</TD><TD><P>3</P></TD><TD><P>2</P></TD><TD> </TD></TR><TR><TD>CDV</TD><TD>ABE</TD><TD>WDNH</TD><TD>5001</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>KNL</TD><TD>ABE</TD><TD>WDNH</TD><TD>5001</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>NHS</TD><TD>BEN</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD><P>DEZA</P></TD><TD>BEN</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>MKD</TD><TD><P>KATZE</P></TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>KDN</TD><TD>KATZE</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>AMD</TD><TD>KATZE</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>CMD</TD><TD>KATZE</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>MDN</TD><TD>HUND</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>VNF</TD><TD>HUND</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>RKE</TD><TD><P>AAL</P></TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>LKD</TD><TD>AAL</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KDM</TD><TD>AAL</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>WLD</TD><TD>AAL</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KMD</TD><TD>AAL</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>FDL</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>SMK</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>KJM</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>ALD</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>NTE</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>IEJ</TD><TD>FLIEGE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>DFR</TD><TD>ABE</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>TRE</TD><TD>ABE</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR><TR><TD>NFE</TD><TD>ABE</TD><TD>SDER</TD><TD>5008</TD><TD>3</TD><TD>2</TD><TD> </TD></TR></TBODY></TABLE></LINGO-BODY><LINGO-SUB id="lingo-sub-214145" slang="en-US" mode="NONE">Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer Bedingungen</LINGO-SUB><LINGO-BODY id="lingo-body-214145" slang="en-US" mode="NONE"><P>Hallo<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Ich glaube, ich verstehe, was Sie fragen, aber ich möchte es zur Sicherheit noch einmal wiederholen. Sie möchten eine neue Spalte, die die Anzahl der eindeutigen Kombinationen zählt, unabhängig davon, wie oft diese Kombinationen aufgetreten sind? In der von Ihnen bereitgestellten Teilmenge gibt es drei eindeutige Kombinationen der drei Spalten, und wie Sie betont haben, kam eine der Kombinationen viermal, eine weitere dreimal und eine weitere zweimal vor. Anders ausgedrückt: Wie viele eindeutige Zeilen haben Sie, wie durch die ersten drei Spalten definiert? Wenn dies tatsächlich das ist, wonach Sie suchen, reicht die folgende Spaltenformel aus, die im Wesentlichen die Anzahl des Vorkommens einer 1 in den Spalten „In Gruppen zählen“ zählt, d. h. die Anzahl der eindeutigen Gruppen:</P>
<P> </P>
<PRE><CODE class=" language-jsl">As Constant(
uniqueRowCount = Summation(
i = 1,
N Row(),
If( :Count In Groups[i] == 1,
1,
0
)
)
);
uniqueRowCount;

Die neue Tabelle habe ich auch hier angehängt. Ist es das, was Sie tun wollten?
@julianisch
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenErstellen Sie eine neue Spalte und verwenden Sie die folgende Formel für die neue Spalte
summarize(byGroup=by(:Total in Group));
n items(byGroup)
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenUm noch einen Schritt weiter zu gehen: Nehmen wir an, ich wollte eine weitere Spalte hinzufügen, die anzeigt, wie oft eine Kombination innerhalb einer Teilmenge vorkam. Im Beispiel stehen also in der Spalte „Gesamt in der Gruppe“ 4 – „4“, 3 – „3“ und 2 – „2“. Wenn alle Zeilen (1 bis 9) die gesamte Teilmenge darstellen würden, wäre die Antwort in diesem Fall 3, da eine „4“, eine „3“ und eine „2“ aufgetreten sind. In der neuen Spalte „Gesamt in Teilmenge“ hätte also jede Zeile eine 3. Ich weiß nicht, wie ich Zahlen auf diese Weise zusammenfassen kann.
Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenVielen Dank, Julian, der Kolumnenansatz geht perfekt auf meine Bewerbung ein.Betreff: Zählen von Zeilen basierend auf der Übereinstimmung mehrerer BedingungenHallo @Sciguy_1
Es gibt mehrere Möglichkeiten, wie Sie dies erreichen können. Ich denke, ein Formelspaltenansatz ist relativ einfach, mit zwei Spalten, einer ersten, die die Vorkommnisse einer Übereinstimmung inkrementell zählt, und einer zweiten Spalte, die den Maximalwert dieser Anzahl pro Gruppe ermittelt, was Sie hier als gezählte Zählung bezeichnen. So sieht diese Tabelle aus:
Und hier sind die Spaltenformeln:
Zählen in Gruppen nach den für eine Übereinstimmung verwendeten Spalten:
Col Cumulative Sum( 1, :Column A, :Column B, :Column C )
und das Maximum dieser Zählungsspalte, ebenfalls gruppiert nach den für eine Übereinstimmung verwendeten Spalten
Col Maximum( :Count In Groups, :Column A, :Column B, :Column C )
Die Tabelle ist als Referenz beigefügt.
Wenn Sie alternativ eine Tabelle erstellen möchten, in der eindeutige Zeilen nur einmal und mit der Häufigkeit ihrer Übereinstimmungen aufgelistet sind, können Sie „Tabellen“ > „Zusammenfassung“ verwenden. Geben Sie in Ihren Spalten „Gruppe“ ein und klicken Sie auf „OK“. So sieht dieses Setup aus:

Dadurch wird eine Übersichtstabelle zurückgegeben, die die eindeutigen Wertekombinationen in diesen drei Spalten sowie eine Spalte mit der Anzahl der Vorkommen in der Datentabelle anzeigt. 
Sobald Sie diese Tabelle haben, können Sie die Spalte „N Zeilen“ auswählen und dann aus der Übersichtstabelle direkt in Ihre Originaltabelle ziehen. JMP übernimmt dann alle Abgleiche, damit Sie die Originaltabelle mit diesen Werten aktualisieren können. So sieht das aus:
Schließlich wird das Skript zum Erstellen der Tabelle auch als Quellskript in der Übersichtstabelle gespeichert:
Data Table( "Example.jmp" ) << Summary(
Group( :Column A, :Column B, :Column C ),
Freq( "None" ), Weight( "None" )
)
Ich hoffe das hilft!
@julianisch