Manipola i dati in Excel per ordinare i risultati per una determinata colonna


1

Voglio rendere le informazioni in alcune colonne (ma non tutte) visualizzate in righe, vedi sotto un esempio.

Questo è quello che ho (purtroppo questo non consente spazi extra quindi tutto è disallineato, per favore prova a immaginare tutto allineato):

Patient     Visit 1     Visit 2     Visit 3     Visit 4(…)

1           22Dec       12Jan       03Feb    
2           3Jan        03Feb       01Mar
3           10Dec       03Jan       23Jan   
(…)

(ecc., database lungo con centinaia di pazienti)

Ecco come voglio che assomigli a:

Patient     Visit type      Date

1           Visit 1         22Dec
1           Visit 2         12Jan    
1           Visit 3         03Feb   
2           Visit 1         23Jan   
2           Visit 2         (…)   
(…)

Non comporta alcun calcolo, è solo una manipolazione dei dati, in sostanza ordina le visite per paziente, ma non sono sicuro di alcuna funzione che lo faccia, ha provato la tabella pivot ma non sembra farlo in questo modo ... Qualche suggerimento? Se non ci sono formule, pulsanti, ecc., Forse puoi suggerire una macro?

Grazie molto!


powerpivot può essere d'aiuto in questo
PeterH,

Risposte:


1

Con dati come:

inserisci qui la descrizione dell'immagine

In H2 inserire:

=ROUNDUP(ROWS($1:1)/6,0)

e copia verso il basso. Nella cella I2 inserisci:

=INDEX($B$1:$G$1,MOD(ROWS($1:1)-1,6)+1)

e copia verso il basso. In J2 inserire:

=INDEX($B$2:$G$10,ROUNDUP(ROWS($1:1)/6,0),MOD(ROWS($1:1)-1,5)+1)

e copia verso il basso:

inserisci qui la descrizione dell'immagine

NOTA:

Il 6 in queste formule corrisponde al numero di visite nella tabella di origine. Adatta in base alle tue esigenze.


0

Non era chiaro se si desidera una trasformazione continua o semplicemente trasformare i dati una volta. Se vuoi solo trasformare i tuoi dati una volta, ecco un suggerimento: immaginiamo che questi siano i tuoi dati ora:

inserisci qui la descrizione dell'immagine

Poiché hai un massimo di 4 visite per paziente, crea manualmente le righe per il primo paziente, in questo modo:

inserisci qui la descrizione dell'immagine

Per la colonna della data, applica VLOOKUP, cercando la colonna in base al tipo di visita:

inserisci qui la descrizione dell'immagine

Ora costruisci manualmente le righe per il secondo paziente, ma ora con alcune formule sarai in grado di spingere verso il basso:

inserisci qui la descrizione dell'immagine

Per la colonna della data, basta premere verso il basso quello che hai dal paziente 1:

inserisci qui la descrizione dell'immagine

Ora, seleziona tutto il blocco del paziente 2 e premi verso il basso:

inserisci qui la descrizione dell'immagine

Anche quando non c'è una data, funzionerà

inserisci qui la descrizione dell'immagine

Ti andrà bene?


0

Il mio approccio utilizza una tecnica di ricerca bidirezionale , proprio come una delle risposte sopra.

Vedere le immagini seguenti, che mostrano i dati del campione nella prima tabella, quindi l'elenco dei pazienti, il numero e la data della visita, tutti nell'ordine desiderato, nella seconda tabella.

inserisci qui la descrizione dell'immagine

Ecco le formule per ottenere il:

Elenco pazienti: nella cella A10,=INT((ROW(A1)-1)/5)+1

Elenco dei tipi di visita: nella cella B10,="Visit"&INT(MOD(ROW(A1)-1,5))+1

Elenco date nella cella C10,=INDEX($B$2:$F$8,MATCH(A10,A$2:A$8,0),MATCH(B10,$B$1:$F$1,0))

Trascina verso il basso tutte e 3 le formule, per quanto necessario.

Spero che questo ti aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.