Condividi tramite

Intersezione non comune tra due stringhe

Anonimo
2012-11-02T12:03:07+00:00

Ciao a tutti,

su due celle A2 e B2 ho due stringhe di testo. Al loro interno contengono testo separato da un punto e virgola.

Confrontanto il contenuto di entrambe vorrei ottenere come risultato su un'altra cella l'intersezione non comune tra di esse.

Si può fare con una formula?

grazie a tutti,

A.

https://skydrive.live.com/redir.aspx?cid=dd405b0d5a6097c5&resid=DD405B0D5A6097C5!127&parid=root

file: Intersez_stringhe

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-11-02T18:11:29+00:00

Ciao Mauro,

in base al tuo esempio se in A1 ho la stringa di input e in B1 quella di confronto in C1 vorrei ottenere B cioe' tutte le stringhe che su A1 non presentano una corrispondenza su B1.

Grazie,

A.

Prova questa UDF da copia/incollare in un modulo standard:

Public Function f( _

    ByVal v1 As Variant, _

    ByVal v2 As Variant) As String

    Dim s1() As String

    Dim s2() As String

    Dim lng As Long

    Dim col As Collection

    Set col = New Collection

    f = ""

    s1 = Split(v1, ";")

    s2 = Split(v2, ";")

    For lng = 0 To UBound(s2)

    On Error Resume Next

        col.Add CStr(s2(lng)), CStr(s2(lng))

    Next

    For lng = 0 To UBound(s1)

        On Error Resume Next

        col.Add CStr(s1(lng)), CStr(s1(lng))

        If Err.Number = 0 Then

            f = f & s1(lng) & ";"

        End If

        On Error GoTo 0

    Next

    f = Mid(f, 1, Len(f) - 1)

    Set col = Nothing

End Function

Da richiamare poi in C1 così:

C1: =f(A1;B1)

Nota. Con il mio esempio, funziona. Con il tuo, no. Forse c'è qualcosa che mi sfugge.

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-11-02T18:31:43+00:00

    Mauro,

    grazie per la soluzione l'ho provata con il mio esempio e sembra che vada.

    Comunque Lunedi' faccio ulteriori prove e faccio sapere.

    grazie tante,

    A.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-11-02T17:44:26+00:00

    Ciao Mauro,

    in base al tuo esempio se in A1 ho la stringa di input e in B1 quella di confronto in C1 vorrei ottenere B cioe' tutte le stringhe che su A1 non presentano una corrispondenza su B1.

    Grazie,

    A.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-11-02T17:03:35+00:00

     

    Confrontanto il contenuto di entrambe vorrei ottenere come risultato su un'altra cella l'intersezione non comune tra di esse.

     

    Avendo in

    A1: =A;B;C

    B1: =A;C;E

    In C1 cosa vorresti trovare?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-11-02T15:37:43+00:00

    Confrontanto il contenuto di entrambe vorrei ottenere come risultato su un'altra cella l'intersezione non comune tra di esse.

    Si può fare con una formula?

    grazie a tutti,

    A.

    https://skydrive.live.com/redir.aspx?cid=dd405b0d5a6097c5&resid=DD405B0D5A6097C5!127&parid=root

    file: Intersez_stringhe

    Vedo molto complicato farlo con una formula "nativa" del foglio di lavoro (dovrebbe essere una serie di formule in cascata e diventerebbe molto articolato). E' più facile creando una funzione personalizzata (pur sempre richiamabile dalle celle del foglio di lavoro) oppure con una macro che operi il confronto e ne ottenga il risultato.

    Se riesco a ritagliare un po' di tempo libero nelle prossime ore provo a stenderne una bozza...

    Ciao

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento