Excel Forum Per condividere esperienze su Microsoft Excel

Trasformare molti spazi in uno solo

  • Messaggi
  • OFFLINE
    A.Gallace
    Post: 10
    Registrato il: 23/02/2016
    Città: UDINE
    Età: 51
    Utente Junior
    2007
    00 09/10/2018 16:18
    So che la domanda è strana, ma io ho un file in cui nelle descrizioni ci sono dei punti in cui ci sono 15-20-25 spazi e devo ridurli a 1 solo.

    Con sostituisci non riesco a farlo in quanto devo indicare il numero esatto di spazi, c'è una maniera di farlo con un'altra formula?

    Grazie a chi mi saprà dare la giusta risposta.

    😃

  • ONLINE
    alfrimpa
    Post: 3.961
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 09/10/2018 16:25
    Ciao

    Occorrerebbe vedere con un file gli esempi significativi del tipo di stringa che hai per poi valutare il da farsi.

    Alfredo
  • OFFLINE
    locatevaresino
    Post: 2.092
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 09/10/2018 17:14
    ciao

    intanto ne approfitto per salutare Alfredo

    penso che in questo caso bisogna utilizzare VBA

    ti posto una sub che fa questo lavoro da colonna A e scrive in colonna C

    vedi file allegato


    Option Explicit

    Sub Splitto()
    Dim sSplit() As String
    Dim i As Long, k As Long
    Dim stringaR As String
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    sSplit = Split(Cells(i, 1), " ")
    stringaR = ""
    For k = LBound(sSplit) To UBound(sSplit)
    If sSplit(k) <> "" Then
    stringaR = stringaR & sSplit(k) & " "
    End If
    Next k
    Cells(i, 3) = Trim(stringaR)
    Next i
    End Sub




    Ciao da locate
    excel 2007 / 13
  • OFFLINE
    locatevaresino
    Post: 2.093
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 09/10/2018 17:26
    riciao

    si potrebbe utilizzare anche una funzione scritta sempre in VBA
    da inserire in un modulo


    Option Explicit
    Public Function NoSpazi(ByVal cella As Range) As String
    Dim sSplit() As String
    Dim k As Long
    Dim stringaR As String
    stringaR = ""
    sSplit = Split(cella, " ")
    For k = LBound(sSplit) To UBound(sSplit)
    If sSplit(k) <> "" Then
    stringaR = stringaR & sSplit(k) & " "
    End If
    Next k
    NoSpazi = Trim(stringaR)
    End Function



    utilizzo NoSpazi(e la cella dove vi e' la stringa da modificare)
    riallego sempre il file con inserita anche questi
    Ciao da locate
    excel 2007 / 13
  • OFFLINE
    rollis13
    Post: 722
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 09/10/2018 19:36
    Un saluto a tutti 🖐.

    Con l'uso di una colonna d'appoggio provare ad usare la funzione ANNULLA.SPAZI

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ONLINE
    alfrimpa
    Post: 3.963
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 09/10/2018 20:01
    Scusa Rollis puoi fare un esempio di quello che intendi?

    Per quanto ne sappia ANNULLA.SPAZI() non interviene all’interno di una stringa.

    Alfredo
  • OFFLINE
    locatevaresino
    Post: 2.094
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 09/10/2018 20:14
    ciao

    ciao Alfredo
    la funzione proposta da Rollis, ( ANNULLA.SPAZI() ) fa proprio questo lavoro
    io no ho proposto questi in quanto , come penso di solito quegli spazi inseriti non si riferiscono al carattere chr(32) ma vedrai che saranno caratteri chr(160) se queste stringhe arrivano da un server , quindi un gestionale

    comunque attendiamo il file di riscontro
    Ciao da locate
    excel 2007 / 13
  • ONLINE
    alfrimpa
    Post: 3.964
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 09/10/2018 20:26
    Ciao Locate

    ANNULLA.SPAZI() elimina gli spazi in eccesso all’inizio ed al termine di una stringa non quelli al suo interno.

    https://support.office.com/it-it/article/annulla-spazi-funzione-annulla-spazi-410388fa-c5df-49c6-b16c-9e5630b479f9

    Alfredo
  • OFFLINE
    Ulisse1990
    Post: 236
    Registrato il: 11/07/2015
    Età: 33
    Utente Junior
    office 2013-2016
    00 09/10/2018 21:00

    Buona Sera

    Se devi spostare -e eliminare puoi usare questa formula

    A1=15 20 22


    B1=TESTO(SOSTITUISCI(A1;" ";"")+0;"0 00000")

    variando la posizione degli zero varierà dove sarà posto lo spazio
    vuoto



    Saluti

    [Modificato da Ulisse1990 09/10/2018 21:39]
  • OFFLINE
    rollis13
    Post: 723
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 09/10/2018 21:48
    @alfrimpa, di quella pagina che hai indicato devi leggere la 'Descrizione', non solo l'esempio che è riduttivo; prova eventualmente.

    Se poi ci sono situazioni particolari si può anche usare insieme a LIBERA:

    =LIBERA(ANNULLA.SPAZI(

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ONLINE
    alfrimpa
    Post: 3.965
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 09/10/2018 22:16
    Forse sono io che non capisco ma io leggo questo


    Esempio

    Copiare i dati di esempio contenuti nella tabella seguente e incollarli nella cella A1 di un nuovo foglio di lavoro Excel. Affinché le formule mostrino i risultati, selezionarle, premere il tasto F2 e quindi Invio. Se necessario, adattare l'ampiezza delle colonne per visualizzare tutti i dati.

    Formula. Descrizione. Risultato

    =ANNULLA.SPAZI(" Utili primo trimestre ")

    Rimuove gli spazi iniziali e finali dal testo nella formula (Utili primo trimestre)

    Utili primo trimestre


    Alfredo
  • OFFLINE
    rollis13
    Post: 724
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 09/10/2018 23:09
    Avevo detto: "leggi la descrizione".


    Descrizione
    Rimuove tutti gli spazi dal testo ad eccezione dei singoli spazi tra le parole. Utilizzare la funzione ANNULLA.SPAZI sul testo creato con altre applicazioni che può presentare una distribuzione irregolare degli spazi.

    ed in particolare:

    ad eccezione dei singoli spazi tra le parole


    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)