Tabellen-Sruktur

Einfügen, Löschen, Filtern und Sortieren

PROJEKT1/EDV/Excel/c_tabellenstruktur.html

Vers.0.2 17.09.2025 21:00

Inhaltsverzeichnis

Dateiliste ( .php nur im Server-Modus verfügbar)

1. Einleitung
2. Verwendung von Tabellen
3. Bereich in Tabellen umwandeln
4. Sortieren von Datensätzen
5. Zählen und Summieren mit strukturieren Tabellen
6. Verschieben von Zeilen in Tabellen

Literatur


 
1.

Einleitung

Computer sind besonders geeignet, große Datenmengen verlustfrei zu speichern und ermüdungsfrei zu bearbeiten. Zum Rechnen mit Computer sind zu diesem Zweck Programme zur Tabellenkalkulation entwickelt worden. Im Microsoft-Office-Paket heißt diese Programm Excel, im Paket von LibreOffice wird es Calc genannt.

 

Eignung
2.

Verwendung von Tabellen

Wenn man In Excel regelmäßig große Mengen gleichartiger Daten bearbeitet, ist die Verwendung von Excel-Tabellen die eleganteste Lösung. Sie sind nicht nur dynamisch, sondern bieten auch Filter, Formatierung und bessere Kompatibilität mit Pivot-Tabellen.

=OFFSET(A1, 0, 0, COUNTA(A:A), 2)

Solche Formeln reagieren auf die Anzahl der gefüllten Zellen und passen sich entsprechend an.


 
3.

Bereich in Tabellen umwandeln

Die Umwandlung ist kinderleicht und bringt viele Vorteile:

  1. Daten markieren – Wähle den Bereich aus, den du in eine Tabelle umwandeln möchtest.

  2. Tabelle erstellen – Gehe zu Start → Als Tabelle formatieren oder drücke Strg + T .

  3. Bestätigen – Aktiviere „Tabelle enthält Überschriften“, falls vorhanden.

🎥 In wenigen Minuten große Datenmengen in Excel mit ... zeigt dir genau, wie du mit intelligenten Tabellen startest und sie direkt für große Datenmengen nutzen kannst.

🎥 Mit den Microsoft Excel Tabellenformaten grosse ... erklärt, wie du Tabellen optisch und funktional aufwertest – ideal für Übersicht und Lesbarkeit.

🟡 Schritt 2: Tabelle verwenden und erweitern

Sobald du eine Tabelle erstellt hast, kannst du sie clever einsetzen:

  • Automatische Erweiterung – Neue Zeilen/Spalten werden automatisch Teil der Tabelle.

  • Filter & Sortierung – Jede Spalte erhält Filteroptionen.

  • Strukturierte Verweise – Du kannst Formeln wie =Tabelle1[Umsatz] verwenden.

  • Pivot-Tabellen – Ideal zur Analyse großer Datenmengen.

🎥 JEDE Datenanalyse in Excel verbessern - so geh'ts zeigt, wie du Tabellen mit Beziehungen und Array-Funktionen kombinierst – für tiefere Analysen.

🎥 Beziehungen in Excel beflügeln deine Auswertungen und ... führt dich durch die Erstellung von Beziehungen zwischen Tabellen – perfekt für komplexe Auswertungen.

🎥 Zwei Excel Dateien problemlos VERBINDEN & Daten überall ... hilft dir, Tabellen aus verschiedenen Dateien zu verknüpfen – ideal für verteilte Datenquellen.

Schritt 3: Große Datenmengen effizient verwalten

Wenn du mit Tausenden von Zeilen arbeitest, brauchst clevere Tools und Strategien:

  • Pivot-Tabellen nutzen – Für schnelle Gruppierungen und Zusammenfassungen.

  • Power Query & Datenmodell – Daten bereinigen, transformieren und verknüpfen.

  • Formulare & Suchfunktionen – Für benutzerfreundliche Eingabe und Navigation.

🎥 Riesige Datenmengen mit Pivot auswerten - Excel ... zeigt, wie du mit Power Pivot und Datenmodell auch riesige Dateien effizient analysierst.

🎥 Datenbank erstellen MIT Formular und Suchfunktion in Excel ... erklärt, wie du eine Excel-Datenbank mit Eingabemaske und Suchfunktion baust – ideal für strukturierte Verwaltung.

