Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel Eliminare numeri doppi

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 Eliminare numeri doppi

Postdi Statix » 27/05/09 13:45

Ciao a tutti con l'evento del nuovo gioco del lotto 10eLotto,
volevo crearmi un archivio dalle passate estrazioni.
quindi ho un problema a risolvere .
ho una riga di 30 numeri
partendo dal primo mi deve dare i primi 20 numeri, eliminando i numeri doppi.
Codice: Seleziona tutto
9-67-25-7-29-81-19-59-54-19-43-67-25-24-48-41-68-36-65-72-80-2-43-58-1-23-16-28-62-54
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Sponsor
 

Re: Excel Eliminare numeri doppi

Postdi Anthony47 » 27/05/09 22:22

I 30 numeri sono in 30 celle adiacenti, o sono una stringa conactenata da "-" come nell' immagine? Ed e' una operazione da eseguire in continuazione, o una tantum all' inizio?

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel Eliminare numeri doppi

Postdi Statix » 27/05/09 22:44

Ciao Anthony
in realtà ,da un archivio lotto ,ricavo 700 estrazioni di 30 numeri
l'archivio ricavato sara di 30*700
di questi 30 numeri ne devo ricavare i primi 20 escludendo i doppioni ,in sequenza.
cioè partendo dal primo escludendo i numeri ripetuti fino ad arrivare a 20,il restante viene eliminato
i numeri sono in 30 celle adiacenti,quindi un range tipo A1:AD1, l'operazione va fatta solo una volta.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi ricky53 » 27/05/09 23:39

Ciao,

confermato che si tratta di 30 celle sulla stessa riga per "N" righe: con "eliminando" intendi cancellare il numero lasciando la cella vuota o eliminare la cella per compattare (a sinistra) i 20 che dovranno rimanere eliminando gli eventuali resanti?

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Eliminare numeri doppi

Postdi Statix » 27/05/09 23:51

Ciao Ricky
giusta la seconda domanda,i 20 numeri devono essere compattati e i restanti eliminati.
grazie
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi Flash30005 » 28/05/09 00:28

Anche se l'utente Statix non si degna di rispondere alla risoluzione di alcuni suoi problemi come questo continuo a mettermi a disposizione almeno per questa ultima volta
Penso che questa macro risolva il problema
Codice: Seleziona tutto
Sub EliminaCol()
UC = Worksheets("Foglio1").Range("IV1").End(xlToLeft).Column
N = 1
canc = 0
For i = 1 To UC - 1
    Valore = Worksheets("Foglio1").Cells(1, i).Value
    If Valore = "" Then Exit Sub
    For e = i + 1 To UC
ricomincia:
        valore2 = Worksheets("Foglio1").Cells(1, e).Value
        If Valore = valore2 Then
            Worksheets("Foglio1").Columns(e).Delete Shift:=xlToLeft
            canc = canc + 1
            GoTo ricomincia
        End If
    Next e
    If i = 20 Then
        Worksheets("Foglio1").Range(Columns(i + 1), Columns(UC - canc)).Select
        Selection.Delete Shift:=xlToLeft
        Worksheets("Foglio1").Range("A1").Select
        Exit Sub
    End If
Next i
Worksheets("Foglio1").Range("A1").Select
End Sub

Il foglio supposto è Foglio1
la riga è la 1
la colonna da A alla fine del foglio
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 07:07

Ciao Flash
ho provato la macro ,non funziona del tutto, a prima vista ,nelle righe, i numeri ripetuti non sono stati eliminati
per quanto riguarda per i post precedenti mi scuso per non averti ancora risposto,in quanto provata anche li la macro non ho ottenuto i risultati sperati,quindi stavo valutando di inviarti in MP il programma che sto approntando,mi ci vuole un pochino di tempo.a dopo, un po di pazienza. grazie
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi Flash30005 » 28/05/09 07:57

