Condizionale Concedi il contenuto della cella da diverse righeCiao,
Avere un caso come mostrato di seguito.
Vorrei concatenare le diverse righe di "Descrizione" per lo stesso "Caso #" in una cella combinata che si allinea con "Caso #"
per esempio C2 sta concatenando B2, B3, B4 che sono tutti per "Caso 1"
C5 sta concatenando B5 che è per "Caso 2"
C6 sta concatenando B6, B7 che sono tutti per "Caso 3"
Alla fine, eliminerà le righe ridondanti lasciando solo una riga per un caso # con le relative descrizioni nella seconda colonna
Le possibili # righe di descrizione variano a seconda del "Caso". Ci sono poche migliaia di "Case", è impossibile farlo manualmente
Vorrei chiedere qualche consiglio per farlo in JSL, se possibile, grazie:)

Ri: Condizionale Concedi contenuto di cella da diverse righePin,
Questo è abbastanza facile da fare in modo interattivo, il JSL è un po 'ingombrante, anche se il numero di descrizioni è sconosciuto e deve essere inserito nel codice. Per farlo interattivamente:
- Crea una colonna con i casi # compilati se non lo è già (ovvero, non vuoi che manchino valori in quella colonna). Questo può essere fatto con la formula
If( Row() == 1 | !Is Missing( oldColRef ),
oldColRef,
Lag( newColRef, 1 )
)
dove oldColRef è un riferimento alla colonna case precedente e newColRef fa riferimento alla colonna che si sta creando nella formula
- Seleziona la colonna Descrizione e Col> Utilità> Crea colonne indicatore
- Usa Tabelle> Riepilogo per riassumere in base alla nuova colonna del caso. Seleziona tutte le colonne dell'indicatore e scegli Max come statistica. Imposta il formato della colonna statistica su colonna. È possibile scollegare la tabella originale, ma non è necessario.

- Nella tabella risultante, seleziona tutte le colonne dell'indicatore, vai a Col> Utilità> Combina colonne. Assicurati di selezionare la casella Colonne selezionate sono Colonne indicatore.
La tabella risultante dovrebbe essere ciò che stai cercando, credo. Fammi sapere se funziona. Grazie a @brady_brady chi ha mostrato una variazione su questo nel suo 10+ cose che non sai di JMP® (EU 2018 424) Discorso alla scoperta. Se hai davvero, davvero, davvero bisogno del codice JSL, posso trovare qualcosa. Tuttavia, probabilmente non avrà senso per uno scripter principiante.
Ri: Condizionale Concedi contenuto di cella da diverse righeCiao Pin,
Ecco JSL per farlo. Ho anche un altro modo per farlo in modo interattivo, usando strumenti che automatizzano alcuni dei processi che Don descrive. Fammi sapere se ne hai bisogno; si trovano nel componente aggiuntivo "Strumenti tabella dati" nello scambio di file.
Come nota a margine, il passaggio 1 del processo di Don è possibile effettuare selezionando tutte le righe nella colonna, facendo clic con il tasto destro del mouse e selezionando "Sostituisci mancante con valore precedente". (Notare che questa opzione di menu appare solo quando nella colonna sono presenti valori mancanti o stringhe vuote.)
Torna alla sceneggiatura:
Lo script seguente presuppone che la colonna 1 sia denominata "col1", la colonna 2 sia denominata "col2" e crei una colonna denominata "Combinata", quindi modificale in base alle tue preferenze.
Ho allegato un tavolo con lo script in allegato; provalo, penso che farà quello che vuoi.
Saluti,
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);
);
Ri: Condizionale Concedi contenuto di cella da diverse righeMolto apprezzato @brady_brady @DonMcCormack
Sì, usando lo script, sono riuscito a farlo facilmente.
Più sforzo per imparare JSL, la speranza può scrivere qualcosa in futuro da solo:)