Wenn du magst, kann ich dir auch ein Beispiel-Setup für eine dynamische Tabelle mit Pivot und Suchmaske erstellen – maßgeschneidert für deinen Anwendungsfall. Sag einfach Bescheid!

 

 
4.

Sortieren von Datensätzen (Prompt KI- copilot)

Es sollen Excel-Tabellen beim Sortieren von Zeilen in Formeln und Makros die Adressierung innerhalb einer Zeile beibehalten werden. Kann man das durch relative Adressierung erreichen.

Adressierung beim Sortieren in Excel erhalten

Warum relative Adressierung allein nicht ausreicht

Relative Zellbezüge (z. B. A1 statt $A$1) passen sich zwar beim Kopieren an, aber beim Sortieren einer Datenreihe ändert Excel die Position der Formeln selbst und interpretiert die Bezüge neu. Das führt dazu, dass die Verweise nach dem Sortiervorgang nicht zwingend mehr auf „die gleiche Zeile“ zeigen, sondern relativ zur neuen Position der Formel.

Lösung für Formeln: Excel-Tabelle mit strukturierten Verweisen

  1. Markieren Sie Ihren Datenbereich und wählen Sie Einfügen → Tabelle .

  2. Arbeiten Sie innerhalb dieser Tabelle ausschließlich mit strukturierten Verweisen, z. B.

    • In Spalte „Umsatz“: =[@Menge]*[@Preis]

    • In Spalte „Differenz“: =[@Ist] - [@Soll]

  3. Nach einem Sortiervorgang bleibt jedes [@Spaltenname] immer auf derselben Zeile, weil die Formel an der Zeile klebt und nicht an einer absoluten Adresse.

Lösung für Makros: Zeilenobjekte und relative Zellenzugriffe

Beim Durchlaufen einer Tabelle per VBA können Sie jede Zeile als Objekt ansprechen und darin per Spaltenindex oder -name auf Zellen zugreifen. So bleibt Ihr Bezug immer innerhalb der aktuellen Zeile, egal wie die Tabelle sortiert ist. Beispiel:

Sub WerteVerarbeiten()
Dim tbl As ListObject
Dim rw As ListRow

Set tbl = ActiveSheet.ListObjects("MeineTabelle")
For Each rw In tbl.ListRows
' Zugriff auf Spalte "Umsatz" in dieser Zeile
rw.Range.Columns("Umsatz").Value = rw.Range.Columns("Menge").Value * rw.Range.Columns("Preis").Value
Next rw
End Sub

  • ListRows läuft jede Zeile in sortierter Reihenfolge ab.

  • rw.Range.Columns("Spaltenname") referenziert stets die korrekte Spalte in derselben Zeile.

Alternative Ansätze

  • INDEX/VERGLEICH: Statt fixierter Zellbezüge können Sie mit =INDEX(Bereich;ZEILE();Spaltennummer) dynamisch den passenden Wert je Zeile holen.

  • OFFSET: =OFFSET($A$1;ZEILE()-1;SpaltenOffset) greift ebenfalls zeilenrelativ zu, ist aber volatil.

Fazit

Relative Adressierung alleine verhindert beim Sortieren nicht das „Verschieben“ von Bezügen. Mit strukturierten Verweisen in einer Excel-Tabelle für Formeln und zeilenbasierten Objektreferenzen für Makros gewährleisten Sie jedoch, dass Ihre Verweise immer im korrekten Zeilenkontext bleiben.

Wirkung beim Einfügen und Löschen von Zeilen in Tabellen

Formeln mit strukturierten Verweisen

Strukturierte Verweise in einer Excel-Tabelle passen sich automatisch an, wenn Sie Zeilen einfügen oder löschen. Neue Zeilen, die Sie innerhalb des Tabellenbereichs einfügen, erben unmittelbar die Spaltenformeln. Beim Löschen verschwindet die entsprechende Zeile mitsamt der Formel, und die restlichen Zeilen verschieben sich, ohne dass die Verweise durcheinandergeraten.

Makros über ListObject/ListRows

VBA-Prozeduren, die über ListRows auf eine Tabelle zugreifen, reflektieren den jeweils aktuellen Tabelleninhalt. Egal, ob Sie Zeilen vorher manuell eingefügt oder gelöscht haben – beim Durchlaufen von

For Each rw In tbl.ListRows '

Next rw

arbeitet Ihr Makro stets mit der aktuellen Anzahl und Reihenfolge der Zeilen.

Best Practices und Stolperfallen

  • Zeile INSIDE vs. OUTSIDE: Formeln und Makros greifen nur dann sauber, wenn Sie innerhalb des Tabellenbereichs einfügen (Tabellenrand blinkt).

  • Neue Zeile per Tab: Drücken Sie in der letzten Zelle die Tab-Taste, um automatisch eine neue Zeile mit Formeln zu erzeugen.

  • Löschen per Kontextmenü: Nur „Zeile löschen“ im Tabellenkontext verwenden, nicht oberhalb/im Blatt, sonst bleibt die Tabelle an der Position fixiert.

  • Makro-Löschungen rückwärts schleifen: Wenn Sie in VBA Zeilen entfernen, arbeiten Sie von unten nach oben, um Index-Verschiebungen zu vermeiden.

Ausblick: Weitere, verwandte Ansätze

  • Dynamische Array-Funktionen (z. B. FILTER , UNIQUE ), um Listen automatisch anzupassen.

  • Power Query als ETL-Werkzeug für komplexe Einfüge-/Löschlogiken jenseits von Standardtabellen.

  • Datentabellen für Was-wäre-wenn-Analysen, die ähnliche Strukturen und automatische Neuberechnungen bieten.

Zeilen in strukturierte Tabelle einfügen und Bereich automatisch erweitern

1. Zeile am Ende einfügen

  1. Letzte Tabellenzelle markieren

    • Klicke in die unterste rechte Zelle der Tabelle.

  2. Tab-Taste drücken

    • Excel fügt automatisch eine neue Zeile am Ende der Tabelle hinzu.

  3. Kontextmenü-Alternative

    • Rechtsklick auf eine Zelle in der letzten Tabellenzeile

    • „Einfügen“ → „Tabellenzeilen unten einfügen“

Alle Formeln, Datenvalidierungen und Formatierungen der zuvor letzten Zeile werden übernommen und der Tabellenbereich aktualisiert.

2. Zeile am Anfang einfügen

  1. Erste Datenzeile auswählen

    • Markiere eine Zelle in der obersten Datenzeile (nicht Kopfzeile).

  2. Rechtsklick → „Einfügen“ → „Tabellenzeilen oberhalb einfügen“

  3. Shortcut-Variante

    • Strg + Shift + „+“ drücken (nachdem du eine Zelle markiert hast)

    • Im Einfügen-Dialog „Gesamte Tabellenzeile“ wählen

Auch hier verschiebt Excel alle Daten nach unten und erweitert den Bereich automatisch.

3. Zeile in der Mitte einfügen

  1. Zelle unterhalb der gewünschten Einfügeposition markieren

  2. Rechtsklick → „Einfügen“ → „Tabellenzeilen oberhalb einfügen“

  3. Einstieg per Menüband

    • Register „Tabellentools – Entwurf“ → Gruppe „Zeilen & Spalten“ → „Zeile einfügen“

Formeln in Spalten werden exakt so kopiert, als hättest du sie per AutoAusfüllen nach unten gezogen.

4. Automatisieren mit VBA

vba Sub TabelleZeileEinfügen() Dim lo As ListObject Set lo = ActiveSheet.ListObjects("Tabelle1") ' Name der Tabelle anpassen ' Zeile am Ende lo.ListRows.Add ' Zeile am Anfang lo.ListRows.Add Position:=1 ' Zeile in der Mitte (hier vor Zeile 3) lo.ListRows.Add Position:=3 End Sub
  • ListRows.Add ohne Position fügt ans Ende.

  • Position:=n fügt vor der n-ten Datenzeile ein.

Alle Spalten-Formeln und Formatierungen werden dabei automatisch in die neue Zeile übernommen.

5. Weiterführende Tipps

  • Mit lo.HeaderRowRange.Offset(1).Insert lassen sich Kopfzeilen-spezifische Abläufe basteln.

  • Bei sehr großen Tabellen kann man Application.ScreenUpdating = False nutzen, um das Einfügen zu beschleunigen.

  • Für teamweite Lösungen kannst du das Makro als Schatten-Prozedur im Tabellenblatt-Modul speichern und per Ribbon-Button starten.

Möchtest du noch mehr VBA-Tricks oder ein Beispiel für dynamische Button-Menüs im Ribbon?

 

 
5.

