stringa estrai tra spazi

Anonimo
2012-07-12T13:04:25+00:00

salve a tutti

ho una stringa di testo nella colonna b cosi formata

"abc 12345/3 cognome"

nella colonna c dovrei escludere tutta la parte prima dello spazio e dopo di modo che rimane solo 12345/3

come posso fare?

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-07-12T13:28:01+00:00

oppure:

=STRINGA.ESTRAI(A1;TROVA(" ";A1)+1;(TROVA(" ";A1;TROVA(" ";A1)+1)-TROVA(" ";A1)-1))

La risposta è stata utile?

3 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-07-12T14:05:19+00:00

    salve a tutti

    ho una stringa di testo nella colonna b cosi formata

     

    "abc 12345/3 cognome"

    nella colonna c dovrei escludere tutta la parte prima dello spazio e dopo di modo che rimane solo 12345/3

    come posso fare?

    Se i dati sono sempre uguali come forma, cioè: xxx xxxxx/x nnnnnn (la serie n può variare come lunghezza):

    C1: =STRINGA.ESTRAI(B1;5;7)

    Altrimenti:

    C1: =STRINGA.ESTRAI(B1;TROVA(" ";B1)+1;TROVA(" ";B1;TROVA(" ";B1)+1)-TROVA(" ";B1))

    o una semplicissima UDF:

    Public Function f(ByVal v As Variant) As String

        Dim vs As Variant

        vs = Split(v, " ")

        f = vs(1)

    End Function

    da richiamare ad esempio così:

    C1: = f(B1)

    NOTA.

    Nessuna delle soluzioni funziona se la separazione fra le parole della stringa è superiore ad una.

    Una parziale soluzione potrebbe essere questa UDF che corregge fino a 4 caratteri di separazione erroneamente inseriti al posto di uno:

    Public Function f(ByVal v As Variant) As String

        Dim vs As Variant

        Dim lng As Long

        For lng = 1 To 4

            v = Replace(v, "  ", " ")

        Next

        vs = Split(v, " ")

        f = vs(1)

    End Function

    Possiamo anch efare tutto in automatico sfruttando la Function e una Sub:

    Public Function f(ByVal v As Variant) As String

        Dim vs As Variant

        Dim lng As Long

        For lng = 1 To 4

            v = Replace(v, "  ", " ")

        Next

        vs = Split(v, " ")

        f = vs(1)

    End Function

    Public Sub m()

        Dim sh As Worksheet

        Dim lRiga As Long

        Dim lng As Long

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        With sh

            lRiga = .Range("B" & .Rows.Count).End(xlUp).Row

            For lng = 1 To lRiga

                .Range("C" & lng).Value = f(.Range("B" & lng).Value)

            Next

        End With

        Set sh = Nothing

    End Sub

    Lanciando la Sub m, otteniamo quanto richiesto in colonna C.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-07-12T13:50:11+00:00

    GRAZIE!!! :)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-07-12T13:13:48+00:00

    Ciao,

    una prima risposta per estrarre segmenti di stringa confinate fra due spazi:

    =ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(A1;" ";RIPETI(" ";150));150;100))

    Saluti

    La risposta è stata utile?

    0 commenti Nessun commento