Excel: trova il valore relativo all'ID e compila un'altra cartella di lavoro


1

Sto lavorando in un piccolo ospedale in India con il seguente problema: Per un farmaco speciale abbiamo una lista con DATE, ID, DOSE, DURATION, NEXT VISIT che noi come lista di lavoro giornaliera (cartella di lavoro 1), significa che un ID (persona) può comparire più di una volta in questo elenco.

In un'altra cartella di lavoro abbiamo un "file master" (cartella di lavoro 2) con ciascun ID una sola volta ma il pattern (DATA, DURATA, SUCCESSIVA VISITA) viene ripetuto ogni volta che le persone ritornano (quindi DATE2, DURATION2, NEXT VISIT2)

Sto cercando un modo elegante per inserire automaticamente i dati dal mio elenco giornaliero (cartella di lavoro 1) nel foglio principale (cartella di lavoro 2). Quindi suppongo che avrei bisogno di alcune funzioni IF + INDEX / Match + Array per trovare l'ID nella cartella di lavoro 1, ottenere i valori per DATE1, DURATION1, NEXT VISIT2 e compilare alla cartella di lavoro 2, piuttosto che andare più in basso nell'elenco della cartella di lavoro 1, trova la prossima volta che arriva il paziente, recupera i dati e riempi la scheda di lavoro 2, ma ora nel DATE2 ... e così via.

Aggiungo due foto per spiegare il problema.

Foglio quotidiano:
enter image description here

Scheda principale: enter image description here

Risposte:


0
  1. È possibile trovare i valori con le formule. Avrai solo bisogno delle intestazioni per mostrare i numeri, ad es. 1 con il formato di 0 "visita st" eccetera.
  2. Sfortunatamente le funzioni non affronteranno mai due cose: perdita di dati e overflow. Immagina che il paziente si presenti per l'ottava volta e non si mostri nel tuo tavolo perché lo hai riempito solo fino a 7.

La funzione che stai probabilmente cercando è

=SUMPRODUCT(1*(A3>$A$3:$A$8),1*(B3=$B$3:$B$8))+1

che deve essere aggiunto alla cartella di lavoro uno e ti dirà il numero # della riunione, prima: 1, secondo: 2, ecc. Un altro problema con questa formula è che non distinguerà tra due numeri dello stesso valore. Se una persona ti visita due volte in un giorno (supponendo che tu non stia registrando fino alle ore), sarà conteggiata come una sola.


0

Come descritto nell'altra risposta puoi farlo con la formula ma potrebbe non essere la soluzione migliore / più semplice, io userei una delle seguenti opzioni:

Tabella pivot:

Probabilmente la soluzione più semplice ed elegante se puoi vivere con i suoi limiti:
- L'intervallo di destinazione non è modificabile (forse è anche positivo nel tuo caso).
- è possibile utilizzare solo valori numerici e di data nel corpo della tabella (solo il testo nell'esempio è tasso, ma è possibile impostare il formato numero personalizzato per mostrare "mg" dopo il numero).
Preparazione:
- aggiungi una nuova colonna nella tua tabella - VisitSequence: =countifs(f:f,f3,b:b,"<="&b3).
- crea una tabella pivot. Etichette colonne: ID; intestazioni di riga: VisitSequence; valori: data, dose, durata, visita successiva (dato che si dispone di una sola riga per ogni combinazione di date ID X è possibile utilizzare una somma o una media).

VBA:

Richiede molto più lavoro di pivot ma è molto più flessibile.

Accesso MS:

Strumento nativo per il rapporto che ti serve. Potrebbe richiedere un po 'di apprendimento da parte tua, ma può essere la migliore soluzione a lungo termine.

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.