Contenido de celda de concatenación condicional de diferentes filasHola,
Tener un caso como se muestra a continuación.
Me gustaría concatenar las diferentes filas de "Descripción" para el mismo "Caso #" en una celda combinada que se alinea con "Caso #"
p.ej C2 es concatenación de B2, B3, B4, que son todos para el "Caso 1"
C5 es concatenación de B5 que es para "Caso 2"
C6 es concatenación de B6, B7, que son todos para el "Caso 3"
Al final, eliminará las filas redundantes dejando solo una fila para un Caso # con sus descripciones en la segunda columna
El número posible de filas de descripción varía según el "Caso". Hay pocos miles de "casos", es imposible hacerlo manualmente
Me gustaría buscar un consejo para hacerlo en JSL si es posible, gracias:)

Re: Contenido de celda de concatenación condicional de diferentes filasAlfiler,
Esto es bastante fácil de hacer de manera interactiva, el JSL es un poco engorroso, aunque debido a que el número de descripciones es desconocido y debe incluirse en el código. Para hacer esto interactivamente:
- Cree una columna con los números de caso rellenados si ya no lo está (es decir, no desea que falten valores en esa columna). Esto se puede hacer con la fórmula
If( Row() == 1 | !Is Missing( oldColRef ),
oldColRef,
Lag( newColRef, 1 )
)
donde oldColRef es una referencia a la columna de casos antiguos y newColRef hace referencia a la columna que está creando en la fórmula
- Seleccione la columna Descripción y Cols> Utilidades> Crear columnas indicadoras
- Use Tablas> Resumen para resumir por la nueva columna de caso. Seleccione todas las columnas indicadoras y elija Máx como estadística. Establezca el formato de columna estadística en columna. Puede desvincular a la tabla original, pero eso no es necesario.

- En la tabla resultante, seleccione toda la columna del indicador, vaya a Cols> Utilidades> Combinar columnas. Asegúrese de marcar la casilla Las columnas seleccionadas son columnas indicadoras.
La tabla resultante debería ser lo que estás buscando, creo. Hazme saber si esto funciona. Gracias a @brady_brady quien mostró una variación de esto en su Más de 10 cosas que no sabes sobre JMP® (EU 2018 424) Discovery talk. Si realmente, realmente, realmente necesitas el código JSL, puedo pensar en algo. Sin embargo, es probable que no tenga sentido para un guionista novato.
Re: Contenido de celda de concatenación condicional de diferentes filasHola pin
Aquí está JSL para hacer esto. También tengo otra forma de hacerlo interactivamente, usando herramientas que automatizan algunos de los procesos que Don describe. Avísame si necesitas esos; están en el complemento "Herramientas de tabla de datos" en el intercambio de archivos.
Como nota al margen, puede realizar el paso 1 del proceso de Don seleccionando todas las filas de la columna, haciendo clic con el botón derecho y seleccionando "Reemplazar valor perdido por valor anterior". (Tenga en cuenta que esta opción de menú solo aparece cuando en realidad hay valores faltantes o cadenas vacías, presentes en la columna).
De vuelta al guión:
El siguiente script asume que la columna 1 se llama "col1", la columna 2 se llama "col2" y crea una columna llamada "Combinada", así que cámbielas según sus preferencias.
He adjuntado una tabla con el guión adjunto; pruébalo, creo que hará lo que quieras.
Salud,
Brady
Names Default To Here(1);
dt = :col1 << get data table();
r = (dt << get rows where(:col1 == "" ));
for(i=1, i<=nrow(r), i++, dt:col1[r[i]] = dt:col1[r[i]-1]);
dt << new column ("Combined", character);
r = 1;
while (r <= nrow(dt),
set = dt << get rows where(:col1 == dt:col1[r]);
dt: Combined[r] = concatitems((dt:col2 << get values)[set], " ");
r += nrow(set);
);
Re: Contenido de celda de concatenación condicional de diferentes filasMuy apreciado @brady_brady @DonMcCormack
Sí, usando el script, logré hacerlo fácilmente.
Más esfuerzo para aprender JSL, la esperanza puede escribir algo en el futuro por mí mismo:)