Media in un intervallo dinamico



  • Media in un intervallo dinamico
    di aieiebrazov data: 28/11/2014 18:01:21

    Buona sera a tutti gli utenti, sono nuovo del forum e della programmazione in vba e per questo mi scuso per la domanda che vado a porre che potrebbe essere banale per molti.
    In questi giorno sto cercando di realizzare un foglio di calcolo costituito da tabelle e dati e mi sono arenato su un problema di calcolo. vado a esporre il mio problema:
    Ho una tabella costituita da due colonne e 100 righe ( il numero delle righe e variabile). Vorrei creare una funzione o regola che mi permetta di calcolare le medie tra i valori compresi nella seconda colonna conoscendo gli intervalli che possono essere variabili nella prima colonna.
    In altre parole, data la tabella A1:B100, i valori presenti nella colonna A sono crescenti e non ripetitivi ( partendo da 0.2 abbiamo 0.4,0.6,0.8 etc) fino a 20, nella cella C1 inserisco un valore presente nella colonna A, ad esempio 0.6 e nella cella D1, qui nasce il mio problema, vorrei calcolare la media dei valori presenti nella colonna B compresi tra 0.6 e 0.2. Proseguendo, nella cella C2 inserisco il valore 1.6 e nella cella D2 vorrei calcolare la media dei valori compresi nella colonna B tra 1.6 0.8 . Spero di essere stato chiaro e mi scuso fin d'ora per la mia goffaggine con Excel. Un saluto a tutti


  • Media intervallo dinamico
    di aieiebrazov data: 28/11/2014 18:47:33

    Per chiarezza ho fatto l'upload della bozza del file Excel. Nel foglio di lavoro "Analisi" è presente la tabella con quattro colonne (Prof, Qc,fs e FR), mentre nel foglio "elaborazione" vorrei rappresentare i dati che mi interessano. In particolare, aggiungendo quote di profondità crecenti nelle nelle O6-O7,O8 etc vorrei calcolare la media di Qc negli intervalli specificati. Nell'esempio vorrei calcolare la media a 0.2, la media nell'intervallo compreso tra 0.6 e 1, tra 1.2 e 2.6, tra 2.8 e 10.2 etc. Grazie ancora



  • di Mister_x (utente non iscritto) data: 28/11/2014 18:54:10

    ciao

    in C1
    C1=SE.ERRORE(MEDIA(B1:INDIRETTO("B"&CONFRONTA(D1;A$1:A$100;0)));"Valore non presente ")
    in C2 e dopo puoi trascinare
    C2=SE.ERRORE(MEDIA(INDIRETTO("B"&CONFRONTA(D1+0,2;A$1:A$100;0)):INDIRETTO("B"&CONFRONTA(D2;A$1:A$100;0)));"Valore non presente")

    questo si intende stando ai tuoi parametri di colonna A con valore 0,2 0,4 ecc. fino a 20

    allego il file di prova

    ciao






  • di aieiebrazov data: 30/11/2014 15:57:11

    Grazie Mister_x per la risposta, ma ho provato a testare il file e ho visto che inserendo il valore 0.4 in D1, la funzione non riesce a calcolare eventuali parametri successivi.......MAHHH!!!!!!!! MISTERO



  • di Mister_x (utente non iscritto) data: 30/11/2014 22:59:44

    ciao

    siamo incappati in quei casi che excel quando fa i calcoli va a inserire un valore chiamiamolo millesimale e quindi non trova il corrispondente,
    come saprai noi facciamo 1+1 = 2 questo e' un esempio
    excel invece per interpretare un numeo o una lettere non sono altro che 10101010 o 00111100 quindi puo' capitare che in questo caso excel facendo in una formula 0,4+0,2 per noi il risultato e' 0,6 ma forse in questo caso come capita' in altri casi il valore il valore puo' essere 0,60000000000100 ed e' quell'uno che manda intilt le formule,
    quindi nel tuo caso rimediamo, si intende e' solo un rimedio inserendo al primo Confronta() al posto di 0 un 1

    C2=SE.ERRORE(MEDIA(INDIRETTO("B"&CONFRONTA(D1+0,2;A$1:A$100;1)):INDIRETTO("B"&CONFRONTA(D2;A$1:A$100;0)));"Valore non presente")

    vedro' se e' possibile domani rimediare con un'altra soluzione meno invasiva
    ti faro sapere
    per adesso rimaniamo con questa soluzione

    ciao








  • di MIster_x (utente non iscritto) data: 01/12/2014 09:58:04

    ciao

    come si suol dire LA NOTTE PORTA CONSIGLIO

    usiamo la funzione Arrotonda()

    C2=SE.ERRORE(MEDIA(INDIRETTO("B"&CONFRONTA(ARROTONDA(D1+0,2;2);A$1:A$100;0)):INDIRETTO("B"&CONFRONTA(D2;A$1:A$100;0)));"Valore non presente")

    ciao





  • di aieiebrazov data: 01/12/2014 11:32:36

    STANDING OVATION PER MISTER_X