Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Michele,
ho iniziato a sviluppare in excel un foglio di calcolo per ottenere la classifica di un girone calcistico e mi sono bloccato alla terza opzione.
ho realizzato quanto segue:
H I J K L 6 14/06/2018 Russia Arabia Saudita 2 1 7 15/06/2018 Egitto Uruguay 1 2 8 19/06/2018 Russia Egitto 2 1 9 20/06/2018 Uruguay Arabia Saudita 0 1 10 25/06/2018 Arabia Saudita Egitto 0 0 11 25/06/2018 Uruguay Russia 3 2 In questa tabella riesco a calcorare i punti e la differenza reti per ogni squadra
O P Q 4 Punti Differenza Reti 5 6 Arabia Saudita 4 0 7 Egitto 1 -2 8 Russia 6 1 9 Uruguay 6 1 come si vede dalla tabella precedente Russia e Uruguay hanno stesso punteggio e stessa differenza reti ed entrambe sono classificate al 1° posto, ma per gli effetti dello scontro diretto Uruguay si classifica al primo posto.
Nelle celle da AA6 ad AA9 ho inserito una formula matriciale che ordina le squadre per punti e differenza reti:
=INDICE($O$6:$O$9;CONFRONTA(GRANDE($P$6:$P$9+($Q$6:$Q$9)/100-RIF.RIGA($P$6:$P$9)/10000;RIF.RIGA(Z6)-RIF.RIGA($Z$5));$P$6:$P$9+($Q$6:$Q$9)/100-RIF.RIGA($P$6:$P$9)/10000;0))
e non riesco ad aggiungere la terza opzione, lo scontro diretto. (in quest'ultimo caso la classifica sarebbe Uruguay, Russia...)
AA 6 Russia 7 Uruguay 8 Arabia Saudita 9 Egitto
Il mio primo istinto sarebbe quello di sfruttare VBA per creare una funzione personalizzata (UDF)! -:)
Tuttavia, nello spirito di un approccio prevalentemente basato sulle formule, forse prova qualcosa del genere:
- Ordina la tabella in O4:Q9 per i punti in colonna P:
- Nella cella R6, immetti la formula
=SE(E(P6=P7;Q6=Q7);MATR.SOMMA.PRODOTTO(($I$6:$I$11=O6)*($J$6:$J$11=O7)*($K$6:$K$11-$L$6:$L$11)+($I$6:$I$11=O7)*(J4:J9=O6)*($K$6:$K$11-$L$6:$L$11)))*0,1+P6
e trascina la formula in basso sino alla cella R9
- Nella tua formula matriciale nella cella AA6, sostituisci i riferimenti alla colonna P con la colonna R:
=INDICE($O$6:$O$9;CONFRONTA(GRANDE($R$6:$R$9+($Q$6:$Q$9)/100-RIF.RIGA($R$6:$R$9)/10000;RIF.RIGA(Z6)-RIF.RIGA($Z$5));$R$6:$R$9+($Q$6:$Q$9)/100-RIF.RIGA($R$6:$R$9)/10000;0))}
Potresti scaricare il mio file di prova Michele20160603.xlsx
===
Regards,
Norman