Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

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

Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Francesco6918 » 10/09/21 23:52

Buona sera a tutti se gentilmente qualcuno mi aiuti a creare una soluzione per ordinare dal più grande al più piccolo un intervallo ambi, gli ambi da fare il confronto da ordinare sono nel intervallo X4:X8, questi ambi sono presenti nel intervallo R14:R28 sono ripetuti nello stesso tempo ci sono celle vuote da escludere dal ordine, l ordine che vorrei ottenere come da esempio intervallo Z4:Z8,dunque vorrei escludere i doppioni che le celle vuote allego il file per essere più chiaro.

Grazie

http://www.filedropper.com/ordine_1
Francesco6918
Utente Senior
 
Post: 228
Iscritto il: 04/03/11 11:20

Sponsor
 

Re: Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Anthony47 » 13/09/21 12:52

Si potrebbe fare con formule e un paio di colonne di appoggio, ma preferisco procedere tramite una funzione personalizzata.
Metti questo codice in un Modulo Standard del progetto VBA del tuo file:
Codice: Seleziona tutto
Function SortUnici(ByRef myRan As Range) As Variant
Dim wArr(), wInd As Long, tArr(1 To 2)
Dim I As Long, J As Long
'
ReDim wArr(1 To myRan.Rows.Count, 1 To 2)
For I = 1 To myRan.Rows.Count
If myRan.Cells(I, 1) <> "" Then
    If Application.WorksheetFunction.CountIf(myRan.Cells(1, 1).Resize(I, 1), myRan.Cells(I, 1).Value) = 1 Then
        wInd = wInd + 1
        wArr(wInd, 1) = myRan.Cells(I, 1).Value
        wArr(wInd, 2) = Application.WorksheetFunction.MaxIfs(myRan.Cells(1, 2).Resize(myRan.Rows.Count), myRan.Cells(1, 1).Resize(myRan.Rows.Count), myRan.Cells(I, 1).Value)
    End If
End If
Next I
'bubble sort:
For I = 1 To wInd - 1
    For J = I + 1 To wInd
        If wArr(I, 2) < wArr(J, 2) Then
            tArr(2) = wArr(I, 2)
            tArr(1) = wArr(I, 1)
            wArr(I, 2) = wArr(J, 2)
            wArr(I, 1) = wArr(J, 1)
            wArr(J, 2) = tArr(2)
            wArr(J, 1) = tArr(1)
        End If
    Next J
Next I
'Fill Empty
For I = wInd + 1 To UBound(wArr)
    wArr(I, 1) = ""
    wArr(I, 2) = ""
Next I
SortUnici = wArr
End Function

Poi vai sul foglio di lavoro e usa una formula tipo
Codice: Seleziona tutto
=SortUnici(R14:S40)

Se usi Excel 365 la formula restituira' automaticamente in verticale tutti i risultati; altrimenti dovrai inserire la formula in formato "a matrice":
-Selezione N righe * 2 colonne; fai in modo che N copra tutti i possibili risultati e anche oltre
-Scrivi la formula nella Barra della formula
-Confermi con Contr-Maiusc-Enter

Se cambi i dati in R14:S40 (o l'area indicata nella formula) i risultati si aggiorneranno automaticmente

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17830
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Francesco6918 » 13/09/21 13:16

Ciao Anthony preferirei una formula se non ti dispiace.

Grazie
Francesco6918
Utente Senior
 
Post: 228
Iscritto il: 04/03/11 11:20

Re: Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Anthony47 » 14/09/21 01:26

Ad esempio, accanto alla tabella di partenza degli ambi (quindi in U14) inserisci la formula
Codice: Seleziona tutto
=SE(CONTA.SE(R$13:R14;R14)=1;R14;"")

Nella colonna successiva, quindi in V14, inserisci
Codice: Seleziona tutto
=MAX.PIÙ.SE($S$14:$S$35;$R$14:$R$35;U14)+RIF.RIGA()/100000


Copia U14:V14 verso il basso, ad esempio fino a riga 35
Hai così l'elenco degli ambo da prelevare con la rispettiva posizione, ma ancora in disordine

Metti ora nella posizione in cui vuoi visualizzare la tabella ordinata, esempio in AB4, la formula
Codice: Seleziona tutto
=INDICE($U$14:$U$35;CONFRONTA(GRANDE($V$14:$V$35;RIF.RIGA(A1));$V$14:$V$35;0))

Nella colonna successiva, quindi in AC4, la formula
Codice: Seleziona tutto
=SE(AB4<>"";INT(CERCA.VERT(W14;U14:V35;2;0));"")


Copia infine AB4:AC4 verso il basso

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17830
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Francesco6918 » 14/09/21 10:52

Ciao Anthony grazie è pò lunga (RISOLTO)

Saluti
Francesco6918
Utente Senior
 
Post: 228
Iscritto il: 04/03/11 11:20

Re: Ordinare Ambi Escludendo celle vuote e ambi Ripetuti

Postdi Anthony47 » 14/09/21 10:58

Ciao Anthony grazie è pò lunga (RISOLTO)
Te l'avevo detto che con formule servivano un paio di colonne di appoggio...

Alla prossima
Avatar utente
Anthony47
Moderatore
 
Post: 17830
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Ordinare Ambi Escludendo celle vuote e ambi Ripetuti":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti