Excel e gli applicativi Microsoft Office Estrazione di determinati caratteri da stringa di testo

Login Registrati
Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
  • Autore
    Articoli
  • #6070 Score: 0 | Risposta

    Pinil
    Partecipante

      Un saluto agli amici ed esperti del Forum

      Chiedo il Vostro aiuto su una formula che mi estragga determinati caratteri da una stringa di testo: semplicemente, ho necessità di isolare il  CAP da un indirizzo. 

      Una procedura dedicata mi genera un report in Excel di diverse centinaia di indirizzi, per i quali ho la necessità di dividerli per CAP.

      Le stringhe di indirizzi hanno tutte la medesima composizione, ed il CAP è posizionato nel mezzo della stringa stessa:

      Via XXXXXXX(virgola)(spazio)CAP(spazio)-(spazio)Città

       

      Esempio pratico di indirizzi inventati:

       

      Via Giuseppe Verdi 25, 70125 - Bari

      Piazza Pisa 26, 00152 - Roma

      Salita Grimoaldo degli Alfaraniti 27, 16125 - Genova

      Viale Milano 28, 75020 - Cagnano Varano

      Vicolo Mulino Nuovo 29, 17028  - Canne della Battaglia

      Ecc

      Ecc

       

      Ci ho provato in mille modi, ma senza risultato.

      Un ringraziamento preventivo a chi vorrà aiutarmi

      Pinil

      #6071 Score: 1 | Risposta

      alfrimpa
      Partecipante
        33 pts

        Se gli indirizzi sono tutti nella forma che hai esposto potrebbe bastare una formula di questo tipo (ma ho molti dubbi)

        =STRINGA.ESTRAI(A1;TROVA(", ";A1)+2;5)

        Alfredo

        #6072 Score: 1 | Risposta

        albatros54
        Moderatore
          89 pts

          si potrebbe ricorrere ad un codice VBA con una RegExp (Espressione Regolare)  bisogna capire a che livello è Pinil con VBA 🙂   comunque posto il codice gli indirizzi completi sono nella nelle celle della colonna "A"

          Private Sub cercaCAP()
              Dim strPattern As String: strPattern = "[0-9]{5}"
              Dim strReplace As String: strReplace = ""
              Dim strInput As String
              Dim Myrange As Range
           Set regEx = CreateObject("vbscript.regexp")
              Set Myrange = ActiveSheet.Range("A1:A5")
              For Each cell In Myrange
                  If strPattern <> "" Then
                      strInput = cell.Value
          
                      With regEx
                          .Global = True
                          .MultiLine = True
                          .IgnoreCase = False
                          .Pattern = strPattern
                      End With
                      Set matches = regEx.Execute(strInput)
                      s = ""
                      For Each Match In matches
                          cell.Offset(0, 1) = Match.Value
                      Next
                  End If
              Next
          End Sub
          
          Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)Sempre il mare, uomo libero, amerai! ( Charles Baudelaire )
          #6073 Score: 0 | Risposta

          Pinil
          Partecipante

            Perfetto, funzionano entrambi i sistemi suggeritomi

            Ringrazio Alfredo e Albatros per il prezioso aiuto

            Ho tanto da imparare

             

            A presto

            Pinil

          Login Registrati
          Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
          Rispondi a: Estrazione di determinati caratteri da stringa di testo
          Gli allegati sono permessi solo ad utenti REGISTRATI
          Le tue informazioni: