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-21T08:53:25+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

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-02-21T07:48:15+00:00

    scusa ma non ho risolto ... cerco di spiegarmi meglio ...

     

    in una cella ho il seguente testo

     

    cella A1

    "1 - 2 - 10 - 12 -16"

     

    voglio che i numeri vengano divisi in 5 celle contigue con delle formule e non con macro

     

    cella A2 "1"

    cellq A3 "2"

    cella A4 "10"

    cella A5 "12"

    cella A6 "16"

    • Confermi che prima e dopo il trattino c'è uno spazio?
    • Vedo delle virgolette: devono esserci o no?
    • Sono sempre 5 i valori da ricavare o possono essere di più/di meno ?

    Grazie

    NOTA. Per avere in verticale i valori, rispetto alla soluzione postata in precedenza:

    Public Sub mIncolla()

         Dim lng As Long

         For lng = 0 To UBound(s)

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

         Next

     End Sub

    La risposta è stata utile?

    0 commenti Nessun commento