ESTRARRE NUMERI DA TESTO (SEPARATO DA TRATTINO)

Anonimo
2012-02-20T16:05:49+00:00

Come posso estrarre in apposite celle i singoli numeri avendo una cella con testo simile a questo ?

2 - 5 - 7 - 8 - 9 - 10 - 12 - 13

oppure

10 - 11 - 12 - 13 - 14 - 15 - 16

Grazie - Saluti

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-02-21T10:19:51+00:00

OK FUNZIONA ! Mi rimane solo un problema ... vorrei i numeri in riga non in colonna ... sto realizzando un programma in EXCEL per il nuovo gioco di SISAL ... ! Grazie

Mi sembrava avessi detto in colonna.

Ok, questo lo sviluppo su riga:

=1*STRINGA.ESTRAI(" "&SOSTITUISCI($A1;" - ";" ")&" ";TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A1;" - ";" ")&" ";" ";"#";RIF.COLONNA(A1)));TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A1;" - ";" ")&" ";" ";"#";RIF.COLONNA(B1)))-TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A1;"

  • ";" ")&" ";" ";"#";RIF.COLONNA(A1))))

da trascinare a destra

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2012-02-21T09:25:53+00:00

confermo che dopo ogni numero c'è uno spazio (le virgolette non ci sono)

I numeri sono in totale da 11 e possono essere da 1 a 20

 

1 - 2 - 3 - 10 - 11 ecc.

 

Il problema che alcune volte ci sono numeri singoli

come 1 - 2 - 3 ed altre numeri doppi 12 - 13 -14

 

Io non vorrei utilizzare una macro ma delle formule nelle 11 caselle a destra della casella che contiene gli 11 numeri ...

 

Grazie ancora .. Saluti Roberto

Provo

Intanto ecco la soluzione via macro che elimina anche gli spazi:

Private s() As String

Public Sub mCopia()

    s = Split(Selection, "-")

End Sub

Public Sub mIncolla()

     Dim lng As Long

     For lng = 0 To UBound(s)

         ActiveCell.Offset(lng, 0).Value = _

            Replace(s(lng), " ", "")

     Next

End Sub

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2012-02-21T09:21:42+00:00

confermo che dopo ogni numero c'è uno spazio (le virgolette non ci sono)

I numeri sono in totale da 11 e possono essere da 1 a 20

 

1 - 2 - 3 - 10 - 11 ecc.

 

Il problema che alcune volte ci sono numeri singoli

come 1 - 2 - 3 ed altre numeri doppi 12 - 13 -14

 

Io non vorrei utilizzare una macro ma delle formule nelle 11 caselle a destra della casella che contiene gli 11 numeri ...

 

Grazie ancora .. Saluti Roberto

Prova così:

in A1 la tua stringa di numeri

in B1: =1*STRINGA.ESTRAI(" "&SOSTITUISCI($A$1;" - ";" ")&" ";TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A$1;" - ";" ")&" ";" ";"#";RIF.RIGA(A1)));TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A$1;" - ";" ")&" ";" ";"#";RIF.RIGA(A2)))-TROVA("#";SOSTITUISCI(" "&SOSTITUISCI($A$1;"

  • ";" ")&" ";" ";"#";RIF.RIGA(A1))))

da trascinare in basso fino al messaggio di errore #VALORE!

La risposta è stata utile?

0 commenti Nessun commento

18 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-02-20T17:40:01+00:00

    sei un mago ... i valori vanno messi in singole celle ... i valori sono sempre 20 da scomporre in 20 celle ... ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-02-20T16:35:48+00:00

    gli esempi ri riferiscono a 2 celle distinte ... i numeri sono in sequenza separati da trattino ma in un unica cella ... grazie

    E, per favore, *dove* li mettiamo i valori estratti? Grazie.

    Ti faccio counque un esempio. La variabile e le due macro qui sotto, vanno copia/incollate in un modulo standard:

    Private s() As String

    Public Sub mCopia()

        s = Split(Selection, "-")

    End Sub

    Public Sub mIncolla()

        Dim lng As Long

        For lng = 0 To UBound(s)

            ActiveCell.Offset(0, lng).Value = s(lng)

        Next

    End Sub

    • Seleziona la cella dove hai i valori
    • Esegui mCopia
    • Seleziona la cella da dove vuoi incollare i valori
    • Esegui mIncolla

    Se non hai mai utilizzato le macro, vedi qui:

    http://www.maurogsc.eu/excel/xlsdoveinserirecodice.aspx

    Puoi anche asseganre un tasto di scelta rapida alle due macro. Vedi il punto 5 al link qui sopra.

    La risposta è stata utile?

    0 commenti Nessun commento