Risolto estrarre e ordinare dati di una data certa

7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#1
Buon Giorno ho un foglio lavoro che riempio giornalmente e mi dà vari risultati in altri fogli ma in questo momento sono arenato ho fatto un piccolo file di esempio che forse sarà piu chiaro della mia spiegazione
scegliendo una data ho bisogno che mi vengano restituiti tutti i valori di quel giorno che si troveranno in una riga e varie colonne in ordine crescente.....

non so proprio come cominciare
indicatemi la strada da percorrere grazie
 

Allegati

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
12,788
130
63
Como
2011MAC 2016WIN
Miglior risposte
57
#2
  • ges

    ges

Ciao,
per me non è molto chiaro l'esempio, non riporta quello che vuoi ottenere, giusto?
 

genio66

Utente abituale
Expert
25 Marzo 2017
625
67
28
Friuli
LibreOffice 6
Miglior risposte
19
#5
Buonasera! con le formule non ho trovato il modo di ordinare in modo crescente, per il resto, in B30 per le note
=SE(INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0))=0;"";INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0)))
In E30
=SE.ERRORE(INDICE($B$1:$G$1;;PICCOLO(SE((INDIRETTO("B"&CONFRONTA($A$29;$A$2:$A$10;0)+1&":G"&CONFRONTA($A$29;$A$2:$A$10;0)+1)<>"")*($B$1:$G$1<>"cosa");RIF.COLONNA($B$1:$G$1)-1);RIF.RIGA($A1)));"")
formula matriciale da confermare con la combinazione CTRL+MAIUSCOLO+INVIO
In C30
=SE.ERRORE(SINISTRA(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0)+1);2);"")
Qui però per avere un risultato corretto devi inserire uno spazio la dove il dato comincia con una sola cifra.
Infine in D30
=SE.ERRORE(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0));"")
Queste per la prima tabella, nella seconda va modificato nelle formule $A$29 con $A$39 (o con la cella dove si trova la data per esaminare i valori)
 

Allegati

Ultima modifica:
7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#7
ho cominciato ad applicarlo al mio file... devo ripassare tutti i riferimenti e riparare qualche mia inesatezza ma come inizio ci siamo per ora grazie al piu presto faccio sapere i risultato:felice:
a tutti buon lavoro
 
Ultima modifica:

pkrome59

Utente assiduo
Expert
26 Settembre 2015
1,574
48
48
59
Reggio Calabria
Office 2013
Miglior risposte
8
#8
Buona sera, rispetto al file d'esempi senza apportare alcuna modifica strutturale, un'alternativa alle ottime soluzioni già proposte, potrebbe essere la seguente:

In F30:
=SE(E($C30="";$D30="";$E30="");"";SE.ERRORE(SE(INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0))=0;"";INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0)));""))
da trascinare giù;

In C30:
=SE.ERRORE(PICCOLO(SE(VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))))<>0;VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))));"");RIGHE($A$1:$A1));"")
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In D30:
=SE($C30="";"";SE.ERRORE(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;AGGREGA(15;6;(RIF.RIGA($C$30:$C$34)-RIF.RIGA($C$30)+1)/(SE(VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))))<>0;VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))));"")=$C30);CONTA.SE($C$30:$C30;$C30))*2));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In E30:
=SE($C30="";"";SE.ERRORE(INDIRETTO(INDIRIZZO(1;AGGREGA(15;6;(RIF.RIGA($C$30:$C$34)-RIF.RIGA($C$30)+1)/(SE(VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))))<>0;VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))));"")=$C30);CONTA.SE($C$30:$C30;$C30))*2));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù.
Allego il file di prova, fa sapere se va bene, ciao.
 

Allegati

7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#11
Grazie Pkrome59 per il tempo dedicato.
Ho appena aperto il tuo file notando che le note vengono ripetute più volte il che non e necessario anche perche a volte sono lunghe e diventerebbero illeggibili.
Poi -almeno nel mio pc -le colonne quanto e chi non funzionano e non riportano nulla.
Nota che ho solo aperto il file senza modificarlo, ma non mi sembra girare bene
 
7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#12
buonasera genio66 ho messo il riepilogo su un foglio nuovo e espanso i vari parametri in base alle mie esigenze

credo di aver sbagliato qualcosa perche oltre al .....matias.... non riesco ad ottenere altri risultati ce qualcosa che mi sfugge
 
7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#13
Buonasera! con le formule non ho trovato il modo di ordinare in modo crescente, per il resto, in B30 per le note
=SE(INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0))=0;"";INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0)))
In E30
=SE.ERRORE(INDICE($B$1:$G$1;;PICCOLO(SE((INDIRETTO("B"&CONFRONTA($A$29;$A$2:$A$10;0)+1&":G"&CONFRONTA($A$29;$A$2:$A$10;0)+1)<>"")*($B$1:$G$1<>"cosa");RIF.COLONNA($B$1:$G$1)-1);RIF.RIGA($A1)));"")
formula matriciale da confermare con la combinazione CTRL+MAIUSCOLO+INVIO
In C30
=SE.ERRORE(SINISTRA(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0)+1);2);"")
Qui però per avere un risultato corretto devi inserire uno spazio la dove il dato comincia con una sola cifra.
Infine in D30
=SE.ERRORE(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0));"")
Queste per la prima tabella, nella seconda va modificato nelle formule $A$29 con $A$39 (o con la cella dove si trova la data per esaminare i valori)
buonasera ho messo il riepilogo su un foglio nuovo e espanso i vari parametri in base alle mie esigenze

