Calcolo moda su valori alfanumerici

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Wonder_Donnie
00giovedì 27 aprile 2017 22:41
Ciao a tutti, sto mettendo a punto un foglio elettronico in cui raccolgo tutti i dati meteo che vengono registrati ogni 30 minuti circa.
Fra questi dati meteo c'è la direzione del vento e vorrei estrapolare la direzione più frequente in un determinato giorno.

I dati sono raccolti in questo modo:

Giorno Data Direzione
1 01/01/2017 00:10 SW
1 01/01/2017 00:40 SE
1 01/01/2017 01:10 NE
...
1 01/01/2017 23:10 S
1 01/01/2017 23:40 SE
2 02/01/2017 00:10 SW
2 02/01/2017 00:40 SW
2 02/01/2017 01:10 SW

E così via. Io ho fatto questo ragionamento:
1) Bisogna prima di tutto estrapolare in automatico i dati di un determinato giorno, cioè creare una matrice che contiene solo i dati del giorno 1, 2, 3, ecc.
2) Su questa matrice va calcolato il valore più frequente

In rete avrei trovato una formula che si comporta come la funzione MODA, cioè calcola il valore più frequente, ma su valori alfanumerici. Ovviamente non la comprendo e quindi non riesco ad applicarla come dovrei. La formula è questa:

=INDICE(A1:A10;CONFRONTA(MAX(CONTA.SE(A1:A10;A1:A10));CONTA.SE(A1:A10;A1:A10);0))

Viene applicata sulle caselle da A1 a A10.

L'ho testata ed effettivamente funziona, ma vorrei applicarla soltanto ai dati del giorno 1, 2, 3, ecc. Come potrei modificarla affinché funzioni?

Scusate per la complessità della domanda ma non ne vengo proprio a capo. Grazie!
Daiele
(Canapone)
00venerdì 28 aprile 2017 07:29
moda su alfanumerici
Ciao


Date/orari nella colonna A, direzione del vento (il dato alfanumerico) nella colonnna B, nella colonna C uso una colonna di servizio

=GIORNO(A1)

Una prima formula da provare potrebbe essere (condizione il giorno 3)

=INDICE(B1:B10;CONFRONTA(MAX(CONTA.PIÙ.SE(B1:B10;B1:B10;C1:C10;3));CONTA.PIÙ.SE(B1:B10;B1:B10;C1:C10;3);0))


da confermare con control+maiusc+invio

Oppure senza colonna di servizio

=INDICE(B1:B10;CONFRONTA(MAX(CONTA.SE(B1:B10;B1:B10));CONTA.SE(B1:B10;B1:B10)*(GIORNO(A1:A10)=3);0))


sempre matriciale


-----------------------

Stessa formula senza status matriciale:


=INDICE(B1:B10;CONFRONTA(MAX(INDICE(CONTA.SE(B1:B10;B1:B10);));INDICE(CONTA.SE(B1:B10;B1:B10)*(GIORNO(A1:A10)=3););0))



Se riesci ad allegare un piccolo esempio specificando la versione di Excel che hai in uso sarebbe d'aiuto.

Saluti
Wonder_Donnie
00venerdì 28 aprile 2017 19:49
Ciao (Canapone),
intanto grazie per la risposta! Ho applicato la prima formula perché si adatta bene al mio caso, avendo precedentemente creato una colonna con la funzione GIORNO().
Tuttavia per alcune caselle il programma mi restituisce #N/D e non capisco perché.
Ho allegato il file così forse ti torna più utile!

Daniele
Wonder_Donnie
00venerdì 28 aprile 2017 20:06
Credo di aver risolto, avevo fatto un errore nella formula lasciando il 3 al posto della casella del giorno. La formula corretta dovrebbe essere questa:

=INDICE(B$2:B$37;CONFRONTA(MAX(CONTA.PIÙ.SE(B$2:B$37;B$2:B$37;C$2:C$37;E5));CONTA.PIÙ.SE(B$2:B$37;B$2:B$37;C$2:C$37;E5);0))


Tuttavia ho notato che, se la funzione non ha i dati per un determinato giorno (per es. usando il giorno 7, nel mio esempio), restituisce in automatico SE. C'è modo di farle restituire un valore tipo #N/D, o comunque che si capisca che c'è qualcosa che non va?
(Canapone)
00sabato 29 aprile 2017 07:14
MODA ALFANUMERICI


Ciao,

riprendo i conta.più.se

=SE(CONTA.SE(C:C;E7);INDICE(B$2:B$37;CONFRONTA(MAX(CONTA.PIÙ.SE(B$2:B$37;B$2:B$37;C$2:C$37;E7));CONTA.PIÙ.SE(B$2:B$37;B$2:B$37;C$2:C$37;E7);0));"")


A parità di risultato la formula restituisce la prima "direzione" che trova.
Wonder_Donnie
00sabato 29 aprile 2017 11:02
Grazie infinite, sei stato prodigioso! [SM=g27828]
(Canapone)
00sabato 29 aprile 2017 11:08
MODA ALFANUMERICI


Ciao,

grazie a te dal riscontro.

Saluti

Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 09:24.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com