Ho ritestato la macro con i numeri da te postati
9-67-25-7-29-81-19-59-54-19-43-67-25-24-48-41-68-36-65-72-80-2-43-58-1-23-16-28-62-54
e la macro funziona perfettamente fornendomi solo questi
Codice: Seleziona tutto
9   67   25   7   29   81   19   59   54   43   24   48   41   68   36   65   72   80   2   58

se mi dici quali sono i numeri che si ripetono dopo il processo te ne sarei grato oppure magari potresti postare un'altra serie di numeri nei quali si verifica l'inconveniente.

Per la macro dell'altro post, come dicevo, non l'ho potuta testare per mancanza dei dati ma non mi dà errore nell'esecuzione e "in teoria" funziona anche quella

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 08:39

Ciao Flash
ti chiedo di nuovo scusa,non so più che cosa mi sta succedendo,avevo provato prima (altro computer)
e la macro mi dava i 20 numeri ma rimanevano alcuni doppioni,provato in Excel 2007,
poi ho riprovato su un altro computer in excel 2003 è funziona perfettamente,ho riprovato a convertirla in excel 2007
è funziona lo stesso,non so cosa dirti,piu tardi riprovo sull'altro computer per vedere il perche di questo problema,tieni presente che il file è sempre lo stesso quindi non ho fatto errori di copia incolla della macro.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi Flash30005 » 28/05/09 09:02

Non ti preoccupare possono succedere "stranezze" di questo tipo, comunque continua a testare la macro in condizioni diverse e con numeri ripetuti più volte e consecutivi (prova che non ho eseguito) e se incontri inconvenienti comunicamelo che "ripariamo"

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 09:27

Ciao Flash, mi sa tanto che c'è qualcosa che non va,ti allego il file di prova.

http://www.megaupload.com/?d=8MX922F0
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi biancocandido55 » 28/05/09 09:36

Ciao ragazzi,
semplicemente a titolo informativo.
Flash, ho provato la tua macro su excel2007 e ho notato che oltre ad eliminare i numeri doppi, elimina anche l'ultimo numero postato a destra della serie numerica che non è un doppio.
ciao un abbraccio
bianco
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 09:56

Ciao, forse ho capito il motivo la macro funziona solo per la prima riga.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi ricky53 » 28/05/09 09:57

Ciao,
la macro di Flash, in base alla prove che ho fatto sul file che ha inviato Statix poco fa,
funziona ma solo per una riga.

Io ho preparato una soluzione che lavora su più righe, se può essere utile eccola:

Codice: Seleziona tutto
Public I As Single, J As Single, K As Single, RigaInizio As Single, RigaFine As Single, ColonnaInizio As Single, ColonnaFine As Single, Cancellati As Single, MaxNumeri As Single

Sub Cancella_e_Compatta()
    Cancellati = 0:
' Numero di risultati da ottenere alla fine
    MaxNumeri = 20
    ColonnaInizio = 2
    RigaInizio = 2:
    RigaFine = Range("B" & Rows.Count).End(xlUp).Row

' Cicla sulle righe
    For I = RigaInizio To RigaFine

' Cicla sulle Colonne
        ColonnaFine = Range("IV" & I).End(xlToLeft).Column
        For J = ColonnaInizio To ColonnaFine
' Cancella i numeri oltre quelli fissati con "MaxNumeri"
            If J = MaxNumeri Then
                Range(Cells(I, MaxNumeri + ColonnaInizio), Cells(I, ColonnaFine)).ClearContents
                Exit For
            End If
' Scorre le celle della "i-esima" riga per il confronto dei numeri uguali
            For K = J + 1 To ColonnaFine
                If Cells(I, J) = Cells(I, K) Then
' Elimina la cella con numeri duplicati
                    Cells(I, K).Delete Shift:=xlToLeft
                    Cancellati = Cancellati + 1
                    ColonnaFine = ColonnaFine - 1
                End If
            Next K
        Next J
    Next I
    [A1].Select
End Sub


La macro lavora sul foglio "ATTIVO", se occorre va modificata per lavorare su un altro foglio.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Eliminare numeri doppi

Postdi ricky53 » 28/05/09 10:03

Caio,
prima non avevo inserito l'ultima modifica, la riporto adesso:

