Excel: elimina la quarta parola in ogni colonna


0

Come posso eliminare la quarta parola in ogni colonna in un foglio di calcolo Excel? Ad esempio, ho "Mr. and Mrs Smith". Voglio mantenere Mr. e Mrs. ma eliminare Smith. Non c'è un modo per trovare ed eliminare la quarta parola? Grazie mille per qualsiasi aiuto ...


l'inizio sarà sempre "Mr. & Mrs." scritto esattamente così?
Xantec,

@Xantec - Se lo fosse, allora perché avrebbe dovuto eliminare la parola? Basta sovrascriverlo con quante copie di "Mr. & Mrs." hai bisogno di ahah!
Shinrai,

Risposte:


2

Questo è un po 'una soluzione alternativa, ma funzionerà se hai solo a che fare con il testo normale (non con le formule).

Diciamo che il tuo foglio con i dati su di esso si chiama "Foglio1". Crea un nuovo foglio di lavoro sul foglio di calcolo (supponiamo che si chiami "Foglio2") e in A1, digita:

=IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)-1),"")

Se si desidera eliminare solo la quarta parola, digitare:

=IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1))&RIGHT(Sheet1!A1,LEN(Sheet1!A1)-FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)+1)),IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)-1),""))

Copia la cella A1 e incollala nelle celle di Sheet2 che corrispondono alle celle di Sheet1 con i dati con cui vuoi lavorare. (Quindi se hai dati su Sheet1 nelle celle da A1 a D5, incollali su Sheet2 nelle celle da A1 a D5.) Copia tutte quelle celle che hai incollato, passa a Sheet1 e incolla i valori nei punti corrispondenti. Ora puoi eliminare Sheet2.


2

Questa potrebbe essere un'idea fuori dal comune, ma prova a trasformare il file in un file delimitato da spazi, quindi aprilo con Excel. Ora cancella la quarta colonna. Suona bene sulla carta ... A parte questo, non lo so.


1
Faccio spesso una versione di questo incollando il testo in Word, sostituendo gli spazi con le schede e quindi convertendomi in una tabella in Word o incollando nuovamente in Excel e lavorando con esso più avanti. Il punto è che Word o Excel gestiscano la separazione in token, invece di lottare con le funzioni nidificate Find (). (Soprattutto da quando Find () genera un errore se non trova qualcosa, invece di restituire semplicemente uno 0.)
Martha,

0

Ecco un modo più elegante / efficiente per farlo, se stai bene incollare in una macro di Visual Basic:

Diciamo che il tuo foglio con i dati su di esso si chiama "Foglio1".

  1. Nella scheda Sviluppatore , fai clic su Macro . (Se non è presente la scheda Sviluppatore , fai clic sul pulsante rotondo grande di Microsoft Office nella parte superiore sinistra della finestra, fai clic su Opzioni di Excel , quindi fai clic su Popolare , quindi fai clic sulla scheda Mostra sviluppatore nella casella di controllo della barra multifunzione ).
  2. Apparirà una finestra di dialogo. Nel Nome macro: casella di testo, dai un nome alla tua macro; qualcosa come DeleteFourthWord funzionerà.
  3. Fai clic sul pulsante Crea . (Se il pulsante Crea è ancora disabilitato, elimina spazi e punteggiatura dal nome della tua macro.)
  4. Incolla quanto segue nella finestra che compare, nello spazio tra "Sub DeleteFourthWord ()" e "End Sub":

     For Each c In ActiveCell.CurrentRegion.Cells
            If c.HasFormula = False Then
                Original_Cell_Text = c.Value
                Text_To_Parse = Original_Cell_Text
                Word1 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
                If Len(Word1) = 0 Then
                    Word1 = Text_To_Parse
                    Text_To_Parse = ""
                Else
                    Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word1))
                End If
                Word2 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
                If Len(Word2) = 0 Then
                    Word2 = Text_To_Parse
                    Text_To_Parse = ""
                Else
                    Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word2))
                End If
                Word3 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
                If Len(Word3) = 0 Then
                    Word3 = Text_To_Parse
                    Text_To_Parse = ""
                Else
                    Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word3))
                End If
                Word4 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
                If Len(Word4) = 0 Then
                    Word4 = Text_To_Parse
                    Text_To_Parse = ""
                Else
                    Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word4))
                End If
                Remaining_Text = Text_To_Parse
                If (Len(Word1) > 0 And Len(Word2) > 0 And Len(Word3) > 0 And Len(Word4) > 0) Then
                    If Len(Remaining_Text) > 0 Then
                        c.Value = Word1 + Word2 + Word3 + Remaining_Text
                    Else
                        c.Value = Word1 + Word2 + Word3
                    End If
                End If
            End If
        Next
    
  5. Chiudi la finestra di Microsoft Visual Basic e fai clic su Macro nella scheda Sviluppatore .

  6. Selezionare la macro appena creata e fare clic sul Opzioni ... pulsante.
  7. In Tasto di scelta rapida , selezionare un tasto di scelta rapida da utilizzare per questa funzione (in questo esempio userò il tasto "t") e digitarlo lì.
  8. Premere il pulsante OK , quindi chiudere la finestra di dialogo Macro .
  9. Seleziona le celle da cui vuoi rimuovere la quarta parola e premi il tasto scorciatoia (come Ctrl + t). Puoi ripetere questo passaggio tutte le volte che vuoi.

Nota: se si desidera eliminare tutto dopo la terza parola, incollare invece questo:

For Each c In ActiveCell.CurrentRegion.Cells
    If c.HasFormula = False Then
        Original_Cell_Text = c.Value
        Text_To_Parse = Original_Cell_Text
        Word1 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
        If Len(Word1) = 0 Then
            Word1 = Text_To_Parse
            Text_To_Parse = ""
        Else
            Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word1))
        End If
        Word2 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
        If Len(Word2) = 0 Then
            Word2 = Text_To_Parse
            Text_To_Parse = ""
        Else
            Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word2))
        End If
        Word3 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
        If Len(Word3) = 0 Then
            Word3 = Text_To_Parse
            Text_To_Parse = ""
        Else
            Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word3))
        End If
        Remaining_Text = Text_To_Parse
        If (Len(Word1) > 0 And Len(Word2) > 0 And Len(Word3) > 0) Then
            c.Value = Word1 + Word2 + Word3
        End If
    End If
Next

(Nota di origine: ho modificato le istruzioni su come ottenere la scheda Sviluppatore dal file della Guida di Excel.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.