Als ehemaliger starker Lotus 1-2-3-Benutzer bei einem früheren Job wurde Patti SEHR an eine Funktion gebunden, die in Excel schmerzlich fehlt: die Fähigkeit, Daten in drei Dimensionen zu transponieren. Die zweidimensionale Umsetzung wird in Excel unterstützt, aber Patti hat keine Möglichkeit gefunden, eine Zeile, Spalte oder Tabelle über einen Stapel von Arbeitsblättern zu verteilen. Dies war eine Funktion, die täglich von allen in ihrem Finanzbüro genutzt wurde, und sie vermisst sie wirklich.

Patti hat recht; In Excel ist hierfür keine Funktion integriert. Die nächstgelegene Option ist die Verwendung einer PivotTable und der darin enthaltenen Funktionen „Seiten anzeigen“. Im Allgemeinen führen Sie die folgenden Schritte aus:

  1. Erstellen Sie aus Ihren Daten wie gewohnt eine PivotTable.

  2. Platzieren Sie die Spalte, aus der Arbeitsblätter erstellt werden sollen, im Abschnitt „Berichtsfilter“ der PivotTable.

  3. Zeigen Sie die Registerkarte Optionen des Menübands an. (Diese Registerkarte ist nur sichtbar, wenn Sie an einer PivotTable arbeiten.)

  4. Klicken Sie in der Gruppe PivotTable am linken Ende des Menübands auf den Abwärtspfeil neben dem Werkzeug Optionen.

  5. Wählen Sie Berichtsfilterseiten anzeigen. Excel fordert Sie auf, zu bestätigen, dass Sie die Seiten anzeigen möchten.

  6. 6 Klicken Sie auf OK.

Am Ende erhalten Sie eine Reihe von Arbeitsblättern, eines für jeden Eintrag in der Spalte, die Sie in Schritt 2 angegeben haben. Diese Arbeitsblätter enthalten jeweils eine „Seite“ der PivotTable.

Wenn dies immer noch nicht ganz das tut, was Sie wollen, müssen Sie ein Makro verwenden, um die Daten zu transponieren. Ein solches Makro kann sehr komplex werden, aber im Grunde muss es nur Ihre Datentabelle durchgehen und jede Zeile (oder Spalte) von Daten in ein eigenes Arbeitsblatt verschieben.

Das folgende Makro (Transpose3D) nimmt beispielsweise jede Zeile aus einem ausgewählten Zellbereich und platziert diese Zeile in einem eigenen, neu erstellten Arbeitsblatt.

Sub Transpose3D()

Dim rngTbl As Range     Dim wsName As String     Dim R As Integer     Dim C As Integer     Dim i As Integer     Dim j As Integer     Dim Killit As Integer     Dim RCount As Integer     Dim CCount As Integer     Dim Table1() As Variant     Dim Row1() As Variant

RCount = Selection.Rows.Count     CCount = Selection.Columns.Count     If RCount < 2 Then         MsgBox ("Error; Select a range with more than one row.")

GoTo EndItAll     End If

wsName = ActiveSheet.Name     R = ActiveCell.Row     C = ActiveCell.Column

Set rngTbl = Selection     ReDim Table1(1 To RCount, 1 To CCount)

ReDim Row1(1 To 1, 1 To CCount)

Table1() = rngTbl.Value

On Error GoTo Abend

For i = 1 To RCount          If SheetExists(wsName & "_Row_" & i) Then             Killit = MsgBox("Sheet " & wsName & "_Row_" & i & _               " Already Exists!" & vbCrLf & _               "     Cancel: Stop Transposition" & vbCrLf & _               "     OK: Delete Sheet and Continue", vbOKCancel)

If Killit = vbCancel Then GoTo EndItAll             Application.DisplayAlerts = False             Sheets(wsName & "_Row_" & i).Delete             Application.DisplayAlerts = True         End If

Sheets.Add         ActiveSheet.Name = wsName & "_Row_" & i         Cells(R, C).Select         For j = 1 To CCount             Row1(1, j) = Table1(i, j)

Next j         Range(ActiveCell, ActiveCell.Offset(0, CCount - 1)) = Row1()

Sheets(wsName).Select     Next i     GoTo EndItAll

Abend:

MsgBox ("Error in Routine Transpose3D.")



EndItAll:

Application.DisplayAlerts = True End Sub
Function SheetExists(SheetName As String) As Boolean     Dim ws As Worksheet     SheetExists = False     For Each ws In ThisWorkbook.Worksheets         If ws.Name = SheetName Then             SheetExists = True             Exit For         End If     Next ws End Function

_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 (11246) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: