Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [EXCEL] Parametrizzare una funzione

    buongiorno a tutti, sono appena arrivato nel forum, dopo aver fatto qualche ricerca su google e visto che qua c'è veramente gente esperta chiedo il vostro aiuto

    avrei bisogno di parametrizzare una funzione di excel, mi spiego meglio:

    ho una colonna di quasi 1500 dati e di questi devo fare una sliding windows, o media mobile, stabilendo di che dimensione fare la finestra della media.. se utilizzo la funzione media questa finestra è fissa e scelgo a priori di quanta farla grossa, vorrei invece poter scegliere a posteriori la dimensione di questa finestra.

    se non sono stato chiaro di questi 1500 dati ne prendo, per esempio, 7 alla volta e ne faccio la media partendo da 1 a 7 poi da 2 a 8 poi da 3 a 9 e così via.. poi vorrei fare una media prendendone 31 e quindi da 1 a 31, da 2 a 32, da 3 a 33 eccetera e poi di 365.

    grazie a tutti!!

  2. #2
    su un altro forum mi è stata data questa dritta:

    scrivere in B1 l'ampiezza dell'intervallo letto e in C1 la formula seguente, nella colonna A i valori da mediare

    codice:
    =MEDIA(INDIRETTO("A"&RIF.RIGA(A1)&":A"&$B$1+RIF.RIGA(A1)-1))
    aggiungo delle modifiche che dovrei fare:

    mediare prendendo i valori prima e dopo, ad esempio:

    se la finestra della media è dispari, ad esempio 3, e calcolata sulla riga 5 devo prendere le righe 4-5-6.
    se la finestra della media è pari, ad esempio 4, e calcolata sempre sulla riga 5 devo prendere (3*1/2)-4-5-6-(7*1/2) praticamente il numero pari corrisponde a metà di quello prima e metà.

    in più devo farlo solo nelle caselle dove ci sono i n valori richiesti, quindi se chiedo una finestra di 7 ma se ho 5 valori non deve eseguirlo e restituire lo spazio vuoto

    grazie a chi si è interessato e ha letto il topic!

  3. #3
    Ciao,
    il suggerimento dell’altro forum è corretto e l’ho usato come punto di partenza.

    Alla fine sono arrivato a questa formula che mi sembra che funzioni ma l’ho fatta un po’ di fretta quindi potrebbe esserci qualcosa che non va, controllala bene.

    codice:
    =SE.ERRORE(SE(E(INDIRETTO("$A"&RIF.RIGA(B2)-INT(B$1/2))<>"";INDIRETTO("$A"&RIF.RIGA(B2)+INT(B$1/2))<>"");(SOMMA(INDIRETTO("$A"&RIF.RIGA($A2)-INT(B$1/2)+1&":$A"&RIF.RIGA($A2)+INT(B$1/2)-1))+(INDIRETTO("$A"&RIF.RIGA($A2)-INT(B$1/2))* (0,5+(B$1/2-INT(B$1/2))))+(INDIRETTO("$A"&RIF.RIGA($A2)+INT(B$1/2))*(0,5+(B$1/2-INT(B$1/2)))))/(CONTA.NUMERI(INDIRETTO("$A"&RIF.RIGA($A2)-INT(B$1/2)&":$A"&RIF.RIGA($A2)+INT(B$1/2)))-1+((B$1/2-INT(B$1/2))*2));"");"")
    Non te la spiego perché non ne ho il tempo ma non è tanto difficile, è solo lunga.

    Io ho inserito i dati nella colonna A a partire dalla riga 2 e nella riga 1 ho messo i valori di ampiezza della finestra come da immagine allegata.
    La formula che ti ho indicato è per la cella B2, dopo averla inserita lì, la copi/incolli in tutta l’area che ti interessa.

    Fammi sapere se ti funziona.
    Immagini allegate Immagini allegate
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  4. #4
    grazie mille, stasera la provo!

  5. #5
    risolto così grazie all'altro forum

    codice:
    =SE(CONTA.VALORI(INDIRETTO("A"&RIF.RIGA(A1)-ARROTONDA(($B$1-1)/2;0)&":A"&RIF.RIGA(A1)+ARROTONDA(($B$1-1)/2;0)))<$B$1;"";SE(CONTA.VALORI(INDIRETTO("A"&RIF.RIGA(A1)-($B$1-1)/2&":A"&RIF.RIGA(A1)+($B$1-1)/2))=$B$1;MEDIA(INDIRETTO("A"&RIF.RIGA(A1)-($B$1-1)/2&":A"&RIF.RIGA(A1)+($B$1-1)/2));SE(CONTA.VALORI(INDIRETTO("A"&RIF.RIGA(A1)-ARROTONDA(($B$1-1)/2;0)&":A"&RIF.RIGA(A1)+ARROTONDA(($B$1-1)/2;0)))=$B$1;"";SOMMA(INDIRETTO("A"&RIF.RIGA(A1)-ARROTONDA(($B$1-1)/2;0)+1&":A"&RIF.RIGA(A1)+ARROTONDA(($B$1-1)/2;0)-1);(INDIRETTO("A"&RIF.RIGA(A1)-ARROTONDA(($B$1-1)/2;0)))/2;INDIRETTO("A"&RIF.RIGA(A1)+ARROTONDA(($B$1-1)/2;0))/2)/($B$1))))

  6. #6
    funziona anche il tuo modo a parte quando inserisco 1 come valore che dovrebbe resistuire i valori originali. sto cercando di migliorare le due funzioni

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.