Codice: Seleziona tutto
    Application.ScreenUpdating = False

da inserire all' INIZIO della macro

e questa
Codice: Seleziona tutto
    Application.ScreenUpdating = True

da inserire alla FINE della macro

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 10:20

Ciao Richy53
la macro sembra ok,dovuto modificare riga e colonna partiva dalla seconda,un altra cosa se si fa partire di nuovo la macro mi cancella l'ultimo numero delle righe
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi Flash30005 » 28/05/09 10:40

biancocandido55 ha scritto:...
semplicemente a titolo informativo.
Flash, ho provato la tua macro su excel2007 e ho notato che oltre ad eliminare i numeri doppi, elimina anche l'ultimo numero postato a destra della serie numerica che non è un doppio.

Per caso è il 21° numero?
Io ho rispettato le specifiche
Statix ha scritto:giusta la seconda domanda,i 20 numeri devono essere compattati e i restanti eliminati.

e ancora
Statix ha scritto:...forse ho capito il motivo la macro funziona solo per la prima riga.


La richiesta era
Statix ha scritto:...ho una riga di 30 numeri
partendo dal primo mi deve dare i primi 20 numeri, eliminando i numeri doppi.
Codice: Seleziona tutto
9-67-25-7-29-81-19-59-54-19-43-67-25-24-48-41-68-36-65-72-80-2-43-58-1-23-16-28-62-54


Ora non capisco cosa c'è sulle altre righe
se non è la riga 1 ma la 2 basta sostituire i riferimenti della macro dalla riga 1 alla riga 2 non vedo qual'è il problema ma chiaramente si riferisce sempre e solo ad una riga come richiesto.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Eliminare numeri doppi

Postdi Statix » 28/05/09 10:50

Ciao Flash,
scusami ancora,sono io che mi ero espresso male per la richiesta,
in effetti ,poi dovevo applicarla per tutte le altre 700 righe
ti ringrazio e scusami ancora.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Excel Eliminare numeri doppi

Postdi ricky53 » 28/05/09 11:27

ciao,
avviene perchè non trova numeri duplicati.
Modifica così (è una modifica tampone ...):

Codice: Seleziona tutto
If J = MaxNumeri Then
                If ColonnaFine = MaxNumeri + 1 Then ' <<<<<------ Aggiunto
                    ColonnaFine = MaxNumeri + ColonnaInizio ' <<<<<------ Aggiunto
                End If ' <<<<<------ Aggiunto
                Range(Cells(I, MaxNumeri + ColonnaInizio), Cells(I, ColonnaFine)).ClearContents
                Exit For
            End If


Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Eliminare numeri doppi

Postdi Flash30005 » 28/05/09 11:58

Statix ha scritto:Ciao Flash,
scusami ancora,sono io che mi ero espresso male per la richiesta,
in effetti ,poi dovevo applicarla per tutte le altre 700 righe
ti ringrazio e scusami ancora.

Tanto per non lasciare un lavoro incompleto...
modificata fino alla fine delle righe con dati
Codice: Seleziona tutto
Sub EliminaCol()
Application.ScreenUpdating = False
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For R = 1 To UR
UC = Worksheets("Foglio1").Range("IV" & UR).End(xlToLeft).Column
For i = 1 To UC
    Valore = Worksheets("Foglio1").Cells(R, i).Value
    If Valore = "" Then GoTo SaltaS
    For e = i + 1 To UC
ricomincia:
        Valore2 = Worksheets("Foglio1").Cells(R, e).Value
            If Valore = Valore2 Then
            Worksheets("Foglio1").Cells(R, e).Delete Shift:=xlToLeft
            GoTo ricomincia
        End If
    Next e
    If UC < 20 Or i = 20 Then
        Worksheets("Foglio1").Range("U" & R & ":IV" & R).Delete Shift:=xlToLeft
        GoTo salta
    End If
SaltaS:
Next i
salta:
Next R
Worksheets("Foglio1").Range("A1").Select
Application.ScreenUpdating = True
End Sub
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel Eliminare numeri doppi":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti