Conteo de filas basado en la coincidencia de múltiples condicionesQuiero contar filas en mi conjunto de datos si coinciden 3 columnas (ABC). Quiero ingresar el valor en una nueva columna (D). Aquí hay un ejemplo. ¡Gracias por su asistencia!
| Columna A | Columna B | Columna C | Columna D (cuenta contada) |
| 7 | Z | S | 4 |
| 7 | Z | S | 4 |
| 1 | A | PAG | 3 |
| 1 | A | PAG | 3 |
| 1 | A | PAG | 3 |
| 7 | Z | S | 4 |
| 5 | mi | METRO | 2 |
| 5 | mi | METRO | 2 |
| 7 | Z | S | 4 |
Re: Contar filas basado en coincidencia de múltiples condicionesme alegro de la formula @EM trabajos publicados para ti! Tengo curiosidad por saber por qué el mío está fallando en su tabla real, pero tal vez sea mejor dedicar nuestro tiempo a su otra pregunta en lugar de diagnosticar qué salió mal con mi método inferior de dos columnas.
¿Puedo preguntar qué problema está resolviendo la creación de esa cuenta? Parece que terminará con una columna de 1 al hacer esto, ya que importa el número de ocurrencias del patrón, lo está contando como 1. No creo que esté comprendiendo completamente lo que quieres hacer o lo que te está ayudando a lograr. Creo que si supiera el objetivo final, podría sugerir un método general más simple que una serie de columnas de fórmula.
@Julian
Re: Contar filas basado en coincidencia de múltiples condicionesTodavía tengo problemas para hacer que esto funcione. La versión de 2 ecuaciones que sugirió Julian: la primera ecuación me da todos los 1, así que no estoy seguro de lo que estoy haciendo incorrectamente. El método de ecuación única me da el número total de veces que aparece un cubo en particular por SOG. La otra parte que todavía estoy tratando de obtener es la cantidad de veces que tengo que agarrar un balde. Por ejemplo, si agarro un balde y tomo 4 muestras o lo agarro de nuevo y tomo 19 muestras, en cada caso solo agarré el balde una vez. De mi ejemplo de datos, EXULU aparece un total de 4 veces en el 621 SOG. Quiero crear una cuenta que cuente esas 4 veces como 1 vez. EH8QK aparece un total de 19 veces en el 621 SOG, pero quiero contarlas todas como 1 también. Espero que esto explique mejor la segunda mitad del problema. ¡Gracias!
Re: Contar filas basado en coincidencia de múltiples condicionesUna alternativa al uso de dos columnas para llegar a los recuentos sería contar las filas de cada combinación con la función ColNumber().
Por ejemplo:
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">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214889" slang="en-US" mode="NONE"><P>Hola<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Aquí hay una tabla que logra lo que creo que buscas, usando las fórmulas que mostré antes pero adaptadas para cada combinación. Mi cálculo de "# veces que BUCKET aparece por: SOG (respuesta correcta)" no coincide con el que dijiste que creaste manualmente, pero estoy bastante seguro de que lo que hice aquí es correcto, ya que cuadra con mi propio conteo manual. ¿Puedes verificar y confirmar que no me estoy perdiendo algo?</P>
<P> </P>
<P>Notarás que necesitas un<STRONG> par de columnas</STRONG> para cada uno de estos conteos, uno que cuenta incrementalmente en cada agrupación, y otro que encuentra el total. Oculté las columnas de conteo incremental en la tabla, pero tenga en cuenta que debe tenerlas. Puede generalizar esto a cualquier cantidad de combinaciones, solo está ajustando las fórmulas como se muestra a continuación para incluir las columnas correctas como sus grupos:</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>Espero que esto te lleve más lejos,</P>
<P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2026" target="_blank">@Julian</A></P></LINGO-BODY><LINGO-SUB id="lingo-sub-214377" slang="en-US" mode="NONE">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214377" slang="en-US" mode="NONE">Veo que cometí un error. El encabezado de la última columna jar_id es igual a la columna J1. También me gustaría saber el número de veces que ocurre T1 por combinación J1 X SOG X CUBO. Gracias.</LINGO-BODY><LINGO-SUB id="lingo-sub-214361" slang="en-US" mode="NONE">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214361" slang="en-US" mode="NONE"><P>Tienes razón, cada fila es única. Aquí hay un subconjunto del conjunto de datos real. Creé un par de columnas que representan lo que estoy tratando de lograr. La columna 'número de veces que BUCKET aparece por SOG' la rellené manualmente. El valor NULL se puede tratar como su propio BUCKET. La segunda columna debe mostrar el número de veces que aparece J1 por: combinación SOG X CUBO. Espero que esto facilite las cosas, gracias por su ayuda.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214360" slang="en-US" mode="NONE">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214360" slang="en-US" mode="NONE"><P>Tienes razón, cada fila es única. Aquí hay un subconjunto del conjunto de datos real. Creé un par de columnas que representan lo que estoy tratando de lograr. La columna 'número de veces que BUCKET aparece por SOG' la rellené manualmente. El valor NULL se puede tratar como su propio BUCKET. La segunda columna debe mostrar el número de veces que aparece J1 por: combinación SOG X CUBO. Espero que esto facilite las cosas, gracias por su ayuda.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214152" slang="en-US" mode="NONE">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214152" slang="en-US" mode="NONE"><P>Parece que cada fila en su tabla es única, por lo que esperaría que "No. Times Tube ocurra por JAR X BUCKET X SOG" sea 1 para toda la tabla. ¿Estoy malinterpretando este formato?</P>
<P> </P>
<P>Además, adjuntar su tabla de datos JMP, o un subconjunto de ella, con las fórmulas de columna intactas será mucho más útil para diagnosticar lo que está sucediendo, en lugar de pegar la tabla en el cuerpo del mensaje.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-214149" slang="en-US" mode="NONE">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214149" slang="en-US" mode="NONE"><P>Eso es exactamente lo que quiero hacer, lo explicaste bastante bien. Pero al aplicar la fórmula no obtengo los valores correctos. Permítanme proporcionar un nuevo ejemplo solo para asegurarme de que estamos en la misma longitud de onda. Este es un conjunto de datos muy grande y bastante dinámico. Espero que esto explique mejor y no confunda el problema. Gracias.</P><P> </P><TABLE border="1"><TBODY><TR><TD><STRONG>TUBO</STRONG></TD><TD><STRONG>FRASCO</STRONG></TD><TD><STRONG>BALDE</STRONG></TD><TD><STRONG>SOG</STRONG></TD><TD><EM><STRONG>No. Veces que el tubo ocurre por JAR X CUBO X SOG</STRONG></EM></TD><TD><U><EM><STRONG>No. de veces únicas que se presenta Jar por cubeta X combinación 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>Servicio Nacional de Salud</TD><TD>ben</TD><TD>WDNH</TD><TD>5001</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD><P>COSUDE</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>GATO</P></TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>KDN</TD><TD>GATO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>AMD</TD><TD>GATO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>CMD</TD><TD>GATO</TD><TD>DEFC</TD><TD>5004</TD><TD>4</TD><TD>1</TD><TD> </TD></TR><TR><TD>MDN</TD><TD>PERRO</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>VNF</TD><TD>PERRO</TD><TD>DEFC</TD><TD>5007</TD><TD>2</TD><TD>2</TD><TD> </TD></TR><TR><TD>RKE</TD><TD><P>ANGUILA</P></TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>LKD</TD><TD>ANGUILA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KDM</TD><TD>ANGUILA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>WLD</TD><TD>ANGUILA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>KMD</TD><TD>ANGUILA</TD><TD>DEFC</TD><TD>5007</TD><TD>5</TD><TD>2</TD><TD> </TD></TR><TR><TD>FDL</TD><TD>VOLAR</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>SMK</TD><TD>VOLAR</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>KJM</TD><TD>VOLAR</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>ALD</TD><TD>VOLAR</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>ECM</TD><TD>VOLAR</TD><TD>SDER</TD><TD>5008</TD><TD>6</TD><TD>2</TD><TD> </TD></TR><TR><TD>IEJ</TD><TD>VOLAR</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>ENF</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">Re: Contar filas basado en coincidencia de múltiples condiciones</LINGO-SUB><LINGO-BODY id="lingo-body-214145" slang="en-US" mode="NONE"><P>Hola<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14945" target="_blank"> @Sciguy_1</A> ,</P>
<P> </P>
<P>Creo que entiendo lo que estás preguntando, pero déjame reiterar para asegurarme. ¿Le gustaría una nueva columna que tenga un recuento de la cantidad de combinaciones únicas, independientemente de cuántas veces ocurrieron esas combinaciones? En el subconjunto que proporcionó, hay 3 combinaciones únicas de las tres columnas y, como señaló, una de las combinaciones ocurrió 4 veces, otra 3 veces y otra 2 veces. Otra forma de decir esto es cuántas filas únicas tiene, según lo definido por las tres primeras columnas. Si esto es realmente lo que busca, la siguiente fórmula de columna funcionará, que esencialmente cuenta la cantidad de veces que aparece un 1 en las columnas "Contar en grupos", es decir, la cantidad de grupos únicos:</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;

