Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

eliminare duplicati nella singola cella

Ultimo Aggiornamento: 25/06/2021 16:33
Post: 100
Registrato il: 20/02/2015
Età: 50
Utente Junior
2007 / 2010
OFFLINE
25/06/2021 12:02

salve a tutti,
come posso eliminare i duplicati nelle singole celle ?
es. in A1 ho:
(1)(2)(3)(1)
voglio ottenere:
(1)(2)(3)
Post: 3.194
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
25/06/2021 12:18

ciao
sono sempre racchiusi tra 2 parentesi i numeri???

saluti




Domenico
Win 10 - Excel 2016
Post: 100
Registrato il: 20/02/2015
Età: 50
Utente Junior
2007 / 2010
OFFLINE
25/06/2021 12:19

dodo47, 25/06/2021 12:18:

ciao
sono sempre racchiusi tra 2 parentesi i numeri???

saluti





si
Post: 3.195
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
25/06/2021 12:37

ciao
stringa in A1

Sub Tester()
Dim arr As New Collection
Range("B1") = ""
Range("B1").NumberFormat = "@"
nn = Split(Replace(Range("A1"), "(", ""), ")")
On Error Resume Next
For Each a In nn
arr.Add a, a
Next
On Error GoTo 0
For i = 1 To arr.Count
    If arr(i) <> "" Then
    Range("B1") = "" & Range("B1") & "(" & arr(i) & ")"
    End If
Next
End Sub


in B1 il risulato

saluti



Domenico
Win 10 - Excel 2016
Post: 101
Registrato il: 20/02/2015
Età: 50
Utente Junior
2007 / 2010
OFFLINE
25/06/2021 13:23

Re:
dodo47, 25/06/2021 12:37:

ciao
stringa in A1

Sub Tester()
Dim arr As New Collection
Range("B1") = ""
Range("B1").NumberFormat = "@"
nn = Split(Replace(Range("A1"), "(", ""), ")")
On Error Resume Next
For Each a In nn
arr.Add a, a
Next
On Error GoTo 0
For i = 1 To arr.Count
    If arr(i) <> "" Then
    Range("B1") = "" & Range("B1") & "(" & arr(i) & ")"
    End If
Next
End Sub


in B1 il risulato

saluti





nel caso di un intervallo di celle, non posso "semplicemente" trascinare la formula da B1, giusto ?
Post: 3.196
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
25/06/2021 16:00

ciao
ma a te serve una formula (in questo caso una UDF) o vuoi il risultato ?

Dove hai le stringhe e dove vuoi i risultai?

saluti




Domenico
Win 10 - Excel 2016
Post: 102
Registrato il: 20/02/2015
Età: 50
Utente Junior
2007 / 2010
OFFLINE
25/06/2021 16:15

Re:
dodo47, 25/06/2021 16:00:

ciao
ma a te serve una formula (in questo caso una UDF) o vuoi il risultato ?

Dove hai le stringhe e dove vuoi i risultai?

saluti







come ho già detto più volte non sono molto pratico di macro, ho provato ad adattala ad altri casi, ma non da il risultato atteso
ad esempio già portare la formula in altre celle non mi è riuscito, figuriamoci se volessi estenderla a un intervallo di celle
Spiego meglio:
caso 1: invece di A1 e B1, mi sono spostato in D1 ed E1 e non sono riuscito ad "adattare" la formula
caso 2: se i dati da controllare (sempre all'interno di una singola cella) sono relativi a più celle. Come faccio ?
A1: (1)(2)(1)(2) - risultato atteso in B1:(1)(2)
A2: (1)(2)(3)(4)(3)(1) - risultato atteso in B2:((1)(2)(3)(4)
A3: (1)(2)(3) - risultato atteso in B3:((1)(2)(3)



Post: 3.197
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
25/06/2021 16:33

ciao
usa una UDF, che altro non è che una formula che puoi trascinare.

Inserisci in un modulo questa Funzione:

Function CancDupl(mRng As Range) As String
Dim arr As New Collection
ActiveCell.NumberFormat = "@"
nn = Split(Replace(mRng.Value, "(", ""), ")")
On Error Resume Next
For Each a In nn
    arr.Add a, a
Next
On Error GoTo 0
For i = 1 To arr.Count
    If arr(i) <> "" Then
    CancDupl = "" & CancDupl & "(" & arr(i) & ")"
    End If
Next
End Function


Poi, se per esempio i dati li hai da A1 in poi, nella cella dove vuoi il risultato ci scrivi:

=CancDupl(A1)
e trascini

Se i dati li hai in col. D ed in E vuoi il risultato, in E1 scrivi:
=CancDupl(D1)
e trascini

spero sia chiaro

saluti

EDIT: Ho modificato un errore alle ore 16.:45......

[Modificato da dodo47 25/06/2021 16:44]
Domenico
Win 10 - Excel 2016
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Sostituisci parola in cella al click (6 messaggi, agg.: 20/11/2018 17:41)
Sconti nella stessa cella (8 messaggi, agg.: 30/11/2018 11:36)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 02:09. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com