Conteggio delle righe in base alla corrispondenza di più condizioniVoglio contare le righe nel mio set di dati se 3 colonne (ABC) corrispondono. Voglio inserire il valore in una nuova colonna (D). Ecco un esempio. Grazie per il vostro aiuto!
| Colonna A | Colonna B | Colonna C | Colonna D (Tally conteggiato) |
| 7 | z | S | 4 |
| 7 | z | S | 4 |
| 1 | UN | P | 3 |
| 1 | UN | P | 3 |
| 1 | UN | P | 3 |
| 7 | z | S | 4 |
| 5 | E | M | 2 |
| 5 | E | M | 2 |
| 7 | z | S | 4 |
Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniSono contento della formula @SM ha pubblicato lavori per te! Sono curioso di sapere perché il mio sta fallendo sul tuo tavolo reale, ma forse il nostro tempo è speso meglio per l'altra tua domanda piuttosto che per diagnosticare cosa è andato storto con il mio metodo inferiore a due colonne!
Posso chiedere quale problema sta risolvendo la creazione di quel conteggio? Sembra che in questo modo finirai con una colonna di 1, poiché importa il numero di occorrenze del pattern che stai contando come 1. Non credo di capire appieno cosa vuoi fare o cosa ti sta aiutando a realizzare. Penso che se conoscessi l'obiettivo finale potrei essere in grado di suggerire un metodo generale più semplice rispetto a una serie di colonne formula.
@giuliano
Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniHo ancora problemi a farlo funzionare. La versione a 2 equazioni suggerita da Julian: la prima equazione mi dà tutti 1, quindi non sono sicuro di cosa sto facendo in modo errato. Il metodo dell'equazione singola mi fornisce il numero totale di volte in cui un determinato secchio appare per SOG. L'altra parte che sto ancora cercando di ottenere è il numero di volte che devo prendere un secchio. Ad esempio, se prendo un secchio e prendo 4 campioni o lo prendo di nuovo e prendo 19 campioni, in ogni caso ho afferrato il secchio solo una volta. Dal mio esempio di dati EXULU appare un totale di 4 volte nel 621 SOG. Voglio creare un conteggio che conterebbe quelle 4 volte come 1 volta. EH8QK appare un totale di 19 volte nel SOG 621, ma voglio contare anche quelle come 1. Spero che questo spieghi meglio la seconda metà del problema. Grazie!
Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniUn'alternativa all'utilizzo di due colonne per arrivare ai conteggi consiste nel contare le righe di ciascuna combinazione con la funzione ColNumber().
Per esempio:
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">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214889" slang="en-US" mode="NONE"><P>CIAO<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Ecco una tabella che realizza ciò che penso tu stia cercando, usando le formule che ho mostrato prima ma adattate per ogni combinazione. Il mio calcolo per "# volte BUCKET appare per: SOG (Risposta corretta)" non corrisponde a quello che hai detto di aver creato manualmente, ma sono abbastanza sicuro che quello che ho fatto qui sia corretto poiché quadra con il mio conteggio manuale. Puoi controllare e confermare che non mi manca qualcosa?</P>
<P> </P>
<P>Noterai che hai bisogno di un file<STRONG> coppia di colonne</STRONG> per ciascuno di questi conteggi, uno che conta in modo incrementale in ogni raggruppamento e un altro che trova il totale. Ho nascosto le colonne del conteggio incrementale nella tabella, ma tieni presente che devi averle. Puoi generalizzare questo a qualsiasi numero di combinazioni, stai solo regolando le formule come mostrato di seguito per includere le colonne giuste come per gruppi:</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>Spero che questo ti faccia andare avanti,</P>
<P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2026" target="_blank">@giuliano</A></P></LINGO-BODY><LINGO-SUB id="lingo-sub-214377" slang="en-US" mode="NONE">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214377" slang="en-US" mode="NONE">Vedo che ho commesso un errore. L'intestazione dell'ultima colonna jar_id è uguale alla colonna J1. Vorrei anche conoscere il numero di volte in cui si verifica T1 per combinazione J1 X SOG X BUCKET. Grazie.</LINGO-BODY><LINGO-SUB id="lingo-sub-214361" slang="en-US" mode="NONE">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214361" slang="en-US" mode="NONE"><P>Hai ragione, ogni riga è unica. Ecco un sottoinsieme del set di dati reale. Ho creato un paio di colonne che rappresentano ciò che sto cercando di realizzare. La colonna 'numero di volte che BUCKET appare per SOG' l'ho compilata manualmente. Il valore NULL può essere trattato come il proprio BUCKET. La seconda colonna deve mostrare il numero di volte in cui J1 appare per: combinazione SOG X BUCKET. Spero che questo semplifichi le cose grazie per il tuo aiuto.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214360" slang="en-US" mode="NONE">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214360" slang="en-US" mode="NONE"><P>Hai ragione, ogni riga è unica. Ecco un sottoinsieme del set di dati reale. Ho creato un paio di colonne che rappresentano ciò che sto cercando di realizzare. La colonna 'numero di volte che BUCKET appare per SOG' l'ho compilata manualmente. Il valore NULL può essere trattato come il proprio BUCKET. La seconda colonna deve mostrare il numero di volte in cui J1 appare per: combinazione SOG X BUCKET. Spero che questo semplifichi le cose grazie per il tuo aiuto.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214152" slang="en-US" mode="NONE">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214152" slang="en-US" mode="NONE"><P>Sembra che ogni riga nella tua tabella sia unica, quindi mi aspetto che "No. Times Tube si verifica per JAR X BUCKET X SOG" sia 1 per l'intera tabella. Sto fraintendendo questo formato?</P>
<P> </P>
<P>Inoltre, allegare la tabella di dati JMP, o un sottoinsieme di essa, con le formule di colonna intatte sarà molto più utile per diagnosticare cosa sta accadendo, piuttosto che incollare la tabella nel corpo del messaggio.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214149" slang="en-US" mode="NONE">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214149" slang="en-US" mode="NONE"><P>Questo è esattamente quello che voglio fare, l'hai spiegato abbastanza bene. Ma applicando la formula non ottengo i valori corretti. Consentitemi di fornire un nuovo esempio solo per essere sicuri che siamo sulla stessa lunghezza d'onda. Questo è un set di dati molto ampio e abbastanza dinamico. Spero che questo spieghi meglio e non confonda il problema. Grazie.</P><P> </P><TABLE border="1"><TBODY><TR><TD><STRONG>TUBO</STRONG></TD><TD><STRONG>VASO</STRONG></TD><TD><STRONG>SECCHIO</STRONG></TD><TD><STRONG>SOG</STRONG></TD><TD><EM><STRONG>No. Times Tube si verifica per JAR X BUCKET X SOG</STRONG></EM></TD><TD><U><EM><STRONG>N. volte uniche in cui si verifica il barattolo per combinazione secchio X SOG</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>SSN</TD><TD>BENE</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD><P>DSC</P></TD><TD>BENE</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>MKD</TD><TD><P>GATTO</P></TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>KDN</TD><TD>GATTO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>AMD</TD><TD>GATTO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>cmd</TD><TD>GATTO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>MDN</TD><TD>CANE</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>VNF</TD><TD>CANE</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>RKE</TD><TD><P>ANGUILLA</P></TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>LKD</TD><TD>ANGUILLA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KDM</TD><TD>ANGUILLA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>WLD</TD><TD>ANGUILLA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KMD</TD><TD>ANGUILLA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>FDL</TD><TD>VOLARE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>SMK</TD><TD>VOLARE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>KJM</TD><TD>VOLARE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>ALD</TD><TD>VOLARE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>NDE</TD><TD>VOLARE</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>IEJ</TD><TD>VOLARE</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">Oggetto: conteggio delle righe in base alla corrispondenza di più condizioni</LINGO-SUB><LINGO-BODY id="lingo-body-214145" slang="en-US" mode="NONE"><P>CIAO<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Credo di aver capito cosa stai chiedendo, ma fammi ribadire per essere sicuro. Desideri una nuova colonna che contenga il numero di combinazioni univoche, indipendentemente da quante volte si sono verificate tali combinazioni? Nel sottoinsieme che hai fornito, ci sono 3 combinazioni univoche delle tre colonne e, come hai sottolineato, una delle combinazioni si è verificata 4 volte, altre 3 volte e altre 2 volte. Un altro modo per dire questo è quante righe univoche hai, come definito dalle prime tre colonne. Se questo è davvero ciò che stai cercando, andrà bene la seguente formula di colonna, che essenzialmente conta il numero di volte in cui si verifica un 1 nelle colonne "Conteggio in gruppi", ovvero il numero di gruppi univoci:</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;

