correzzione formula matriciale

Full Version   Print   Search   Utenti   Join     Share : FaceboolTwitter
maxma62
00Friday, September 6, 2019 9:00 PM
Salve questa formula matriciale nella colonna B

=SE.ERRORE(INDICE(TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0;CONFRONTA(0;SE(TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0<>1;CONTA.SE(Grafici!$B$1:Grafici!$B1;TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0));0));"")


nel foglio "grafici" aggiorna i mesi del foglio "in".
Nelle colonne seguenti le formule nelle colonne C/D/E/F/G sempre del foglio "grafici"
aggiorna il conteggio dei mesi dei foglio Si/qu/de/in/pr
Purtroppo se un mese dei fogli Si/qu/de/pr non è presente nel foglio "in" la formula matricile non si aggiorna.
La modifica che chiedo è che la formula matriciale aggiorni tutti i mesi presenti in tutti i fogli.
Spero di essermi spiegato.
Allego esempio.
DANILOFIORINI
00Saturday, September 7, 2019 4:16 PM
Buonasera
io personalmente non ho capito l'obiettivo...prova a spiegare meglio e magari allegare il file con i risultati da ottenere inseriti a mano
dodo47
00Saturday, September 7, 2019 4:43 PM
poco chiaro...sembra tu voglia contare quante righe dei singoli mesi ci siano nei vari fogli.

comunque perchè in col B di grafici non metti semplicemente le date di tutti i mesi dell'anno a partire da gen a dic al posto di quella formula?

saluti



maxma62
00Sunday, September 8, 2019 11:06 AM
Ciao,
spero di spiegarmi.
La formula matriciale in foglio "grafici" celle B2:B25

=SE.ERRORE(INDICE(TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0;CONFRONTA(0;SE(TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0<>1;CONTA.SE(Grafici!$B$1:Grafici!$B1;TESTO(in!$B$6:$B$1429;"mmm/aaaa")+0));0));"")


è riferita al foglio "in"
La modifica che chiedo è che la formula faccia il conteggio per tutti i fogli "si/qu/de/in/pr" in modo che tutti i mesi dei fogli siano presenti.
dodo47
00Sunday, September 8, 2019 11:26 AM
Ripeto:
c'è un motivo per il quale non riporti senza formula tutti i mesi dell'anno a prescindere che esistano nei fogli o meno? Mal che vada ti ritrovi la riga a zero

saluti



maxma62
00Sunday, September 8, 2019 11:31 AM
Perchè la colonna dei mesi B2:B25 è collegata a un grafico
dodo47
00Sunday, September 8, 2019 1:08 PM
ciao
a mio avviso è poco probabile che una formula possa fare quello che chiedi.

In sintesi si tratterebbe di "spazzolare" tutti i fogli alla ricerca di tutte le date (mese-anno) presenti.

Lo potrebbe fare una macro.

saluti



maxma62
00Sunday, September 8, 2019 7:03 PM
Questa formula matriciale lavora su 3 colonne A/B/C

=SE.ERRORE(SE.ERRORE(SE.ERRORE(INDICE($A$2:$A$200;CONFRONTA(0;CONTA.SE($F$1:F1;$A$2:$A$200)+($A$2:$A$200="");0));INDICE($B$2:$B$200;CONFRONTA(0;CONTA.SE($F$1:F1;$B$2:$B$200)+($B$2:$B$200="");0)));INDICE($C$2:$C$200;CONFRONTA(0;CONTA.SE($F$1:F1;$C$2:$C$200)+($C$2:$C$200="");0)));"")

è possibile aggiungere altre 2 colonne D/E?
Nell'allegato la formula è modificata anche per il controllo su 5 fogli,
ma non so come aggiingere come per la formula allegata altri 2 fogli

=SE.ERRORE(SE.ERRORE(SE.ERRORE(INDICE(Foglio1!$B$6:$B$200;CONFRONTA(0;CONTA.SE($G$1:G1;Foglio1!$B$6:$B$200)+(Foglio1!$B$6:$B$200="");0));INDICE(Foglio2!$B$6:$B$200;CONFRONTA(0;CONTA.SE($G$1:G1;Foglio2!$B$6:$B$200)+(Foglio2!$B$6:$B$200="");0)));INDICE(Foglio3!$B$6:$B$200;CONFRONTA(0;CONTA.SE($G$1:G1;Foglio3!$B$6:$B$200)+(Foglio3!$B$6:$B$200="");0)));"")
DANILOFIORINI
00Sunday, September 8, 2019 11:30 PM
Buonasera
Se alleghi il file senza formule ma con i risultati da ottenere scritto a mano spiegando come ci arrivi è più facile rispondere
maxma62
00Monday, September 9, 2019 8:31 PM
Il file nel post #8
è composto da 6 fogli

foglio1/foglio2/foglio3/foglio4/foglio5/mesi

la formula nella colonna F del foglio mesi
conta i mesi presenti nelle colonne A/B/C del foglio mesi ma bisogna aggiungere anche le colonne D/F

la formula nella colonna G del foglio mesi conta i mesi presenti
nel foglio1/foglio2/foglio3
ma bisogna aggiungere i fogli4/foglio5

spero di essermi spiegato
maxma62
00Tuesday, September 10, 2019 6:11 PM
Ciao,
forse spiegato male o non si può?
DANILOFIORINI
00Tuesday, September 10, 2019 6:39 PM
Ciao
Si può fare e te l ho fatta (Mi ha fatto impazzire)...ora sono fuori stasera posto la soluzione
maxma62
00Tuesday, September 10, 2019 7:12 PM
[SM=g27811]
DANILOFIORINI
00Tuesday, September 10, 2019 8:04 PM
Ciao
premessa:il risultato è comunque una lista univoca e ordinata perchè non scriverle manualmente? comunque
il quesito è sicuramente molto tosto e ho adattato una soluzione del grande Jos in F2 da attivare con i tasti CTRL+SHIFT+INVIO e trascinare in basso

=SE(RIGHE($1:1)>MATR.SOMMA.PRODOTTO(( $A$2:$E$49<>"")/CONTA.SE( $A$2:$E$49; $A$2:$E$49&""));"";INDICE(INDICE( $A$2:$E$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1)/COLONNE( $A$2:$E$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1;COLONNE($A$2:$E$49)))));CONFRONTA(PICCOLO(SE(FREQUENZA(SE($A$2:$E$49<>"";CONFRONTA($A$2:$E$49;INDICE( $A$2:$E$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1)/COLONNE( $A$2:$E$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1;COLONNE($A$2:$E$49)))));0));RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49))));CONTA.SE($A$2:$E$49;"<"&INDICE( $A$2:$E$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1)/COLONNE( $A$2:$E$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1;COLONNE($A$2:$E$49)))))));RIGHE($1:1));SE(INDICE( $A$2:$E$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1)/COLONNE( $A$2:$E$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1;COLONNE($A$2:$E$49)))))<>"";CONTA.SE($A$2:$E$49;"<"&INDICE( $A$2:$E$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1)/COLONNE( $A$2:$E$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $A$2:$E$49)*RIGHE( $A$2:$E$49)))-1;COLONNE($A$2:$E$49)))))));0)))

per quanto riguarda la formula che estrae dai 5 fogli creo una tabella di servizio(eventualmente da nascondere) in K2 del foglio MESI da trascinare a destra e poi in basso

=SE(INDIRETTO("Foglio"&RIF.COLONNA(A$1)&"!B"&RIF.RIGA($A6))=0;"";INDIRETTO("Foglio"&RIF.COLONNA(A$1)&"!B"&RIF.RIGA($A6)))

poi in G2 metti la stessa formula di colonna F adattando i riferimenti

=SE(RIGHE($1:1)>MATR.SOMMA.PRODOTTO(( $K$2:$O$49<>"")/CONTA.SE($K$2:$O$49; $K$2:$O$49&""));"";INDICE(INDICE($K$2:$O$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1)/COLONNE($K$2:$O$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1;COLONNE( $K$2:$O$49)))));CONFRONTA(PICCOLO(SE(FREQUENZA(SE($K$2:$O$49<>"";CONFRONTA( $K$2:$O$49;INDICE( $K$2:$O$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1)/COLONNE( $K$2:$O$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1;COLONNE( $K$2:$O$49)))));0));RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49))));CONTA.SE( $K$2:$O$49;"<"&INDICE( $K$2:$O$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1)/COLONNE( $K$2:$O$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1;COLONNE( $K$2:$O$49)))))));RIGHE($1:1));SE(INDICE( $K$2:$O$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1)/COLONNE( $K$2:$O$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1;COLONNE( $K$2:$O$49)))))<>"";CONTA.SE( $K$2:$O$49;"<"&INDICE( $K$2:$O$49;NUM(SE(1;1+INT((RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1)/COLONNE( $K$2:$O$49))));NUM(SE(1;1+RESTO(RIF.RIGA(INDIRETTO("1:"&COLONNE( $K$2:$O$49)*RIGHE( $K$2:$O$49)))-1;COLONNE( $K$2:$O$49)))))));0)))



P.S ho messo tutti i riferimenti fino a riga 49 ma li puoi allungare a piacere
maxma62
00Tuesday, September 10, 2019 8:19 PM
Ciao danilo, grazie.
Una formula lunghissima che fa il suo lavoro [SM=g27811]
Forse è possibile aggiungere alla formula un ordine crescente senza usare i filtri?
Comunque ti ringrazio, la provo domani in ufficio ma penso funzioni bene.
maxma62
00Tuesday, September 10, 2019 8:38 PM
Ciao,
ma qui dove pesca il nome del foglio?


=SE(INDIRETTO("Foglio"&RIF.COLONNA(A$1)&"!B"&RIF.RIGA($A6))=0;"";INDIRETTO("Foglio"&RIF.COLONNA(A$1)&"!B"&RIF.RIGA($A6)))
DANILOFIORINI
00Tuesday, September 10, 2019 8:58 PM
ciao
la formula già estrae gli univoci in ordine crescente....

INDIRETTO("Foglio"&RIF.COLONNA(A$1)&"!B"&RIF.RIGA($A6))

questa parte ad esempio pesca in Foglio1 cella B6
maxma62
00Tuesday, September 10, 2019 9:21 PM
Se io rinomino il foglio1 non funziona più.
Cosi funziona solo la prima cella poi non cambia il riferimento alla cella resta B6

=SE(INDIRETTO("Foglio1!B$6")=0;"";INDIRETTO("Foglio1!B$6"))
DANILOFIORINI
00Tuesday, September 10, 2019 9:28 PM
Ciao
io ho fatto le formule in base all'esempio postato...se rinomini il foglio è normale che non funzioni più

puoi fare le cinque colonne della tabella di sevizio semplicemente cosi

=tuo foglio!B6

e trascini in basso l'avevo fatta in quella maniera per fare una formula unica....saluti
maxma62
00Wednesday, September 11, 2019 12:30 PM
[SM=g27811]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa click here
Tutti gli orari sono GMT+01:00. Adesso sono le 12:07 PM.
Copyright © 2000-2019 FFZ srl - www.freeforumzone.com