| | 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 | |
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 | |
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 |
|
|