elimina valori doppi in excel
Hai un problema con Excel? 
elimina valori doppi in excel
di Excel 2007 (utente non iscritto) data: 02/08/2013 15:46:32
Ciao a tutti qualcuno sa dirmi come selezionare all'interno di una colonna i valori doppi (sia di testo che numerici) ed eliminarli entrambi? cioè come eliminari entrambi i valori duplicati!
Grazie e mille!
bruna
di bruna (utente non iscritto) data: 02/08/2013 15:48:15
volevo solo dire il mio nome sono Bruna!
grazie a tutti
Elimina valori doppi
di Santuberto (utente non iscritto) data: 02/08/2013 16:39:47
In Excel 2007: seleziona da Dati ==> Rimuovi duplicati. Cordiali saluti.
Duplicati
di Santuberto (utente non iscritto) data: 02/08/2013 16:44:29
Ho toppato! La mia soluzione non serve: tu li volevi eliminare entrambi. Mi spiace, non ti so aiutare.
di isy data: 02/08/2013 18:59:52
Ciao
In colonna A inserisci i valori da cercare
124
Pippo
Casa
Per ottenere il risultato in colonna B1
Inserisci la seguente formula:
=SE(CONTA.SE(A:A;A1)=1;A1;"")
e trascina in basso la formula
di nichicanta (utente non iscritto) data: 02/08/2013 19:48:05
Carissimi amici, poiché mi sono appassionato molto a questo bellissimo forum e voglio anche io nel mio piccolo contribuire ad aiutare altri che come me, non hanno tanta esperienza e conoscenza di programmazione, qualora decideste di voler effettuare la cancellazione del dato doppio in una colonna specifica, con vba, allego il codice che utilizzo io e che fa quanto chiede l'amica Buna.
P.S. ho commentato ciò che fa questo codice.
Sub Elimina_dato_duplicato()
'Questo codice ordina i dati nella seconda
'colonna del Foglio1 ed elimina le righe che
'contengono dati duplicati (solo una riga e lascia l'altra con il dato trovato duplicato).
Application.ScreenUpdating = False
Range("B2:B8000").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Set currentCell = Worksheets("Foglio1").Range("B2")
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop
Range("B2").Select
End Sub
|
di nichicanta (utente non iscritto) data: 02/08/2013 19:53:47
scusatemi ho postato il codice sbagliato, questo è quello che elimina entrambi i dati doppi. il precedente eliminava solo 1.
Vi saluto.
'Questa routine elimina tutte e due le righe doppie
Sub Elina_Tutti_I_Doppioni()
Dim LastRow As Long, K As Long, MemoCanc As Boolean
'Questo codice ordina i dati rispetto alla
'colonna B del Foglio1 ed elimina sia
'le dupliche che l'origine.
On Error GoTo 50
With Worksheets("Foglio1")
Application.ScreenUpdating = False
.UsedRange.Sort .Range("B2"), Header:=xlGuess
LastRow = WorksheetFunction.CountIf(.Range("B2:B10000"), "<>")
If LastRow > 1 Then LastRow = LastRow + 3 Else Exit Sub
For K = LastRow To 4 Step -1
If .Cells(K, 2) = .Cells(K - 1, 2) Then 'Finchè le trova uguali ..
.Cells(K, 2).EntireRow.Delete '.. elimina la duplica ..
MemoCanc = True '.. e si memorizza un flag per l'origine.
Else 'Quando non le trova uguali ..
If MemoCanc Then '.. entra solo se ha in memoria ..
.Cells(K, 2).EntireRow.Delete '.. qualcosa da eliminare ..
MemoCanc = False '.. quindi resetta.
End If
End If
Next K
Application.ScreenUpdating = True
.Range("B4").Select
End With
Exit Sub
50: Application.ScreenUpdating = True: MsgBox Err.Description
End Sub
|
di HarryBosch data: 02/08/2013 22:40:13
Ciao Ragazzi
veramente molto "furba" la formula di Isy e funzionale alla richiesta.
Per quanto riguarda il vba, ci sarebbe il vantaggio di evitare le celle vuote, ma bisogna capire le esigenze della nostra amica, che magari non ha mai impostato una macro: eventualmente gli spieghiamo come fare ^_^
@ Nichicanta
il codice fa il suo lavoro anche se piuttosto ridondante. Puntualizzerei che prende in esame la colonna B e che controlla i valori lungo tale colonna a partire dalla 4° riga (For K = LastRow To 4): ovviamente si devono adattare colonna e partenza.
Allego una revisione del codice, che mi sembra più snella e "leggibile": l'indentazione è un requisito fondamentale per renderlo leggibile, e vi consiglio vivamente di strutturare sempre le vostre routine.
Esiste anche uno strumento apposito per implementare l'editor del vba: cercate "add-in Indenter VBA" sul web
'controlla la colonna A a partire dalla seconda riga
Sub Elina_Tutti_I_Doppioni_2()
Dim LastRow As Long, K As Long, MemoCanc As Variant
Application.ScreenUpdating = False
With ActiveSheet
.Columns("A").Sort .[a1], Header:=xlGuess
LastRow = [COUNTA(A:A)]
For K = LastRow To 2 Step -1
If .Cells(K, 1) = .Cells(K - 1, 1) Or MemoCanc = .Cells(K, 1) Then
MemoCanc = .Cells(K, 1)
.Rows(K).EntireRow.Delete
End If
Next
End With
Application.ScreenUpdating = True
End Sub |
di isy data: 03/08/2013 00:22:13
Ciao HarryBosch
Cit: Per quanto riguarda il vba, ci sarebbe il vantaggio di evitare le celle vuote, ma bisogna capire le esigenze della nostra amica, che magari non ha mai impostato una macro: eventualmente gli spieghiamo come fare ^_^
Ho inserito la precedente formula in vba
Il codice elimina e raggruppa le righe sul foglio
Nota: con la formula che ho inserito non viene fatta distinzione tra i caratteri maiuscoli e minuscoli.
Scrivendo il codice in questo modo si inseriscono i risultati in un unico ciclo
Al termine raggruppo i valori presenti
Sub Cancella_Doppioni()
Dim LastRow As Long
Const WS As String = "Foglio1"
Const ListCol As String = "A"
Const StartRow As Long = 1
LastRow = Worksheets(WS).Cells(Rows.Count, ListCol).End(xlUp).Row
Application.ScreenUpdating = False
With Worksheets(WS).Cells(StartRow, ListCol).Resize(LastRow - StartRow + 1)
.Value = Evaluate("IF(COUNTIF(A" & StartRow & ":A" & LastRow & ", A" & StartRow & ":A" & LastRow & ")=1,A" & StartRow & ":A" & LastRow & ","""")")
On Error Resume Next
.SpecialCells(xlBlanks).Delete xlShiftUp
On Error GoTo 0
End With
Application.ScreenUpdating = True
End Sub
|
di bruna (utente non iscritto) data: 27/08/2013 15:42:05
ciao ho visto solo oggi le vs. risposte, grazie a tutti
grazie a isy che mi ha permesso di risolvere il mio problema, e ... si in effetti non so usare le macro...non so neanche bene cosa siano.. sono proprio una profana di excel!
Grazie
Bruba
Vuoi Approfondire?