Condividi:        

selezionare numero da elenco fino ad esaurimento dei numeri

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

selezionare numero da elenco fino ad esaurimento dei numeri

Postdi marcus69 » 03/12/22 19:04

ciao,

prima del quesito vorrei ringraziare Antony in particolare e tutti gli altri che sempre sono stati disponibili ad aiutarmi.
Per una serie di casi della vita non usai mai le applicazioni office in modo " profondo " da qualche anno a questa parte sono parte integrante delle mie attività.
Solo grazie a questo forum ho avuto le dritte, e i suggerimenti giusti da seguire per essere profittevole nel mio lavoro.

Fino a qualche anno fa nemmeno sapevo scrivere cells(1,1) = " hello Pc-Facile Forum ", oggi integro Python, Excel, Outlook, SQL in soluzioni complesse.

GRAZIE.

Nonostante questo a volte mi trovo di fronte a problemi che risolvo in modo " rozzo " , quando son sicuro ch esistono modi più " puri " ed efficienti.

Esempio di ieri, ho un elenco di numeri da 1 a 10, ordinati in modo casuale ( 1,3,5,2,7,9,10 ) - ne possono mancare alcuni, ma non possono ripetersi.
Ad ognuno di questi numeri è associata un operazione.
Devo estrarre il numero "1" dalla sequenza e copiarlo su un altro foglio, poi il 2, poi il 3 e cosi via.
Devo mantenere il primo foglio e crearne un altro con le righe ordinate.

Ho risolto cosi ( e non ridete, so che è incasinato, ma al volo non ho trovato nulla di meglio ) :roll: :roll: :roll: :roll: :roll:

Creo una copia del foglio, e applico un ciclo while di "taglia" , "inserisci", "incolla", fino a che la condizione "ordinato dal più piccolo al più grande è soddisfatta ".
Posso avere massimo 12 righe da ordinare, ed è soddisfacentemente veloce, ma non è la soluzione ottimale.

Avevo pensato anche ad un :
- inserisci nuovo foglio,
- prendi il valore minore del primo foglio e copialo
- cerca il valore successivo al minore del primo foglio e copialo
- e cosi via fino ad esaurimento
ma il fatto che potesse saltare da 1 a 4, mi costringeva a cerca il numero successivo per tentative, aggiungendo " +1" ogni volta
i.e. ho trovato uno---- cerca due, se non lo trovi cerca tre, se non lo trovi cerca quattro ....... fino alla fine delle righe in cui cercare.

Avevo pensato anche, ma non ho ancora testato, di inserire i valori in un array, riordinare quello, e ricopiare il foglio usando l'array come indice di ordinamento, ma non ho ancora provato.

Che dite come lo risolvereste?

ciao
Marco
marcus69
Utente Senior
 
Post: 113
Iscritto il: 19/10/17 14:39

Sponsor
 

Re: selezionare numero da elenco fino ad esaurimento dei num

Postdi Anthony47 » 04/12/22 01:34

Prendo la mia parte di ringraziamenti e dico "Prego"

Quanto al quesito, la prima osservazione è: se funziona e' perfetta (vale sempre)

Invece la prima domanda è: "Ma quale versione di Office usi?"
Comunque io avrei usato l'istruzione Piccolo; cioe in vba:
Codice: Seleziona tutto
Dim Src As Range, Dest As Range, I As Long

Set Dest = Sheets("Foglio2").Range("R2")                '<<< Dove scrivere l'esito
Set Src = Sheets("Foglio2").Range("Q1:Q20")             '<<< L'intervallo coi numeri
For I = 1 To Application.WorksheetFunction.CountA(Src)
    Dest.Cells(I, 1) = Application.WorksheetFunction.Small(Src, I)
Next I

Prova...
Avatar utente
Anthony47
Moderatore
 
Post: 19431
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: selezionare numero da elenco fino ad esaurimento dei num

Postdi marcus69 » 04/12/22 16:53

ciao Anthony,

tu devi prendere almeno il 90% dei ringraziamenti fosse solo la tua pazienza.

Bella la funzione "piccolo" non la conoscevo.

La versione di Excel che uso io è la 365, ultima uscita, ma il foglio lo useranno in diversi, anche 2016.

concordo che se funziona " va bene ed è perfetta ", e non credo la toccherò. Ma non mi piaceva e immaginavo ci fosse di meglio :lol:
marcus69
Utente Senior
 
Post: 113
Iscritto il: 19/10/17 14:39

Re: selezionare numero da elenco fino ad esaurimento dei num

Postdi Anthony47 » 04/12/22 19:58

Con 365, nella cella dove vuoi l'elenco:
Codice: Seleziona tutto
=LET(Elenco;Foglio2!Q1:Q30;Buoni;FILTRO(Elenco;Elenco<>"");DATI.ORDINA(Buoni))

La formula espande il suoi risultati per quante celle servono; per adattarla devi ovviamente modificare quel Foglio1!Q1:Q30

Solo per 365!
Avatar utente
Anthony47
Moderatore
 
Post: 19431
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "selezionare numero da elenco fino ad esaurimento dei numeri":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti