Ich habe ein paar Blätter, bei denen ich die erste Zeile jeder Zelle in die letzte Zeile verschieben muss. Dies ist beispielsweise eine Zelle:
Chris / Mike / Ralph
Henry / Steve
Mark / Bob
Würde werden
Henry / Steve
Mark / Bob
Chris / Mike / Ralph
Ich dachte daran, reguläre Ausdrücke zu verwenden, aber ich sehe keine einfache Möglichkeit, damit umzugehen. Wenn man die Zellen in einen Texteditor kopiert und dann wieder zurückkopiert, ist der eingefügte Text falsch, da viele Zellen zusammengeführt werden. Vielleicht gibt es einen Code/eine Formel dafür, aber ich bin mir nicht sicher, wie das geht.
Alle Ideen wären hilfreich!
Antwort1
Ich konnte hierfür ein einfaches VBA-Skript erstellen:
Sub swap()
Dim cel As Range
Dim selectedRange As Range
Set selectedRange = Application.Selection
For Each cel In selectedRange.Cells
Dim lines() As String
Dim firstLine As String
lines = Split(cel.Value, vbLf)
If UBound(lines) > 0 Then
firstLine = lines(0)
lines(0) = lines(UBound(lines))
lines(UBound(lines)) = firstLine
cel.Value = Join(lines, vbLf)
End If
Next cel
End Sub
Antwort2
Sie können eine Hilfsspalte hinzufügen und sie dann löschen:
+----------------------+
| NAMES |
+----------------------+
| Chris / Mike / Ralph |
+----------------------+
| Henry / Steve |
+----------------------+
| Mark / Bob |
+----------------------+
Zu diesem
+----------------------+------------------+
| NAMES | AUX |
+----------------------+------------------+
| Chris / Mike / Ralph | =count(@[NAMES]) |
+----------------------+------------------+
| Henry / Steve | 1 |
+----------------------+------------------+
| Mark / Bob | 2 |
+----------------------+------------------+
Dann nach Spalte sortieren AUX
und fertig. Ich habe die =count()
Formel so verwendet, dass Sie die erste Zeile als maximale Zahl haben können n
, dann beginnen die anderen Zeilen von 1 bis n-1
. Dann löschen Sie die Spalte.
+----------------------+------------------+
| NAMES | AUX |
+----------------------+------------------+
| Henry / Steve | 1 |
+----------------------+------------------+
| Mark / Bob | 2 |
+----------------------+------------------+
| Chris / Mike / Ralph | =count(@[NAMES]) |
+----------------------+------------------+
Und dann
+----------------------+
| NAMES |
+----------------------+
| Henry / Steve |
+----------------------+
| Mark / Bob |
+----------------------+
| Chris / Mike / Ralph |
+----------------------+
Prost.