Gruppieren Sie mehrere Excel-Spalten in Zeilen

1

Momentan arbeite ich an einer Kolumne mit dem Inhalt für den Lehrerkommentar.

Ich möchte es durch das Leerzeichen, Komma oder Interpunktionszeichen zwischen Wörtern innerhalb des Inhalts abgrenzen.

Gleichzeitig möchte ich jedes der Wörter im Inhalt herausnehmen und sie dann in Zeilen anstelle von Spalten platzieren.

Beispiel:

Catherine ist ein gutes Mädchen. -> Dies ist der Kommentar des Lehrers.

Nach der Abgrenzung in Excel habe ich "Catherine ist ein gutes Mädchen" in 6 Spalten mit 1 Spalte für 1 Wort.

Ich möchte jedoch, dass das Ergebnis der Wörter in Zeilen angeordnet wird. Es würde so aussehen, in 6 Reihen:

Catherine
is
a
good
girl
.
cody_q
quelle

Antworten:

2

Excel hat die Fähigkeit, das zu tun .

  1. Kopieren Sie die Daten in eine oder mehrere Spalten oder Zeilen.

  2. Klicken Sie mit der rechten Maustaste auf Ihre erste Zielzelle (die erste Zelle der Zeile oder Spalte, in die Sie Ihre Daten einfügen möchten), und klicken Sie dann auf Inhalte einfügen, bevor Sie die kopierten Daten einfügen.

  3. Wählen Sie in dem Dialogfeld Inhalte einfügen Transponieren aus, und klicken Sie dann auf OK.

Sie finden das Kontrollkästchen Transponieren in der unteren rechten Ecke des Dialogfelds:

Bildbeschreibung hier eingeben

Der Artikel stammt aus der Excel 2003-Hilfe, der Vorgang gilt jedoch bis zum neuesten Excel. Das Dialogfeld sieht jedoch möglicherweise anders aus.

Bon Gart
quelle
Wie setze ich stattdessen die wenigen Zeilen in eine Spalte, nachdem ich jedes Wort in eine eigene Variable gestellt habe? abcdefghi bis abcdefghi Dies ist jedoch nur ein Beispielversuch. Ich arbeite mit großen Datenmengen von 2000 Werten. Vielen Dank
cody_q
?? Sie können Ihr gesamtes aktuelles Excel-Arbeitsblatt auswählen, kopieren, ein neues Arbeitsblatt "einfügen" und "Spezial einfügen" - alle Ihre aktuellen Arbeiten auf einmal transponieren. Sie müssen nicht jede Zeile einzeln ausführen.
Bon Gart
0

Der folgende VBA-Code erledigt den Trick.

Sub FlattenToSingleCol()
    Cells(1, 1).Activate ' Go to the top left

    ' Go past the last row that starts with a word
    Do Until IsEmpty(ActiveCell)
        DoEvents
        ActiveCell.Offset(1).Select
    Loop

    ' Set curRow to the last row that starts with a word (the row above ActiveCell)
    curRow = ActiveCell.Row - 1

    Do While curRow > 0
        DoEvents
        Cells(curRow, 1).Activate

        ' Go right past the last cell that contains a word
        Do Until IsEmpty(ActiveCell)
            DoEvents
            ActiveCell.Offset(0, 1).Activate
        Loop

        ' Come back left to the last cell that contains a word
        If ActiveCell.Column > 1 Then
            ActiveCell.Offset(0, -1).Activate
        End If

        ' Insert a new row below the current one for each
        Do Until ActiveCell.Column = 1 ' Move each non-empty cell to a new row and move left to the edge
            DoEvents
            ActiveCell.Offset(1).EntireRow.Insert
            Cells(ActiveCell.Row + 1, 1).Value = ActiveCell.Value
            ActiveCell.Clear
            ActiveCell.Offset(0, -1).Select
        Loop

        ' Go to the row above. Processing from the bottom up avoids re-processing lines we just inserted below.
        curRow = ActiveCell.Row - 1
    Loop
End Sub
Schmetterlingsstaub
quelle