Selección de filas basada en múltiples columnas y múltiples criterios<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola, chicos,
Leí los hilos disponibles en la selección de filas, pero aún no puedo compilar una fórmula para lograr lo que necesito (lo siento, todavía soy MUY inexperto ...).
Tengo una tabla que se ve así:
| Persona | Compuesto | Dosis | Unidades |
| Herrero | Aspirina | 200 | miligramos |
| Herrero | Aspirina | 150 | miligramos |
| jones | Gabapentina | 20 | ug |
| jones | Gabapentina | 30 | ug |
| jones | nyquil | 60 | ml |
| edison | Motrín | 600 | miligramos |
| edison | Motrín | 600 | miligramos |
Para cada persona, necesito mirar la columna Compuesto y para cada Compuesto, luego mirar las dosis y elegir la fila con la dosis más alta. Si una persona hubiera usado dos compuestos, necesito hacer una evaluación de dosis solo para un compuesto con dosis múltiples. Entonces, trabajando en esta tabla, debería obtener una nueva tabla como la siguiente:
| Persona | Compuesto | Dosis | Unidades |
| Herrero | Aspirina | 200 | miligramos |
| jones | Gabapentina | 30 | ug |
| jones | nyquil | 60 | ml |
| edison | Motrín | 600 | miligramos |
¿Puede ayudarme alguien, por favor? Será muy apreciado!!!!!
Re: Selección de filas basada en múltiples columnas y múltiples criterios¡Gracias chicos!
Probé las tres soluciones y obtuve la mesa que quería.
Es mucho más simple de lo que pensaba, ¡y me encantan las funciones de resumen y tabulación!
Gracias de nuevo
tania
Re: Selección de filas basada en múltiples columnas y múltiples criteriosByron es correcto. Fui demasiado rápido y olvidé que si dos personas en secuencia están tomando el mismo compuesto, entonces mi condición no afectará a la primera.
Aquí hay una fórmula corregida y una tabla de datos.
Selected State( :Compound != :Compound[Row() + 1] | :Person != :Person[Row() + 1] )

Esta vez selecciona la fila si el compuesto o la persona no coincide con la siguiente fila.
Re: Selección de filas basada en múltiples columnas y múltiples criteriosSoy anticuado y mi primer impulso es usar el enfoque anterior de Tablas> Resumen, que es muy similar al uso de Tabular.
1. Tablas > Resumen
2. Arrastre Persona, luego Compuesto al cuadro Grupo
3. Haga clic en Dosis y luego haga clic en el botón Estadísticas y seleccione Máx.
4. Haga clic en Aceptar
o como un guión:
dt = tabla de datos actual();
dt << Resumen( Grupo( :Persona, :Compuesto ), Max( :Dosis ) )
Miguel
Re: Selección de filas basada en múltiples columnas y múltiples criteriosParece que la lógica para seleccionar las filas marcadas podría necesitar ser un poco más específica.
If( :Persona == Lag( :Persona, 1 ) & :Compuesto == Lag( :Compuesto, 1 ), 0, 1)
Intente ejecutar este script con la tabla de dosis en la publicación de Jeff, luego ejecute primero el script de clasificación, seguido del script de subconjunto.
dt=tabla de datos actual();
dt<
Por( :Persona, :Compuesto, :Dosis ), Orden( Ascendente, Ascendente, Ascendente )););
dt<
dt << Subconjunto (Tabla de salida ("Subconjunto de dosis bw"), Filas seleccionadas (0), Filas ([1, 3, 5, 6]), Columnas seleccionadas solamente (0)););
dt<
Numérico, Nominal, Formato( "Mejor", 12 ),
Fórmula( If( :Persona == Lag( :Persona, 1 ) & :Compuesto == Lag( :Compuesto, 1 ),
0, 1 ) ));
Re: Selección de filas basada en múltiples columnas y múltiples criteriosPMroz tiene una buena solución.
Aquí está otro.
Ordene su tabla por Nombre, Compuesto, (ascendente) Dosis.
Luego crea un Columna de estado de fila ( Cols -> Nueva columna ).

Y agrega un Fórmula .

La fórmula debe ser:
Selected State( :Compound != :Compound[Row() + 1] )
En el editor de fórmulas se ve así:

Esto seleccionará cualquier fila donde el nombre del compuesto sea diferente del nombre del compuesto en la siguiente fila. Dado que la tabla está ordenada por persona, compuesto y dosis, estas filas representarán la dosis máxima para cada persona.
A continuación, puede copiar estas selecciones en el área de estado de la fila activa utilizando el menú emergente junto al nombre de la columna del estado de la fila.

Las filas se seleccionarán y podrá utilizar Tablas->Subconjunto para obtener una nueva tabla de datos con solo las filas seleccionadas.
He adjuntado una tabla de datos que muestra esto.
-Jeff
Re: Selección de filas basada en múltiples columnas y múltiples criteriosPuedes hacer esto con una tabulación:
| Persona | Compuesto | máx. |
| edison | Motrín | 600 |
| jones | Gabapentina | 30 |
| nyquil | 60 |
| Herrero | Aspirina | 200 |
Haga clic en Analizar > Tabular (JMP 11) o Tablas > Tabular (JMP 10, 9, 8)
Arrastrar Persona a la zona de colocación de las filas.
Arrastrar Compuesto justo a la derecha de Persona
Arrastrar Dosis encima de norte
Arrastrar máx. encima de Suma
Hacer clic Hecho
Haga clic en el pequeño triángulo rojo y seleccione Convertir en tabla de datos
Es posible que deba normalizar las unidades si eso es una consideración.