Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] - Ordinamento con condizione

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] - Ordinamento con condizione

Postdi ChipHome5 » 15/09/12 17:06

Ciao a tutti,
E' tutto il giorno che sto provando a risolvere questo problema, ma non riesco.
Avrei la necessità di trovare una formula che crei due distine classifiche, a seconda del candidato, del suo punteggio e se questo sia maschio o femmina. Ci sarà quindi una classifica maschile (con nomi e punteggi) e una classifica femminile (con nomi e punteggi).
Devo anche tenere conto del fatto che ci possano essere candidati a pari-merito.
Nelle celle B11:B45 sono presenti i nomi dei candidati, nelle celle J11:J45 sono presenti i punteggi, mentre nelle celle L11:L45 è indicato "2" se il candidato è maschio e "4" se è femmina.
Nelle classifiche invece, nell'ordine ci sono: M11:M45 il ranking (facilmente risolvibile con una formula RANGO), N11:N45 il nome dei candidati (dove dovrei inserire la formula per l'ordinamento che non riesco a creare), S11:S45 il risultato dei candidati (facilmente collegabile al cognome tramite una formula CERCA.VERT).
Mi rimangono due seri problemi:
1) Ho inserito in N11 (e poi portato fino a N45) la formula:
Codice: Seleziona tutto
=SE(RIF.RIGA(M11)-RIF.RIGA($M$10)>CONTA.SE(L11:L45;">=3");"";(INDICE($B$11:$B$45;CONFRONTA(GRANDE(($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($J$11:$J$45)/10000;RIF.RIGA(M11)-RIF.RIGA($M$10));($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($J$11:$J$45)/10000;0))))

Pare non funzionare (l'ho correttamente confermata con CTRL+MAIUSC+INVIO) dato che alcuni nomi li mette e li ordina, con altri invece sembra operare a caso (mette alcuni nomi, ne salta altri...)!!
Dove sbaglio?
Mi potreste indicare due formule valide di questo tipo (una per ordinamento crescente e l'altra decresente)?

2) La funzione RANGO restituisce, in caso di valori uguali, sequenze come: 1,1,3,4,5 mentre mi servirebbe avere sequenze come: 1,1,2,3,4,... Come posso fare?

Ecco un'immagine delle tabelle che ho descritto:
http://chiphome5.webs.com/IMG1XLSF.JPG

Grazie infinite in anticipo!

(purtroppo è urgente... e mi sta facendo arrabbiare non poco... :x )
ChipHome5
Newbie
 
Post: 2
Iscritto il: 15/09/12 16:43

Sponsor
 

Re: [Excel] - Ordinamento con condizione

Postdi wallace&gromit » 15/09/12 21:22

ciao ChipHome e benvenuto nel forum,
vedo che i nostri maghi delle formule non sono ancora intervenuti.
Io intanto ti propongo una soluzione un po' articolata, forse si può fare di meglio.
Le tue colonne K e L non mi sembrano necessarie, io le userei come appoggio per stilare il rango: in K maschi con questa formula:
Codice: Seleziona tutto
=SE($D11="M";CONTA.SE($J$11:$J$15;"<"&J11);"")
in L femmine sostituendo "M" con "F";
nella colonna M11 questa formula:
Codice: Seleziona tutto
=INDICE($B$11:$B$15;CONFRONTA(RIF.RIGA()-10;$K$11:$K$15;0);0)
ti da il cognome del primo tra i maschi.
Prova e fai sapere.
In ogni caso nella tua formula c'erano una serie di rif.riga ridondanti. Per avere la riga della cella in cui si trova la formula basta "Rif.riga()", inoltre Rif.Riga($M$10) restituirà sempre 10, tanto vale immettere direttamente il numero!
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: [Excel] - Ordinamento con condizione

Postdi CANAPONE » 16/09/12 08:37

Ciao a tutti,

cerco di andar dietro ai riferimenti che indichi nelle formule pubblicate.

I nomi devono essere tutti diversi, accanto alle formule matriciali basta un cerca.vert per recuperare i punteggi

Claddifica femminile (>3, o =4)

Codice: Seleziona tutto
=SE(RIF.RIGA()-10>CONTA.SE(L$11:L$45;">3");"";INDICE($B$11:$B$45;CONFRONTA(GRANDE(($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($A$11:$A$45)/1000;RIF.RIGA(A1));($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($A$11:$A$45)/1000;0)))


Per mettere i nomi in ordine decrescente

potresti usare come indice progressivo di GRANDE
invece di RIF.RIGA(A1)

CONTA.SE(L$11:L$45;">3")+1-RIF.RIGA(A1)

Codice: Seleziona tutto
=SE(RIF.RIGA()-10>CONTA.SE(L$11:L$45;">3");"";INDICE($B$11:$B$45;CONFRONTA(GRANDE(($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($A$11:$A$45)/1000;CONTA.SE(L$11:L$45;">3")+1-RIF.RIGA(A1));($J$11:$J$45)*($L$11:$L$45>3)+RIF.RIGA($A$11:$A$45)/1000;0)))



Spero sia d'aiuto
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: [Excel] - Ordinamento con condizione

Postdi ChipHome5 » 16/09/12 12:39

Ringrazio entrambi moltissimo: grazie ai vostri preziosi consigli (in particolare quello riguardante l'indice progressivo di GRANDE per inserire i nomi in ordine decrescente) e a qualche sperimentazione sulle formule, sono riuscito a risolvere i problemi!
Grazie ancora di tutto!

Buona Domenica!

-ChipHome
ChipHome5
Newbie
 
Post: 2
Iscritto il: 15/09/12 16:43


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] - Ordinamento con condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti

cron