credo di aver sbagliato qualcosa perche oltre al .....matias.... non riesco ad ottenere altri risultati ce qualcosa che mi sfugge
intendo dire che mi scrive solo la prima riga poi basta
qualche parametro che aumentando le colonne e le righe dovrei cambiare?
 

pkrome59

Utente assiduo
Expert
26 Settembre 2015
1,574
48
48
59
Reggio Calabria
Office 2013
Miglior risposte
8
#14
Ciao, mi sono accorto adesso che utilizzi office 2007 che non supporta la funzione aggrega per cui nel tuo caso va sostituita con la funzione piccolo().

In F30:
=SE(E($C30="";$D30="";$E30="");"";SE.ERRORE(SE(INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0))=0;"";INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0)));""))
da non trascinare;

In C30 mantieni la stessa formula;

In D30:
=SE($C30="";"";SE.ERRORE(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;PICCOLO(SE.ERRORE(SE((SE(VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))))<>0;VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))));"")=$C30);RIF.RIGA($C$30:$C$34)-RIF.RIGA($C$30)+1);FALSO);CONTA.SE($C$30:$C30;$C30))*2));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In E30:
=SE($C30="";"";SE.ERRORE(INDIRETTO(INDIRIZZO(1;PICCOLO(SE.ERRORE(SE((SE(VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))))<>0;VALORE(SINISTRA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));LUNGHEZZA(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))))-LUNGHEZZA(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SE(T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})))<>"";T(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7})));NUM(INDIRETTO(INDIRIZZO(CONFRONTA($A$29;$A$2:$A$10;0)+1;{3.5.7}))));0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;""))));"")=$C30);RIF.RIGA($C$30:$C$34)-RIF.RIGA($C$30)+1);FALSO);CONTA.SE($C$30:$C30;$C30))*2));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;
Allego il file di prova, fa sapere se va bene, ciao.
 

Allegati

Mi Piace: ges

pkrome59

Utente assiduo
Expert
26 Settembre 2015
1,574
48
48
59
Reggio Calabria
Office 2013
Miglior risposte
8
#16
Ciao se i dati da analizzare hanno le caratteristiche del file postato per ultimo, le formule si riducono di molto.
Con queste condizioni si ha:
In foglio "Controllo Dati"
In B8:
=SE($C$8="";"";INDICE(Giorni..!$B$3:$B$109;CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)))

In C8:
=SE.ERRORE(PICCOLO(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))<>0;NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})));"");RIGHE($A$1:$A1));"")
da trascinare giù;

In D8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In E8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;
Allego il file di prova, ciao.
 

Allegati

Mi Piace: Gerardo Zuccalà
7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#17
Ciao se i dati da analizzare hanno le caratteristiche del file postato per ultimo, le formule si riducono di molto.
Con queste condizioni si ha:
In foglio "Controllo Dati"
In B8:
=SE($C$8="";"";INDICE(Giorni..!$B$3:$B$109;CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)))

In C8:
=SE.ERRORE(PICCOLO(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))<>0;NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})));"");RIGHE($A$1:$A1));"")
da trascinare giù;

In D8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In E8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;{6.8.10.12})))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;
Allego il file di prova, ciao.
buona sera notavo che sei riuscito a mettere in ordine crescente i giri ma hai tolto la funzione sinistra per copiare solo 2 dati nella colonne cosa/giro

ma sopratutto perche se aggiungo un altro dato in un altra colonna non lo vede come dovrei modificare la formula per aumentare le colonne
 

Allegati

7 Ottobre 2018
16
1
3
excel 2007
Miglior risposte
0
#18
Buonasera! con le formule non ho trovato il modo di ordinare in modo crescente, per il resto, in B30 per le note
=SE(INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0))=0;"";INDICE($I$2:$I$9;CONFRONTA($A$29;$A$2:$A$10;0)))
In E30
=SE.ERRORE(INDICE($B$1:$G$1;;PICCOLO(SE((INDIRETTO("B"&CONFRONTA($A$29;$A$2:$A$10;0)+1&":G"&CONFRONTA($A$29;$A$2:$A$10;0)+1)<>"")*($B$1:$G$1<>"cosa");RIF.COLONNA($B$1:$G$1)-1);RIF.RIGA($A1)));"")
formula matriciale da confermare con la combinazione CTRL+MAIUSCOLO+INVIO
In C30
=SE.ERRORE(SINISTRA(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0)+1);2);"")
Qui però per avere un risultato corretto devi inserire uno spazio la dove il dato comincia con una sola cifra.
Infine in D30
=SE.ERRORE(INDICE($B$2:$G$10;CONFRONTA($A$29;$A$2:$A$10;0);CONFRONTA($E30;$B$1:$G$1;0));"")
Queste per la prima tabella, nella seconda va modificato nelle formule $A$29 con $A$39 (o con la cella dove si trova la data per esaminare i valori)
eccomi avrei modificato le formule con i nuovi colegamenti a altre celle ma a parte le note non funziona, non riesco a capire cosa mi sfugge.... un aiutino
:piango:considerando che dovrei usare tutte le colonnne
 