He adjuntado la nueva tabla aquí también. ¿Es esto lo que estabas buscando hacer?
@Julian
Re: Contar filas basado en coincidencia de múltiples condicionescree una nueva columna y use la siguiente fórmula para la nueva columna
summarize(byGroup=by(:Total in Group));
n items(byGroup)
Re: Contar filas basado en coincidencia de múltiples condicionesPara ir un paso más allá, digamos que quería agregar otra columna que mostrara la cantidad de veces que ocurrió una combinación dentro de un subconjunto. Entonces, en el ejemplo, en la columna "total en grupo" hay 4-"4", 3-"3" y 2-"2". Si todas las filas (del 1 al 9) representaran el subconjunto completo, la respuesta en este caso sería 3 porque ocurrió un "4", ocurrió un "3" y ocurrió un "2". Entonces, en la nueva columna "total en subconjunto", cada fila tendría un 3. No puedo entender cómo obtener cifras sumadas de esa manera.
Re: Contar filas basado en coincidencia de múltiples condicionesGracias, Julian, el enfoque de la columna aborda perfectamente mi aplicación.Re: Contar filas basado en coincidencia de múltiples condicionesHola @Sciguy_1
Hay algunas maneras en las que puedes hacer esto. Creo que un enfoque de columna de fórmula es relativamente sencillo, con dos columnas, primero, una que cuenta las ocurrencias de una coincidencia de forma incremental, y luego una segunda columna que encuentra el valor máximo de ese conteo por grupo, que es lo que llamamos un recuento contado aquí. Así es como se ve esa tabla:
Y aquí están las fórmulas de las columnas:
Contando en grupos por las columnas utilizadas para un partido:
Col Cumulative Sum( 1, :Column A, :Column B, :Column C )
y el máximo de esa columna de recuento, también agrupados por las columnas utilizadas para una coincidencia
Col Maximum( :Count In Groups, :Column A, :Column B, :Column C )
Se adjunta una tabla para su referencia.
Alternativamente, si desea crear una tabla que enumere filas únicas solo una vez, con la cantidad de veces que coincidieron, puede usar Tablas > Resumen. Ingrese en sus columnas como Grupo y presione Aceptar. Así es como se ve esa configuración:

Esto devolverá una tabla de resumen que muestra las combinaciones únicas de valores en esas tres columnas, junto con una columna que muestra el número de ocurrencias en la tabla de datos. 
Una vez que tenga esta tabla, puede seleccionar y luego arrastrar la columna N filas de la tabla de resumen directamente a su tabla original, y JMP manejará todas las coincidencias para que actualice la tabla original con esos valores. Esto es lo que parece:
Finalmente, la secuencia de comandos para hacer la tabla también se guarda como secuencia de comandos de origen en la tabla de resumen:
Data Table( "Example.jmp" ) << Summary(
Group( :Column A, :Column B, :Column C ),
Freq( "None" ), Weight( "None" )
)
¡Espero que esto ayude!
@Julian