| | Post: 1 | Registrato il: 14/10/2018
| Città: MILANO | Età: 34 | Utente Junior | Excel 2007 | | OFFLINE | |
|
14/10/2018 16:07 | |
Salve, secondo voi sarebbe possibile creare una macro per eliminare righe che hanno in determinate colonne valori o dati uguali contemporaneamente.
Per esempio che mi trasformi una lista del genere:
A...........B..........C..........D..........F
maria rosa pere meloni verde
mario rossi pere meloni rosso
mario rossi pere meloni giallo
mario rossi pere arance nero
mario rossi pere arance viola
in (eliminando le ripetizioni uguali contemporaneamente solo nelle colonne A B C D) :
maria rosa pere meloni verde
mario rossi pere meloni rosso
mario rossi pere arance nero
Quindi che mi elimini le righe che risultino uguali solo in determinate colonne.
Scusate la banalità dell'esempio [Modificato da Miles900 14/10/2018 16:09] |
|
| | Post: 5.512 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
14/10/2018 17:55 | |
Ciao Inserisci un file con i dati e segnala quelle righe che devono essere eliminate.
un esempio anche se fatto manualmente.
Ciao By Sal
[Modificato da by sal 14/10/2018 17:55] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 1 | Registrato il: 14/10/2018
| Città: MILANO | Età: 34 | Utente Junior | Excel 2007 | | OFFLINE | |
|
14/10/2018 19:19 | |
Ok, ho riproposto lo stesso esempio, ho messo nella prima pagina la lista e nella seconda come dovrebbe uscire dopo la macro. Le righe che si dovrebbero eliminare sono la 4 e la 6 perché le colonne A,B,C,D (nome cognome frutta1 frutta2) sono uguali contemporaneamente; la colonna E (colore) non interessa se uguale o differente.
Spero di essere stato chiaro, il file a cui devo applicare questa macro non posso postarlo perché contiene dati sanitari, il mio intendo è eliminare in una lunga lista i doppioni di certe righe dove nello stesso paziente è isolato lo stesso batterio per poter fare delle statistiche.
Se potrai aiutarmi te ne sarò grato; in ogni caso ti ringrazio anticipatamente |
| | Post: 3.153 | Registrato il: 03/04/2013
| Utente Master | Excel 2000 - 2013 | | OFFLINE | |
|
15/10/2018 08:56 | |
Buona giornata, Miles; molto probabilmente la mia risposta non è rispondente alle tue esigenze ma tant'è. Voglio dire se il risultato che chiedi: - maria rosa pere meloni verde - mario rossi pere meloni rosso - mario rossi pere arance nero può essere ridotto in: - maria rosa pere meloni - mario rossi pere meloni - mario rossi pere arance La soluzione potrebbe essere banale ma non so se questo è compatibile con le tue esigenze. In caso contrario bisognerebbe lavorare molto sul Codice VBA. A disposizione. Buon Lavoro. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 2 | Registrato il: 14/10/2018
| Città: MILANO | Età: 34 | Utente Junior | Excel 2007 | | OFFLINE | |
|
15/10/2018 10:08 | |
Buon giorno anche a te, ho pochissima esperienza con VBA. Pensavo che esistesse già qualche codice per eliminare le righe ripetute in determinate colonne da applicare al mio esempio. [Modificato da Miles900 15/10/2018 10:09] |
| | Post: 2.095 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
15/10/2018 10:20 | |
ciao
per il tuo esempio un codice VBA potrebbe essere questo sfruttando
una colonna di appoggio solo per eseguire la sub e la funzione
MATR.SOMMA.PRODOTTO() temporaneamente
da mettere nel modulo del foglio
Option Explicit
Sub EliminaDoppi()
'
Dim i As Long
Dim Nrig As Long
Nrig = Cells(Rows.Count, 1).End(xlUp).Row
Range("O1").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((R1C1:RC1=RC1)*(R1C2:RC2=RC2)*(R1C4:RC4=RC4))"
Range("O1").Select
Selection.AutoFill Destination:=Range("O1:O" & Nrig), Type:=xlFillDefault
For i = Nrig To 2 Step -1
If Cells(i, "O") > 1 Then Rows(i).Delete
Next i
Columns("O").ClearContents
End Sub
Ciao da locate
excel 2007 / 13 |
| | Post: 5.513 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
15/10/2018 10:28 | |
Ciao Miles, il problema anche con l'esempio che hai fatto, non è molto chiaro, perche non ci sono basi per determinare, quale riga eliminare.
dici che sono dati sanitari, ed è logico la privacy, nessuno vuole invaderla ci mancherebbe.
ma se metti i dati originali eliminando riferimenti ad ambulatorio ospedale ed i pazienti li nomini, paz1-paz2--etc.. anche una decina di righe, non credo che si potrebbe risalire ad i nomi originali.
ma dovresti specificare bene quale dovrebbe essere il principio per eliminare le righe.
può anche capitare che frutta1 e frutta2 siano invertite come si considera tale caso.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 3.154 | Registrato il: 03/04/2013
| Utente Master | Excel 2000 - 2013 | | OFFLINE | |
|
15/10/2018 11:20 | |
Buona giornata, a Tutti; molto interessante la soluzione di @locatevaresino, che saluto e merita un "Mi piace". Molto indegnamente mi permetto di suggerire un controllo anche sulla Colonna "C"; vuoi mai che oltre alle "pere" ci scappi anche qualche "mela"? Voglio dire, l'istruzione: ActiveCell.FormulaR1C1 = "=SUMPRODUCT((R1C1:RC1=RC1)*(R1C2:RC2=RC2)*(R1C4:RC4=RC4))" Proporrei di modificarla in: ActiveCell.FormulaR1C1 = "=SUMPRODUCT((R1C1:RC1=RC1)*(R1C2:RC2=RC2)*(R1C3:RC3=RC3)*(R1C4:RC4=RC4))" A disposizione. Buon Lavoro. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 3 | Registrato il: 14/10/2018
| Città: MILANO | Età: 34 | Utente Junior | Excel 2007 | | OFFLINE | |
|
15/10/2018 21:23 | |
Siete grandi! Problema risolto sia con la magistrale macro di locatevaresino e grazie a Giuseppe per la modifica che con la funzione DATI/RIMUOVI DUPLICATI.
Questo lavoro servirà a migliorare con delle statistiche il trattamento per alcune patologie anche grazie al vostro contributo (io ci sarei stato una vita a selezionare manualmente i dati).
Grazie a tutti per il supporto! |
|
|