Allegati

Ultima modifica:

pkrome59

Utente assiduo
Expert
26 Settembre 2015
1,574
48
48
59
Reggio Calabria
Office 2013
Miglior risposte
8
#19
Ciao basta inserire un intervallo espandibile, per cui le formule diverranno:
In foglio "Controllo Dati"
In B8:
=SE($C$8="";"";INDICE(Giorni..!$B$3:$B$109;CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)))

In C8:
=SE.ERRORE(PICCOLO(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0)>0;RIF.COLONNA(Giorni..!$A$2:$Z$2));RIF.RIGA(INDIRETTO("A1:A"&MATR.SOMMA.PRODOTTO(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0))))))))<>0;NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA('Controllo Dati'!$A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0)>0;RIF.COLONNA(Giorni..!$A$2:$Z$2));RIF.RIGA(INDIRETTO("A1:A"&MATR.SOMMA.PRODOTTO(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0))))))));"");RIGHE($A$1:$A1));"")
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In D8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0)>0;RIF.COLONNA(Giorni..!$A$2:$Z$2));RIF.RIGA(INDIRETTO("A1:A"&MATR.SOMMA.PRODOTTO(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0))))))))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;

In E8:
=SE($C8="";"";SE.ERRORE(INDIRETTO("Giorni..!"&INDIRIZZO(2;PICCOLO(SE.ERRORE(SE(NUM(INDIRETTO("Giorni..!"&INDIRIZZO(CONFRONTA($A$6;Giorni..!$A$3:$A$109;0)+2;PICCOLO(SE(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0)>0;RIF.COLONNA(Giorni..!$A$2:$Z$2));RIF.RIGA(INDIRETTO("A1:A"&MATR.SOMMA.PRODOTTO(SE.ERRORE(TROVA(Giorni..!$F$2;Giorni..!$A$2:$Z$2);0))))))))=$C8;RIF.RIGA($A$3:$A$109)-RIF.RIGA($A$3)+1);FALSO);CONTA.SE($C$8:$C8;$C8))*2+3));""))
formula matrice da attivare con i tasti ctrl+maiuscolo+invio e successivamente da trascinare giù;
In rosso l'intervallo espandibile.
Allego il file di prova, ciao.
 

Allegati

Mi Piace: cristian69

genio66

Utente abituale
Expert
25 Marzo 2017
625
67
28
Friuli
LibreOffice 6
Miglior risposte
19
#20
Ciao ho corretto le formule adattandole al nuovo file.
In E8, matriciale
=SE.ERRORE(INDICE('Giorni..'!$E$2:$AA$2;PICCOLO(SE((INDIRETTO("'Giorni..'!E"&CONFRONTA($A$6;'Giorni..'!$A$3:$A$109;0)+2&":AA"&CONFRONTA($A$6;'Giorni..'!$A$3:$A$109;0)+2)<>"")*('Giorni..'!$E$2:$AA$2<>"cosa");RIF.COLONNA('Giorni..'!$E$2:$AA$2)-4);RIF.RIGA($A1)));"")

In rosso ti ho messo le modifiche: il nome del foglio 'Giorni..'!
Il +2 dopo il confronta perchè l'intervallo comincia da A3 e dovendo trovare il numero di riga bisogna correggere aggiungendo 2 al risultato del confronta.
Il -4 perchè l'intervallo delle intestazioni comincia dalla colonna E e siccome RIF.COLONNA('Giorni..'!$E$2:$AA$2) inizia il conteggio delle colonne da 5 (5, 6, 7, ecc...) per farlo iniziare da 1 si sottrae il numero di colonne che precedono l'inizio dell'intervallo, in questo caso per l'appunto 4.

Le altre due formule sono, in D8
=SE.ERRORE(INDICE('Giorni..'!$E$3:$AA$109;CONFRONTA($A$6;'Giorni..'!$A$3:$A$109;0);CONFRONTA($E8;'Giorni..'!$E$2:$AA$2;0));"")
In C8
=SE.ERRORE(SINISTRA(INDICE('Giorni..'!$E$3:$AA$109;CONFRONTA($A$6;'Giorni..'!$A$3:$A$109;0);CONFRONTA($E8;'Giorni..'!$E$2:$AA$2;0)+1);2);"")
In queste ultime due è bastato aggiungere il nome del foglio prima dell'intervallo di celle.

Ps.: come prima le mie formule non mettono in ordine i risultati, a differenza di quelle di pkrome59_43_
... ah dimenticavo che nella prima formula ho aumentato il range fino alla colonna AA
 

Allegati

Ultima modifica:

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!