Risultati da 1 a 13 di 13

Discussione: dividere contenuto in una cella di excel: testo non separato nè da virgole nè da spaz



  1. #1
    L'avatar di Khiaretta84
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    lignano sabbiadoro
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    dividere contenuto in una cella di excel: testo non separato nè da virgole nè da spaz

    buona sera a tutti!
    sono nuova qui sul forum, e vi chiedo aiuto:


    io ho una cella (formato testo) che contiene solo dei + e dei – senza spazi nè altro.
    Avrei bisogno di mettere ogni simbolo (i + e i -) in una colonna.
    Con il comando “testo in colonne” non funziona (non essendo il testo diviso nè da spazi, nè da virgole nè da altro).
    quindi mi chiedo: c’è un modo per inserire gli spazi (non a mano, sono 53mila righe) o di dividerli direttamente in diverse colonne?

    grazie fin d'ora per chi saprà aiutarmi :)


  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao,
    la cosa più semplice è utilizzare la formula "STRINGA.ESTRAI" ma con 53000 righe il processo potrebbe essere alquanto lungo. L'alternativa è usare una macro VBA.
    Sono senza pc al momento quindi mi limito a suggerire la formula.
    Se i + e i - sono nella colonna A, nella cella B1 scriverai:
    =STRINGA.ESTRAI($A1;RIF.COLONNA(A1);1)

    e poi copi la formula in basso e a destra fin quando non restituisce celle vuote.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    prova ad allegare il file con dropcanvas.com

    se non ho capito male, prova così
    se i dati sono sulla colonna A
    su due colonne d'appoggio inserisci
    sulla prima
    =SE($A1="+";"+";"")
    sulla seconda
    =SE($A1="-";"-";"")
    copia le 2 celle per le 53000 righe sottostanti
    magari in più step per evitare incasinamenti
    poi copia le 2 colonne ed "incolla valori" dove ti servono
    ovviamente con caselle formatate come testo
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  4. #4
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1678
    Versione Office
    2010 PC
    Likes ricevuti
    895
    Likes dati
    184
    ciao
    con il "testo in colonne" puoi usare delimitatori "altro", dove puoi mettere sia + che successivamente -.
    anche con formule credo si possa fare ma dovresti allegare un file di esempio rappresentativo del tipo di testo che si riscontra.


    ou
    ma ultimamente siete degli Speedy Gongales :171::285:

  5. #5
    L'avatar di Khiaretta84
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    lignano sabbiadoro
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0
    dunque, ho provato a fare quello che mi avete detto ma non ci sono riuscita :(
    però forse non ho espresso chiaramente ciò ho bisogno di fare:

    io sulla colonna R2 ho questo testo: ----------+------------------
    senza spazi, senza virgole, senza altro...

    ho bisogno che ogni simbolo venga spostato in una sua cella dedicata, quindi su R2 rimarrà un - soltanto, su R3 un altro e così via.

    scusate il gergo poco tecnico, ma non so davvero come spiegarmi in altro modo.
    il file purtroppo non ve lo posso mandare perchè contiene dati sensibili

  6. #6
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1678
    Versione Office
    2010 PC
    Likes ricevuti
    895
    Likes dati
    184
    =stringa.estrai($r$2;rif.riga(a1);1)

    si può fare anche con testo in colonne, usando larghezza fissa

  7. #7
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155
    Tenendo conto del testo da te inserito penso che l'unica strada sia il VBA.
    Copia la sottostante macro ed associala ad un pulsante. Seleziona la cella che ti interessa e clicca sul pulsante. Nelle celle a destra della cella attiva vi saranno i tuoi dati uno per cella.
    Codice: 
    Option Explicit
    Sub dividi()
    Dim testo As String, colonna As Long, lng As Integer, i As Integer
    testo = ActiveCell.Text
    colonna = ActiveCell.Column
    lng = Len(testo)
    If lng > 1 Then
        For i = 1 To lng
            Cells(2, colonna + i) = Mid(testo, i, 1)
        Next i
    End If
    End Sub
    Ovviamente il codice va inserito in un Modulo standard.

    Ciao,
    Mario

  8. #8
    L'avatar di Khiaretta84
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    lignano sabbiadoro
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Tenendo conto del testo da te inserito penso che l'unica strada sia il VBA.
    Copia la sottostante macro ed associala ad un pulsante. Seleziona la cella che ti interessa e clicca sul pulsante. Nelle celle a destra della cella attiva vi saranno i tuoi dati uno per cella.
    Codice: 
    Option Explicit
    Sub dividi()
    Dim testo As String, colonna As Long, lng As Integer, i As Integer
    testo = ActiveCell.Text
    colonna = ActiveCell.Column
    lng = Len(testo)
    If lng > 1 Then
        For i = 1 To lng
            Cells(2, colonna + i) = Mid(testo, i, 1)
        Next i
    End If
    End Sub
    Ovviamente il codice va inserito in un Modulo standard.

    Ciao,
    Mario
    spero di farcela! mai fatto una macro in vita mia :171:

  9. #9
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Cool un aiutino........

    ti allego il file
    che prendendo la macro di Marius
    con alcune implementazioni fa tutto il lavoro

    questo è già un file xslm (che supporta il codice VBA)
    l'esempio scandisce dalla riga 2 alla 31 su colonna R
    per fare tutte le righe vai
    Sviluppo>VisualBasic
    e selezionando il nome del file, in questo caso"più&meno"
    apri nell'albero Modulo e vedrai il codice
    ed al posto di
    rigaFin=31
    metti rigaFin=53000
    premi il pulsante sul foglio "Esegui" (che avvia la macro)

    Allegato 908

    :999:
    Codice: 
    Option Explicit
    
    Sub dividi()
        Dim testo As String, colonna As Long, lng As Integer, i As Integer
        Dim rigaIniz As Long, rigaFin As Long, j As Long
        
        colonna = 18   'colonna "R"
        rigaIniz = 2
        rigaFin = 31   '53000
        
        For j = rigaIniz To rigaFin
            testo = Cells(j, colonna).Text
            colonna = 18
            lng = Len(testo)
            If lng > 1 Then
                For i = 1 To lng
                    Cells(j, colonna + i - 1) = Mid(testo, i, 1)
                Next i
            End If
        Next j
    End Sub
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  10. #10
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    per inciso, ho usato la base di Marius
    ma le variabili Long riferite alle colonne sono inutili!!!
    dato che le colonne a disposizione sono 16'384
    si poteva usare benissimo variabili Integer che arrivano fino a circa 32'767
    il problema si pone sulle righe che potrebbero essere oltre 1 milione
    e va bene Long che può passare i 2 miliardi

    questo solamente per didattica in quanto la variabile in questione è una sola

    :999:
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

  11. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7161
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1301
    Ciao Zio_tom,
    ottima soluzione la tua.
    Per mia curiosità mi chiedevo se è necessario dichiarare le variabili e i valori oppure si poteva scrivere semplicemente così:
    Codice: 
    Option Explicit
    
    
    Sub dividi()
        Dim testo As String, lng As Integer, i As Integer, j As Long
                For j = 2 To 31
            testo = Cells(j, 18).Text
                    lng = Len(testo)
            If lng > 1 Then
                For i = 1 To lng
                    Cells(j, 18 + i - 1) = Mid(testo, i, 1)
                Next i
            End If
        Next j
    End Sub

  12. #12
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155
    @zio_Tom
    ottima lezione che accetto ma con una precisazione:
    la dichiarazione per la colonna NON E' inutile, è più giusto dichiararla Integer piuttosto che Long.

    @ges
    Le variabili vanno SEMPRE dichiarate.

    Ciao,
    Mario

  13. #13
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    x Marius
    mi son spiegato male
    intendevo "abbondante"
    NON che non sono da dichiarare
    oltretutto con Option Explicit diventa obblicatorio e darebbe errore
    :999:
    n°3 - Win10pro + Office 2010 ----- n°1 - Win7pro + Office 2010 ----- n°1 - WinXPpro + Office 2010

Discussioni Simili

  1. Dividere testo in una cella con formato personalizzato
    Di nino17 nel forum Domande su Excel in generale
    Risposte: 16
    Ultimo Messaggio: 04/03/17, 18:24
  2. dividere risultati di una cella in diverse celle da un foglio excel
    Di lupokbg nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 05/06/16, 20:44
  3. Dividere contenuto di una cella in due celle distinte
    Di bigadavo nel forum Domande su Excel in generale
    Risposte: 15
    Ultimo Messaggio: 01/05/16, 11:59
  4. salvare un excel in .csv separato da virgola
    Di teo91no nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 21/12/15, 15:15
  5. dividere il testo di una cella in più celle senza spezzare le parole
    Di alex nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 09/11/15, 13:22

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •