› Sviluppare funzionalita su Microsoft Office con VBA › statistica in funzione del mese
-
AutoreArticoli
-
Nel file allegato il foglio dati statistici elabora i dati provenienti da pazienti al momento funziona per i dati generali ma vorrei che a comando elaborasse i dati di un mese o bimestre o semestre prendendo dalla data lavorazione in pazienti. Grazie dell'attenzione.
Ma quali dati, tra quelli disponibili, vorresti che venissero visualizzati? Per dire, "moda patologie ICD9" su base mensile o bimestrale ricavando la data dal foglio pazienti? o "assegnazione", con lo stesso criterio?
Cioè sarebbe utile un esempietto. Fanne uno manualmente.Non riesco a farti un esempio a mano. Praticamente dovrebbe funzionare come se mettessi un filtro e contassi a mano per ogni argomento. Filtrando sulla data per un mese. Spero che possiate aiutarmi. Solo pratiche nel foglio dati statistici riesco a far funzionare ovvero filtrando per un mese e mettendo subtotale. Spero che possiate aiutarmi.
Vedo se riesco a cavare il ragno dal buco 😀
Il consiglio migliore è lavorare con le tabelle pivot (si possono realizzare anche grafici pivot).
Le pivot consentono di interrogare i dati e realizzare viste diverse a seconda delle esigenze, anche multiple, con la possibilità di gestire i filtri e gli intervalli.La criticità maggiore per quello che devi fare, però, sta nel fatto che la data immessa ne file di esempio è un numero, non una data, per effetto dell'altro thread che avevi aperto poco tempo fa, in cui chiedevi un modo per inserire la data senza dover digitare gli slash. Avevamo dato una soluzione ma è evidente che non va bene applicata al tuo caso. La data "02/11/2022", infatti, è così visualizzata per effetto della forzatura della personalizzazione del formato di cella, ma internamente è vista sempre come "2112022" (così come è stato digitato il dato). Non essendo una data, anche la pivot non la vede come tale e quindi eventuali filtri non funzionano come ci si aspetta.
Sostituito data ##/##/#### con gg/mm/aaaa. Quindi secondo te non si riesce a tirar fuori un vba. Purtroppo non ho mai lavorato con le pivot. Grazie sempre per l'attenzione.
Oh sì che si riesce. Avevo già proposto il codice in uno dei file già postati. Riporto qui il file con l'esempio VBA che trasforma il numero immesso in modo contiguo in una data e la tratta come tale.
Purtroppo non ho mai lavorato con le pivot
Sono ostiche, lo ammetto. Anche quando devo spiegarle ai miei colleghi, è sempre una fatica terribile. Dopo che ci si prende un po' di confidenza però, danno soddisfazione 🙂
Allegati:
You must be logged in to view attached files.Sto cercando di condizionare le formule che uso in dati statistici in funzione della data che mi serve ma sembra un lavoro infruttuoso.
Intendi raggiunger eun risultato come nell'immagine che allego? Ho utilizzato. CONTA.PIU.SE per ricavare il conteggio delle date minori del 30 novembre (restando sempre nel tuo file di esempio) impostando un criterio doppio.
Allegati:
You must be logged in to view attached files.Allora riallego il file modificato, magari ti aiuta. Ho anche cambiato leggermente la zona criterio, tanto se hai capito il meccanismo è indifferente.
Allegati:
You must be logged in to view attached files.Magari c'è una soluzione con formule più elegante della mia, che prevede l'estensione della formula con un'ulteriore criterio e l'allargamento delle celle contenenti i criteri: maggiore o uguale al primo del mese E minore o uguale all'ultimo del mese.
Vedi immagine allegata.
Allegati:
You must be logged in to view attached files.Scusami per la precedente ma funziona benissimo ho fatto un errore di punteggiatura.
=MATR.SOMMA.PRODOTTO((pazienti!$A:$A<>"")/CONTA.SE(pazienti!$A:$A;pazienti!$A:$A&""))
Questa formula elimina i pazienti duplicati si riesce a condizionarla alla data di un mese?. Spero di non disturbare troppo.
Nono sono sicuro di capire come può questa formula "eliminare i pazienti duplicati". Di passaggio noto la criticità dovuta al referenziare intere colonne per operazioni di conteggio, il che rallenta in misura considerevole l'elaborazione.
Ho studiato meglio la formula e ho capito che conta (non "elimina") i valori univoci dell'elenco (fermo restando che non dovresti indicare l'intera colonna come riferimento ma solo il range che contiene i dati).
Nel merito della domanda, spero che qualche mago delle formule si faccia sentire 🙂
ciao
non so se la tua formula funziona con i nomi
comunque per contare gli univoci con testo
=SOMMA(SE(FREQUENZA(SE(LUNGHEZZA(pazienti!A2:A1000)>0;CONFRONTA(pazienti!A2:A1000;pazienti!A2:A1000;0);"");SE(LUNGHEZZA(pazienti!A2:A1000)>0;CONFRONTA(pazienti!A2:A1000;pazienti!A2:A1000;0);""))>0;1))
se sono numeri
=MATR.SOMMA.PRODOTTO(--1/CONTA.SE($E$2:$E$700;$E$2:$E$700))-1
per il discorso del mese io ti consiglio
estrarre gli univoci della colonna A su una colonna nascosta e contarli
così non ti rompi più di tanto e le formule si semplificano
Ciao e scusatemi. Sono senza PC e nOn ho visto il file, magari non ho capito nulla
Tramite M.S.Prodotto non è sufficiente dire ….range = colonna_date. Per il mese..ex metti in A1 = 1/1/2022 ed in A2 = 31/1/2022 (esiste pura altro metodo da estrarre il mese senza A1+A2)
Matrice.Somma.Prodotto((range)*(range>=A1)*(range<=A2)*(la colonna che desideri))
Appena riesco tramite PC metterò la formula (sempre che abbia intuito il quesito)
-
AutoreArticoli