Zählen und Summieren in (strukturieren) Tabellen

In Excel gibt es mehrere Möglichkeiten, die Anzahl des Auftretens eines bestimmten Kriteriums zu zählen – je nach Kontext. Hier sind die wichtigsten Funktionen dafür:

1. ZÄHLENWENN (engl. COUNTIF )

Zählt, wie oft ein bestimmtes Kriterium in einem Bereich vorkommt.

excel =ZÄHLENWENN( A1 : A100 ; "Apfel" )

Zählt, wie oft „Apfel“ in den Zellen A1 bis A100 vorkommt.

2. ZÄHLENWENNS (engl. COUNTIFS )

Zählt, wie oft mehrere Kriterien gleichzeitig erfüllt sind.

excel =ZÄHLENWENNS( A1 : A100 ; "Apfel" ; B1 : B100 ; ">10" )

Zählt, wie oft „Apfel“ in Spalte A vorkommt und der Wert in Spalte B größer als 10 ist.

3. SUMMEPRODUKT (engl. SUMPRODUCT )

Sehr flexibel – kann auch komplexe Bedingungen zählen, z. B. mit Teilausdrücken oder mehreren Bedingungen.

excel =SUMMEPRODUKT(( A1 : A100 = "Apfel" )*( B1 : B100 > 10 ))

Zählt wie ZÄHLENWENNS , aber erlaubt auch Matrixlogik und ist robuster bei strukturierten Tabellen.

4. HÄUFIGKEIT (engl. FREQUENCY )

Zählt, wie oft Werte in bestimmten Zahlenbereichen vorkommen – nützlich für Histogramme.

🔍 Für strukturierte Tabellen ( Excel-Tabellen )

Wenn du mit strukturierten Verweisen arbeitest (z. B. Tabelle1[Früchte] ), kannst du dieselben Funktionen verwenden:

excel =ZÄHLENWENN(Tabelle1[Früchte]; "Apfel" )

Wenn du mir sagst, ob du mit formatierten Tabellen , VBA , oder Pivot-Tabellen arbeitest, kann ich dir noch gezielter helfen – z. B. mit einem Makro oder einer dynamischen Lösung. Möchtest du auch Fälle mit Teilsuchbegriffen oder Groß-/Kleinschreibung abdecken?

Ja, mehr in formatierten Tabellen mit mehreren Bedingungen und gleiches mit Summe(), wenn möglich in ExcelTabelle oder auch als Makro

Mehrfachkriterien zählen in formatierten Excel-Tabellen

1. ZÄHLENWENNS mit strukturierten Verweisen

In einer formatierten Tabelle (z. B. Tabelle1 ) kannst du mit ZÄHLENWENNS mehrere Kriterien direkt auf Spalten anwenden:

excel =ZÄHLENWENNS( Tabelle1[Status]; "Offen" ; Tabelle1[Prioritä t ]; "Hoch" ; Tabelle1[Verantwortlich]; "Müller" )
  • Zählt alle Zeilen, in denen

    • Status = Offen

    • Priorität = Hoch

    • Verantwortlich = Müller

2. SUMMEPRODUKT in Tabellen

SUMMEPRODUKT ist deutlich flexibler, weil du mit numerischen und logischen Arrays arbeiten kannst:

excel =SUMMEPRODUKT( (Tabelle1[Status]= "Offen" )* (Tabelle1[Prioritä t ]= "Hoch" )* (Tabelle1[Betrag]) )
  • Multipliziert die Wahrheitswerte (WAHR=1, FALSCH=0)

  • Summiert anschließend nur die Betrag -Werte der übrig bleibenden Zeilen

3. SUMME(WENN()) als Matrixformel

Wenn du explizit zählen möchtest (anstatt Summen zu bilden), nutze eine Matrixformel:

excel =SUMME( WENN( (Tabelle1[Status]= "Offen" )* (Tabelle1[Prioritä t ]= "Mittel" ); 1 ; 0 ) )
  • Mit Strg + Shift + Enter abschließen

  • Gibt die Anzahl der Zeilen zurück, die beide Bedingungen erfüllen

4. Makro-Ansatz in VBA

Falls du das Zählen per VBA automatisieren willst, bietet sich eine benutzerdefinierte Funktion an:

vba Function CountByCriteria(tbl As ListObject, _ col1 As String, crit1 As Variant, _ col2 As String, crit2 As Variant) As Long With Application.WorksheetFunction CountByCriteria = .CountIfs( _ tbl.ListColumns(col1).DataBodyRange, crit1, _ tbl.ListColumns(col2).DataBodyRange, crit2 _ ) End With End Function

Verwendung direkt in Excel:

excel =CountByCriteria( Tabelle1; "Status" ; "Abgeschlossen" ; "Team" ; "Einsatz A" )

5. Weiterführende Tipps

  • Für mehr als zwei Kriterien kannst du CountIfs bzw. das Makro erweitern.

  • Mit dynamischen Array-Formeln (Office 365) lässt sich FILTER + ZEILEN einsetzen.

  • PivotTables bieten eine visuelle Alternative mit automatischen Teilergebnissen.

Möchtest du dazu Beispiele oder tiefergehende VBA-Automatisierungen?

 

 
6.

Verschieben von Zeilen in Tabellen

Wenn man in einer strukturierten Tabelle namens "Test" arbeitet und Zeilen verschieben möchtet, ohne die darin enthaltenen Formeln oder Funktionen zu beschädigen, ist der Schlüssel: nicht die ganze Zeile verschieben , sondern nur die Zellinhalte innerhalb der Tabellengrenzen , und dabei die Formatierung und Struktur beibehalten.

Hier ist ein robustes VBA-Makro, das eine markierte Zeile in der Tabelle "Test" nach unten oder oben verschiebt , ohne die Funktionen in den Zellen zu zerstören:

🔧 VBA-Makro: Zeile in Tabelle „Test“ verschieben

Sub MoveTableRowUp()
Dim tbl As ListObject
Dim selRow As Long

Set tbl = ActiveSheet.ListObjects("Test")
selRow = Selection.Row

' Prüfen, ob die Auswahl innerhalb der Tabelle liegt
If Not Intersect(Selection, tbl.DataBodyRange) Is Nothing Then
Dim relRow As Long
relRow = selRow - tbl.DataBodyRange.Row + 1

If relRow > 1 Then
tbl.ListRows(relRow).Range.Cut
tbl.ListRows(relRow - 1).Range.Insert Shift:=xlDown
Else
MsgBox "Die oberste Zeile kann nicht weiter nach oben verschoben werden.", vbExclamation
End If
Else
MsgBox "Bitte eine Zelle innerhalb der Tabelle 'Test' auswählen.", vbInformation
End If
End Sub

Sub MoveTableRowDown()
Dim tbl As ListObject
Dim selRow As Long

Set tbl = ActiveSheet.ListObjects("Test")
selRow = Selection.Row

If Not Intersect(Selection, tbl.DataBodyRange) Is Nothing Then
Dim relRow As Long
relRow = selRow - tbl.DataBodyRange.Row + 1

If relRow < tbl.ListRows.Count Then
tbl.ListRows(relRow + 1).Range.Cut
tbl.ListRows(relRow).Range.Insert Shift:=xlDown
Else
MsgBox "Die unterste Zeile kann nicht weiter nach unten verschoben werden.", vbExclamation
End If
Else
MsgBox "Bitte eine Zelle innerhalb der Tabelle 'Test' auswählen.", vbInformation
End If
End Sub

🧠 Warum funktioniert das?

  • ListObject bezieht sich direkt auf die strukturierte Tabelle.

  • ListRows(x).Range greift nur auf die Datenzeile innerhalb der Tabelle zu, nicht auf die ganze Arbeitsblattzeile.

  • Cut + Insert verschiebt die Inhalte, ohne die Zellfunktionen zu löschen.

  • Die Formeln in anderen Zeilen bleiben intakt, da die Tabellenstruktur erhalten bleibt.

🪄 Bonus-Tipp für dich als Ribbon-Customizer:

Man kannt diese Makros direkt in dein benutzerdefiniertes Ribbon-Menü einbauen und mit Icons wie „↑“ und „↓“ versehen – für intuitive Bedienung beim Sortieren oder Priorisieren von Einträgen.

Ich kann ich dir auch gleich die passenden XML-Snippets für die Ribbon-Anbindung liefern.

Soll das Ganze das Ganze auch für mehrere markierte Zeilen erweitern oder mit Undo-Funktion versehen werden?

 

 

 

Literatur