Excel bietet seit langem die Möglichkeit, benachbarte Zellen zu einer größeren Einzelzelle zusammenzuführen. Diese Fähigkeit wurde von vielen Arbeitsblattdesignern genutzt, um ihren Arbeitsblättern ein poliertes, professionelles Aussehen zu verleihen.

Die Verwendung von zusammengeführten Zellen hat jedoch einen großen Nachteil: Sie können keine Tabellen sortieren, die sie enthalten. Wenn Sie es versuchen, erhalten Sie die Meldung „Für den Vorgang müssen die zusammengeführten Zellen dieselbe Größe haben.“

Die naheliegendste Lösung für das Problem besteht darin, keine zusammengeführten Zellen zu verwenden.

Angenommen, Sie haben ein Arbeitsblatt, in dem jeder „Datensatz“ tatsächlich aus zwei Zeilen besteht, und die erste Spalte des Arbeitsblatts enthält zusammengeführte Zellen. (Jeder zweizeilige Datensatz beginnt mit zwei zusammengeführten Zellen, die sich über die beiden Zeilen erstrecken. Diese zusammengeführte Zelle enthält einen Projektnamen.)

Es ist besser, die Zellen in der ersten Spalte zu entfernen, aber dann fragen Sie sich vielleicht, wie die Datensätze im Arbeitsblatt richtig sortiert werden können. wie man die Zeilenpaare während einer Sortierung zusammenhält. Sie können dies tun, indem Sie Ihren Projektnamen in die erste Zeile und den Projektnamen in die zweite Zeile mit „zz“ einfügen. Wenn die erste Zeile beispielsweise „Wilburn Chemical“ (den Projektnamen) enthält, kann die zweite Zeile „Wilburn Chemicalzz“ enthalten. Formatieren Sie die Zelle der zweiten Zeile so, dass der Name nicht angezeigt wird (z. B. weißer Text auf weißem Hintergrund), und Sie können dann erfolgreich sortieren, wie Sie möchten.

Eine andere Lösung besteht darin, ein Makro zu verwenden, um Ihr Arbeitsblatt zu jonglieren und die Sortierung durchzuführen. Angenommen, die zusammengeführten Zellen befinden sich in Spalte A (wie zuvor beschrieben), können Sie die Daten mit dem folgenden Makro nach dem Inhalt von Spalte A sortieren:

Sub SortList()

Dim sAddStart As String     Dim rng As Range     Dim rng2 As Range     Dim lRows As Long

Application.ScreenUpdating = False     sAddStart = Selection.Address     Set rng = Range("A1").CurrentRegion

With rng         lRows = .Rows.Count - 1         .Cells(1).EntireColumn.Insert         .Cells(1).Offset(0, -1) = "Temp"

.Cells(1).Offset(1, -1).FormulaR1C1 = _           "=+RC[1]&"" ""&ROW()"

.Cells(1).Offset(2, -1).FormulaR1C1 = _           "=+R[-1]C[1]&"" ""&ROW()"

Set rng2 = .Cells(1).Offset(1, -1).Resize(lRows, 1)

Range(.Cells(2, 0), .Cells(3, 0)).AutoFill _             Destination:=rng2         rng2.Copy         rng2.PasteSpecial Paste:=xlValues

.Columns(1).MergeCells = False

.CurrentRegion.Sort _         Key1:=Range("A2"), Order1:=xlAscending, _         Header:=xlYes, OrderCustom:=1, _         MatchCase:=False, Orientation:=xlTopToBottom

rng2.EntireColumn.Delete

With Range(.Cells(2, 1), .Cells(3, 1))

.Merge             .Copy             .Cells(3, 1).Resize(lRows - 2, 1). _                 PasteSpecial Paste:=xlFormats         End With     End With     Application.CutCopyMode = False     Range(sAddStart).Select     Application.ScreenUpdating = True End Sub

Das Makro fügt eine temporäre Spalte ein, liest die Elemente aus der ersten Spalte der Liste, hängt die Zeilennummer an, kopiert sie in die temporäre Spalte, trennt die Zellen, sortiert die Liste, löscht die temporäre Spalte und führt Spalte A erneut zusammen. (Das ist eine Menge Arbeit, nur um eine Tabelle mit zusammengeführten Zellen zu sortieren!)

Dieses Makro ist sehr spezifisch für ein bestimmtes Layout Ihrer Daten und muss daher getestet und wahrscheinlich geändert werden, um sicherzustellen, dass es mit Daten funktioniert, die auf andere Weise formatiert wurden.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2581) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: