Excel - 4. Wort in jeder Spalte löschen

Excel - 4. Wort in jeder Spalte löschen

Wie kann ich das vierte Wort in jeder Spalte einer Excel-Tabelle löschen? Ich habe beispielsweise „Herr und Frau Smith“. Ich möchte „Herr und Frau“ behalten, aber „Smith“ löschen. Gibt es keine Möglichkeit, das vierte Wort zu finden und zu löschen? Vielen Dank für jede Hilfe …

Antwort1

Dies ist eine Art Workaround, funktioniert aber, wenn Sie nur mit normalem Text (keine Formeln) arbeiten.

Nehmen wir an, Ihr Blatt mit den Daten heißt „Sheet1“. Erstellen Sie ein neues Arbeitsblatt in Ihrer Tabelle (nehmen wir an, es heißt „Sheet2“) und geben Sie in A1 Folgendes ein:

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

Wenn Sie löschen möchtennurGeben Sie für das vierte Wort Folgendes ein:

=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),""))

Kopieren Sie Zelle A1 und fügen Sie sie in die Zellen auf Blatt2 ein, die mit den Zellen auf Blatt1 übereinstimmen, mit denen Sie arbeiten möchten. (Wenn Sie also Daten auf Blatt1 in den Zellen A1 bis D5 haben, fügen Sie sie auf Blatt2 in den Zellen A1 bis D5 ein.) Kopieren Sie alle Zellen, die Sie eingefügt haben, wechseln Sie zu Blatt1 undWerte einfügenan den passenden Stellen. Sie können nun Sheet2 löschen.

Antwort2

Das ist vielleicht eine verrückte Idee, aber versuchen Sie, die Datei in eine durch Leerzeichen getrennte Datei umzuwandeln und sie dann mit Excel zu öffnen. Löschen Sie nun die vierte Spalte.Auf dem Papier klingt das gut …Ansonsten weiß ich nichts.

Antwort3

Hier ist eine elegantere/effizientere Möglichkeit, dies zu tun, wenn Sie mit dem Einfügen eines Visual Basic-Makros einverstanden sind:

Nehmen wir an, Ihr Blatt mit den darauf enthaltenen Daten heißt „Sheet1“.

  1. Auf derEntwickleraufMakros. (Wenn es keineEntwicklerKlicken Sie auf die große rundeMicrosoft Office-SchaltflächeKlicken Sie oben links im Fenster aufExcel-Optionen, dann klickBeliebtund klicken Sie dann auf dieRegisterkarte „Entwickler“ im Menüband anzeigen).
  2. Ein Dialogfeld wird eingeblendet.Makroname:Geben Sie Ihrem Makro im Textfeld einen Namen, etwa wieViertes Wort löschenwird funktionieren.
  3. Drücke denErstellen(Wenn dieErstellenSchaltfläche immer noch deaktiviert ist, entfernen Sie Leerzeichen und Satzzeichen aus Ihrem Makronamen.)
  4. Fügen Sie im angezeigten Fenster Folgendes in den Bereich zwischen „Sub DeleteFourthWord()“ und „End Sub“ ein:

     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. SchließeMicrosoft Visual Basicund klicken Sie aufMakrosauf derEntwicklerTab.

  6. Wählen Sie das soeben erstellte Makro aus und klicken Sie auf dasOptionen...Taste.
  7. UnterTastenkürzel, wählen Sie eine Tastenkombination für diese Funktion aus (in diesem Beispiel verwende ich die Taste „t“) und geben Sie sie dort ein.
  8. Drück denOKund schließen Sie dann dieMakroDialogbox.
  9. Wählen Sie die Zellen aus, aus denen Sie das vierte Wort entfernen möchten, und drücken Sie die Tastenkombination (z. B. Strg+T). Sie können diesen Schritt beliebig oft wiederholen.

Notiz:Wenn Sie alles nach dem dritten Wort löschen möchten, fügen Sie stattdessen Folgendes ein:

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

(Quellenhinweis: Ich habe die Anweisungen zum Abrufen der Registerkarte „Entwickler“ aus der Excel-Hilfedatei geändert.)

verwandte Informationen