Excel e gli applicativi Microsoft Office Calcolo della mediana e del 90° percentile: PowerPivot o VBA

Login Registrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #20263 Score: 0 | Risposta

    planera63
    Partecipante

      Salve.

      Ho una grossa mole di dati su cui dovrei fare delle selezioni e poi calcolare delle statistiche come la media e la mediana e il 90° percentile. Mentre la media è possibile calcolarla tramite le Pivot table, di default per la mediana e il percentile non è possibile farlo. Tuttavia non conosco bene le potenzialità delle PowerPivot.

      Nel file allegato trovate due fogli. In Foglio2 ci sono una parte (Veneto e Friuli) dei dati originali: per ciascuna regione, ci sono i dati relativi a più parametri (Determinand_Nutrients) misurati (Concentration) in più stazioni (NationalStationID), campionate per tre anni in diverse date. In ciascuna stazione le misure sono state fatte a diverse profondità. Per il calcolo delle statistiche debbo selezionare solo quelli relativi alla profondità minore o a quella che si avvicina alla quota di 0,5 m.

      Conoscendo meglio Access e un po' di SQL per selezionare solo i dati relativi alla quota minima o a quella che si avvicina di più alla quota di 0,5 m, ho importati i dati in Access e poi tramite una query ho selezionato i dati che mi interessavano e li ho esportati in Excel (Foglio1).

      Potreste darmi una mano o nel gestire tutto il processo (selezione, aggregazione e statistiche) mediante routine VBA, quindi bypassando Access, oppure almeno nel poter aggregare i dati e calcolare la mediana e il 90° percentile tramite PivotTable o PowerPivot o mediante VBA ?

      Grazie

       

      Allegati:
      You must be logged in to view attached files.
      #20265 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        planera63 ha scritto:

        per selezionare solo i dati relativi alla quota minima o a quella che si avvicina di più alla quota di 0,5 m, ho importati i dati in Access e poi tramite una query ho selezionato i dati che mi interessavano

        In Foglio1 ci sono valori di "SampleDepth" che sfondano la misura di 0,5: è corretto?

        planera63 ha scritto:

        mediante routine VBA, quindi bypassando Access

        Non ho capito la correlazione: anche Access è dotato di VBA.

        planera63 ha scritto:

        calcolare la mediana e il 90° percentile

        Sono ignorante e non competo, ma se ci sono formule che calcolano mediana e percentile, si possono applicare anche via codice. Se Excel è già fornito di funzioni incorporate che calcolano tali valori, nel caso più brutale si potrebbe perfino (da Access) aprire un oggetto Excel e sfruttare brutalmente il suo oggetto WorksheetFunction per farsi fare i calcoli da lui.

        planera63 ha scritto:

        Potreste darmi una mano

        Ma tu alla fine devi realizzare anche dei grafici?

         

         

        #20266 Score: 0 | Risposta

        Marius44
        Moderatore
          58 pts

          Ciao

          I dati in Foglio1 non mi sembra siano stati estratti dal Foglio2 o, quanto meno, manca qualcosa.

          Le colonne denominate "Temperature", "Salinity" e "Chl_a" da dove vengono fuori?

          Il dato "più vicino a 0,50" è calcolato in base ad una percentuale (in più o in meno) rispetto a tale misura? E in caso affermativo, quale è questa percentuale? Oppure determinare cosa intendiamo per "più vicino".

          Non credo sia necessario scomodare Access in quanto la quantità di dati è gestibile da Excel. Inoltre Excel ha le Funzioni Media, Mediana e Percentile, oltre a buona scorta di Grafici.

          Ciao,

          Mario

          #20267 Score: 0 | Risposta

          planera63
          Partecipante

            Grazie.

            Cerco di rispondere ad entrambi.

            I dati di Foglio1 sono il risultato di una query applicata all'insieme dei dati. Ovviamente non ho preso tutti i campi.

            Le colonne denominate "Temperature", "Salinity" e "Chl_a" sono alcuni dei parametri presenti nel campo "Determinand_Nutrients", ovviamente traslati.

            Per quanto riguarda il dato più vicino alla profondità forse non mi sono spiegato bene. Comunque utilizzando il filtro potrete capire meglio.

            Ogni misura dei parametri (Temperature", "Salinity" e "Chl_a) è associata ad una profondità. A me interessa selezionare i valori di questi parametri misurati alla profondità che più si avvicina a 0.5 m di profondità. Se ho delle misure fatte a 0.2, 0.4 e 1.2, in questo caso voglio selezionare solo quelle relativa alla quota 0.4.  Se ho delle misure fatte a 0.3, 1.2 e 2.0, in questo caso voglio selezionare solo quelle relativa alla quota 0.3. Come vedete la quota per la quale voglio le misure non sempre  è quella minima, ma è variabile.  

            Io ho pensato che per ottenere ciò debbo prendere il minimo del valore assoluto dell'espressione (0.5 - SampleDepth), però non saprei come implementare ciò in VBA e fare le aggregazioni successive e le statistiche. 

            Non so se è possibile gestire tutto con EXCEL, in quanto sommando i dati per Adriatico, Ionio e Tirreno ho circa 1000000 di record per tre anni.

            Se fosse possibile gestire tutto in EXCEL potrei tenere separato i dati in tre file XLS.

            Spero di aver chiarito i vostri dubbi. Se sarebbe troppo complesso realizzare una routine VBA per gestire tutto il processo, posso continuare a gestire la selezione dei dati che mi interessano in ACCESS e poi l'aggregazione e il calcolo delle statistiche in EXCEL. 

             

             

             

             

             

            #20270 Score: 0 | Risposta

            patel
            Moderatore
              51 pts

              credo tu abbia messo troppa carne al fuoco, non capisco a cosa ti servirebbe il VBA, se hai i dati non ti bastano le formule ?

               

              #20274 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                planera63 ha scritto:

                potrei tenere separato i dati in tre file XLS

                Un milione di righe sarebbero in teoria gestibili da Excel > 2003 (se parli di xls non so se questo è il tuo scenario). Ma per queste operazioni lascerei che sia Access a gestire una tale mole di dati. In verità quello che (mi) manca per darti un'opinione di fattibilità è un esempio concreto del risultato da raggiungere 🙂

                Perchè quasi qualsiasi cosa si può fare con VBA, basta sapere cosa si vuole ottenere/calcolare/mostrare. Con formule, come dice patel, potrebbe essere sufficiente, ma anche qui, non sappiamo dove devi andare a parare esattamente.

                #20288 Score: 0 | Risposta

                planera63
                Partecipante

                  Grazie Vecchio Frac per la disponibilità.

                  Cercherò di essere il più chiaro possibile.

                  Innanzitutto dovresti scaricare il file xlsx allegato al mio primo post.

                  Poi seleziona nel Foglio2 tramite il filtro la NationaStationID = 50530. Vedrai che per il giorno 19/1/2016  hai valori di Salinity (colonna K), Temperature e altri parametri, a profondità molto vicine alla superficie (0.44, 0.42, 0.71, 0.75; colonna O). Tramite una query applicata ai dati originali (Foglio1) esportati in Access io ho i dati selezionati nel Foglio1, che contengono per questa stazione 50530 alla data del 19/1/2016 , i dati corrispondenti alla quota minima (0.42 m). Invece io vorrei selezionare solo i dati corrispondenti alla quota più vicina a 0.5 m: nel nostro caso sarebbe la quota 0.44. Tuttavia in Access non sono riuscito a scrivere una query che facesse questa operazione.

                  Una volta selezionati i valori che mi interessano, poi vorrei aggregarli a vari livelli (dati aggregati spazialmente per stazione, o per regione o per sottodivisione, e temporalmente per anno, o per i tre anni di campionamento,), calcolando diverse  statistiche: media, deviazione standard, min, max, mediana, 90 percentile, 95 percentile.

                  Spero di essere stato chiaro.

                  Notte

                Login Registrati
                Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
                Rispondi a: Calcolo della mediana e del 90° percentile: PowerPivot o VBA
                Gli allegati sono permessi solo ad utenti REGISTRATI
                Le tue informazioni: