array percentile
Hai un problema con Excel? 
array percentile
di Tao (utente non iscritto) data: 03/03/2015 17:39:41
Ciao Ragazzi, vorrei cercare di risolvere un gran problema che ho con gli array in vba.. Ho un matricione di 100 righe per 20 colonne che ho riempito con una macro.. vorrei calcolare il percentile con un certo livello di confidenza (99%) e la media per ogni colonna.. in matlab sarebbe molto più semplice.. ma sono sicuro una qualche soluzione si possa avere anche in vba.. potete aiutarmi? Grazie mille a tutti!
di Vecchio Frac data: 03/03/2015 18:39:09
Oltre che in MatLab, le funzioni Percentile e Media esistono anche come formule di Excel. Anzi di percentile ne esistono due versioni, della media addirittura nove, compresa la mediana.
di Tao (utente non iscritto) data: 03/03/2015 18:52:45
Ciao Vecchio Frac, grazie per la risposta.. si hai ragione.. però non so come applicarla al mio vettore.. ovvero io ho una macro che mi popola questa matriciona.. poi vorrei fare il percentile e la media su ogni singola colonna della matrice.. mantenendo comunque il tutto in memoria. non vorrei fare un print su un foglio.. Grazie!!
di Vecchio Frac data: 03/03/2015 20:58:24
Devi quindi calcolare per esempio la media del range A1:A100? La formula che metteresti nel foglio è =MEDIA(A1:A100), la corrispondente funzione in VBA è Worksheetfunction.Average(Range("A1:A100")). Il percentile è Worksheetfunction.Percentile() (per i dettagli dei parametri vedi l'help).
Nella macro dopo aver popolato la matrice fatti restituire media e percentile, e li assegni alla cella del totale.
Es. Range("A102") = Worksheetfunction.Average(Range("A1:A100"))
Quando hai capito il meccanismo si può utilizzare un ciclo For che scorre le tue venti colonne e in fondo ad ogni colonna inserisce media e percentile.
di Tao (utente non iscritto) data: 03/03/2015 21:51:46
Sorry Vecchio frac.. Non mi sono spiegato bene.. Supponiamo che io abbia una macro che mi riempie un matrice con 1000 righe e 20 colonne di numeri random ;).. Di ogni colonna dovrei avere la media e il percentile.. Purtroppo è molto oneroso stampare ogni volta questo array in un foglio perchè questa operazione mediamente la dovrò ripetere 50 volte :) e avrò 50 matrici ecc ecc .. a me interessa soltanto la media e il percentile per colonna.. Avevo pensato una sorta di resize.. Se nella macro ridimensiono il vettore con un ciclo potri mantenere solo la prima colonna .. Seconda ecc.. Questo dovrebbe permettermi di utilizzare le funzioni da te citate.. Come la vedi???
di Tao (utente non iscritto) data: 03/03/2015 22:00:10
La tua soluzione e onesta ma a me servirebbe una function così..
Function media (rg ())
Dim ris()
Redim ris(1 to Numerocolonne rg)
For i = 1 to numcolonne
For j=1 to numerorighe
Somma=rg(i,j)
Next j
Risaveragw(i,j) = somma/numerorighe
Rispercentole(i,j)=rg(:,j),99%
Next i
Ris = somma/numerorighe
Pseudo codice molto easy :) ma spero chiarisca!!! Se non complica :)
Vuoi Approfondire?