Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Calcolo moda su valori alfanumerici

Ultimo Aggiornamento: 29/04/2017 11:08
Post: 1
Registrato il: 24/11/2012
Città: FIRENZE
Età: 33
Utente Junior
Excel 2016 MSO (16.0.4498.1000) 64 bit
OFFLINE
27/04/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
[Modificato da Wonder_Donnie 27/04/2017 22:43]
Post: 2.254
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
28/04/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
[Modificato da (Canapone) 28/04/2017 07:49]

Post: 1
Registrato il: 24/11/2012
Città: FIRENZE
Età: 33
Utente Junior
Excel 2016 MSO (16.0.4498.1000) 64 bit
OFFLINE
28/04/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
Post: 2
Registrato il: 24/11/2012
Città: FIRENZE
Età: 33
Utente Junior
Excel 2016 MSO (16.0.4498.1000) 64 bit
OFFLINE
28/04/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?
[Modificato da Wonder_Donnie 28/04/2017 20:09]
Post: 2.256
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
29/04/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.
[Modificato da (Canapone) 29/04/2017 11:08]

Post: 3
Registrato il: 24/11/2012
Città: FIRENZE
Età: 33
Utente Junior
Excel 2016 MSO (16.0.4498.1000) 64 bit
OFFLINE
29/04/2017 11:02

Grazie infinite, sei stato prodigioso! [SM=g27828]
Post: 2.257
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
29/04/2017 11:08

MODA ALFANUMERICI


Ciao,

grazie a te dal riscontro.

Saluti

[Modificato da (Canapone) 29/04/2017 11:24]

Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:42. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com