Ho allegato anche la nuova tabella qui. È questo che stavi cercando di fare?
@giuliano
Oggetto: conteggio delle righe in base alla corrispondenza di più condizionicreare una nuova colonna e utilizzare la seguente formula per la nuova colonna
summarize(byGroup=by(:Total in Group));
n items(byGroup)
Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniPer fare un ulteriore passo avanti, diciamo che volevo aggiungere un'altra colonna che mostrasse il numero di volte in cui si è verificata una combinazione all'interno di un sottoinsieme. Quindi nell'esempio, nella colonna "totale nel gruppo" ci sono 4-"4", 3-"3" e 2-"2". Se tutte le righe (da 1 a 9) rappresentassero l'intero sottoinsieme, la risposta in questo caso sarebbe 3 perché si è verificato un "4", si è verificato un "3" e si è verificato un "2". Quindi nella nuova colonna "totale in sottoinsieme" ogni riga avrà un 3. Non riesco a capire come ottenere cifre sommate in quel modo.
Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniGrazie Julian, l'approccio della colonna risponde perfettamente alla mia domanda.Oggetto: conteggio delle righe in base alla corrispondenza di più condizioniCIAO @Sciguy_1
Ci sono alcuni modi in cui potresti farlo. Penso che un approccio basato su una colonna formula sia relativamente semplice, con due colonne, la prima, una che conta le occorrenze di una corrispondenza in modo incrementale, e poi una seconda colonna che trova il valore massimo di quel conteggio per gruppo, che è quello che stai chiamando un conteggio conteggiato qui. Ecco come appare quella tabella:
Ed ecco le formule di colonna:
Conteggio in gruppi in base alle colonne utilizzate per una corrispondenza:
Col Cumulative Sum( 1, :Column A, :Column B, :Column C )
e il valore massimo di quella colonna di conteggio, anch'essi raggruppati in base alle colonne utilizzate per una corrispondenza
Col Maximum( :Count In Groups, :Column A, :Column B, :Column C )
La tabella è allegata per riferimento.
In alternativa, se desideri creare una tabella che elenchi righe univoche solo una volta, con il numero di corrispondenze, puoi utilizzare Tabelle > Riepilogo. Entra nelle tue colonne come Gruppo e premi ok. Ecco come appare questa configurazione:

Ciò restituirà una tabella di riepilogo che mostra le combinazioni univoche di valori in queste tre colonne, insieme a una colonna che mostra il numero di occorrenze nella tabella di dati. 
Una volta ottenuta questa tabella, è possibile selezionare e quindi trascinare la colonna N righe dalla tabella di riepilogo direttamente nella tabella originale e JMP gestirà tutte le corrispondenze per aggiornare la tabella originale con quei valori. Ecco come appare:
Infine, anche lo script per creare la tabella viene salvato come script sorgente nella tabella di riepilogo:
Data Table( "Example.jmp" ) << Summary(
Group( :Column A, :Column B, :Column C ),
Freq( "None" ), Weight( "None" )
)
Spero che aiuti!
@giuliano