Office: (Office 2016) Tabellen zusamenkürzen

Helfe beim Thema Tabellen zusamenkürzen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo allerseits, ich muss eine riesige Jahrestabelle mit hunderten Zeilen und eine Spalte pro Tag des Jahres regelmäßig auf bestimmte Inhalte... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von suey, 11. Januar 2021.

  1. suey
    suey User

    Tabellen zusamenkürzen


    Hallo allerseits,

    ich muss eine riesige Jahrestabelle mit hunderten Zeilen und eine Spalte pro Tag des Jahres regelmäßig auf bestimmte Inhalte durchsuchen und mir diese Inhalte dann 'rausschreiben. Ich möchte das irgend wie automatisieren.


    So ist die Tabelle aufgebaut: Es gibt mehrere Gruppen, die an manchen Tagen im Jahr bestimmte Kurse haben. Hier z.B. "Kurs A" und "Kurs B". Einige dieser Kurse gehen über mehrere Tage.


    .........................01.01.2021.....02.01.2021.....03.01.2021.....04.01.2021.....05.01.2021
    Gruppe 1..........Kurs A.......................................Kurs B..................................................
    Gruppe 2............................................................................................................................
    Gruppe 3..............................................................Kurs A...............Kurs A.........................
    Gruppe 4...........................................................................................................................
    Gruppe 5...........................................................................................Kurs B.........................


    Ich würde nun gerne automatisch eine 2 Tabelle erstellen lassen, die nur aus Zeilen mit Gruppen besteht, die irgend wann im Jahr einen der beiden Kurse haben und es sollen nur Spalten angezeigt werden, an denen diese Kurse stattfinden.

    So zum Beispiel:

    .........................01.01.2021.....03.01.2021.....04.01.2021
    Gruppe 1..........Kurs A............Kurs B
    Gruppe 3...................................Kurs A...............Kurs A
    Gruppe 5...............................................................Kurs B


    Ist das irgend wie möglich, und wenn ja, wie? Ich habe schon gegoogelt und mir Videos angeschaut, aber bisher hat mir da nichts weitergeholfen. Vielleicht hat ja hier einer eine Idee. Ich würde mich riesig freuen!

    Viele Grüße
     
  2. steve1da Super-Moderator
    Hola,

    lade bitte eine Exceldatei hoch.

    Gruß
    steve1da
     
    steve1da, 11. Januar 2021
    #2
  3. suey
    suey User
    Hallo steve1da,
    anbei die gewünschte Tabelle.
    Gruß
     
  4. Beverly
    Beverly Erfahrener User

    Tabellen zusamenkürzen

    Hi,

    ich nehme an, außer deiner Tabelle befinden sich keine weiteren Inhalte im Tabellenblatt? Dann ist der einfachste Weg, das Tabellenblatt zu kopieren und in der Kopie dann die betreffenden Zeilen/Spalten zu löschen. Dazu kannst du folgendes Makro verwenden:
    Code:
    Sub Zusammenfassen()
        Dim intSpalte As Integer
        Dim lngZeile As Long
        Dim intLetzte As Integer
        Dim lngLetzte As Long
        Application.ScreenUpdating = False
        ActiveSheet.Copy after:=ActiveSheet
        With ActiveSheet
            lngLetzte = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            intLetzte = .Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
            For lngZeile = lngLetzte To 2 Step -1
                If Application.CountA(.Range(.Cells(lngZeile, 2), .Cells(lngZeile, intLetzte))) = 0 Then .Cells(lngZeile, 1).ClearContents
            Next lngZeile
            For intSpalte = intLetzte To 2 Step -1
                If Application.CountA(.Range(.Cells(2, intSpalte), .Cells(lngLetzte, intSpalte))) = 0 Then .Cells(1, intSpalte).ClearContents
            Next intSpalte
            .Range(.Cells(2, 1), .Cells(lngLetzte, 1)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
            .Range(.Cells(1, 2), .Cells(1, intLetzte)).SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
        End With
        Application.ScreenUpdating = True
    End Sub
    

    Tabellen zusamenkürzen GrußformelTabellen zusamenkürzen Beverly's Excel - Inn
     
    Beverly, 11. Januar 2021
    #4
    2 Person(en) gefällt das.
  5. suey
    suey User
    @Beverly
    Doch, die ganze Tabelle ist leider voll mit dutzenden Kursen für ca. 300 Gruppen. Mich interessieren aber nur 5 Kurse davon. Ich würde also gerne die Namen der drei Kurse irgend wo eintragen wollen und mir dann eine neue Tabelle erstellen lassen, die mir anzeigt, welche Gruppen wann einen der drei Kurse haben.
    Grüße
     
  6. RPP63
    RPP63 Erfahrener User
    Moin!
    Entpivotiere Deine Tabelle mittels Daten, abrufen und transformieren (Power Query).
    Diese Tabelle kannst Du dann mittels Datenschnitt oder simplem Filter nach Deinen Wünschen anzeigen lassen.
    Datei überarbeitet zurück.

    Gruß Ralf
     
  7. Beverly
    Beverly Erfahrener User
    Hi,

    ausgehend von deiner hochgeladenen Arbeitsmappe (die ich erst gesehen habe als ich meinen letzten Beitrag bereits abgeschickt hatte) macht mein Code genau das was du möchtest - nur eben auf einem neuen Tabellenblatt.



    Tabellen zusamenkürzen GrußformelTabellen zusamenkürzen Beverly's Excel - Inn
     
    Beverly, 11. Januar 2021
    #7
  8. suey
    suey User

    Tabellen zusamenkürzen

    @RPP63 : Oh jeh, das sind für mich erst mal böhmische Dörfer. Wenn nicht weiter hilft, werde ich mich das aber näher mit befassen. Danke erst mal.

    @Beverly : Ah, oki. Weil ich mich mit Macros noch nicht so richtig auskenne: Ich nehme an, ich muss bei
    .Cells.Find(What:="*",
    das "*" mit meinem Suchtext befüllen. Das teste ich gleich mal. Hab noch nie nen Macro geschrieben, aber irgend wann ist ja immer das erste Mal :-)
    Schon mal vielen Dank.
     
  9. suey
    suey User
    @Beverly : Makro erstellen hat geklappt. Beim Ausführen wird auch ein 2. Blatt erstellt, auf dem allerdings nicht sinnvolles steht. Viele Rauten und immer ein #Bezug! - Fehler. Muss ich da vorher dieses von RPP63 genannte "Entpivotieren" durchführen?
     
  10. suey
    suey User
    Wenn ich eine neue Test-Tabelle erzeuge und mit deinem Makro versehe, kommt folgender Fehler:
    Tabellen zusamenkürzen upload_2021-1-11_13-54-20.png

    Ein googeln dieses Fehlercodes brachte mich auf Seiten, die ich nicht verstehe :-)

    Tabellen zusamenkürzen upload_2021-1-11_13-56-29.png

    Anbei meine Test-Tabelle.
    Ich fürchte, mein Excel-Wissen reicht für die Art von Aufgabe nicht aus :-(
     
    1 Person gefällt das.
  11. Beverly
    Beverly Erfahrener User
    Du hast 1. Veränderungen im Code vorgenommen, die falsch sind, 2. ist deine Tabelle anders aufgebaut als in deiner zuerst hochgeladenen Mappe: dort waren die Zellen leer und es sollten Spalten/Zeilen entfernt werden, die nicht komplett leer sind und 3. soll jetzt nach einem speziellen Kurs gesucht werden - das ist eine völlig andere Aufgabenstellung. Hier der angepasste Code mit einer Abfrage, nach welchem Kurs "gefiltert" werden soll:

    Code:
    Sub Zusammenfassen()
        Dim intSpalte As Integer
        Dim lngZeile As Long
        Dim intLetzte As Integer
        Dim lngLetzte As Long
        Dim varKurs
        varKurs = Application.InputBox("Bitte Kurs eingeben", "Nach Kurs filtern")
        If varKurs <> "Falsch" And varKurs <> "False" Then
            Application.ScreenUpdating = False
            ActiveSheet.Copy after:=ActiveSheet
            With ActiveSheet
                lngLetzte = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
                intLetzte = .Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
                For lngZeile = lngLetzte To 2 Step -1
                    If Application.CountIf(.Range(.Cells(lngZeile, 2), .Cells(lngZeile, intLetzte)), "Kurs 1") = 0 Then .Cells(lngZeile, 1).ClearContents
                Next lngZeile
                For intSpalte = intLetzte To 2 Step -1
                    If Application.CountIf(.Range(.Cells(2, intSpalte), .Cells(lngLetzte, intSpalte)), "Kurs 1") = 0 Then .Cells(1, intSpalte).ClearContents
                Next intSpalte
                .Range(.Cells(2, 1), .Cells(lngLetzte, 1)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
                .Range(.Cells(1, 2), .Cells(1, intLetzte)).SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
            End With
            Application.ScreenUpdating = True
        End If
    End Sub
    

    Tabellen zusamenkürzen GrußformelTabellen zusamenkürzen Beverly's Excel - Inn
     
    Beverly, 11. Januar 2021
    #11
    2 Person(en) gefällt das.
  12. suey
    suey User
    @Beverly : HA ! :-) Also zumindest in meiner Beispieltabelle klappt es. Morgen früh werde ich es in der Monster-Tabelle ausprobieren.
    Danke für deine Mühe !!!
     
    1 Person gefällt das.
  13. suey
    suey User

    Tabellen zusamenkürzen

    Guten Morgen.
    Ich probiere seit 06:30 Uhr rum, aber ich kommen nicht weiter. Solltest Du noch etwas Zeit und Nerven haben, würde ich mich freuen.

    1)
    Die Tabelle wird nur nach "Kurs 1" gefiltert. Egal, was ich eingebe. Ich schätze, weil das in deinem Code auch so verankert ist. Habe versucht, das irgend wie umzuschreiben, bin aber gescheitert.

    2)
    Gibt es eine Möglichkeit, nicht nur die oberste Zeile und die erste Spalte in der neu erstellten Tabelle anzeigen zu lassen, sondern die obersten 6 Spalten und ersten 5 Zeilen? Die eigentlichen Kurse gehen nämlich erst ab Zelle H6 los.

    3)
    Ist es möglich, mit dem Makro auch mehrere verschiedene Kurse zu suchen? Dass ich also z.B. sowohl nach Kurs 1 als auch nach Kurs 2 suche? Und in der neuen Tabelle werden mir beide Kurse anzeigt? Das muss nicht zwingend mit einer Abfrage erfolgen. Kann auch fest im Makro verankert sein. Ich suche immer dieselben Kurse.

    Wenn Du dafür keinen Nerv mehr hast, dann würde ich das aber auch gut verstehen. Ist halt sehr speziell mein Anliegen :-)

    Viele Grüße und einen schönen Tag
     
  14. RPP63
    RPP63 Erfahrener User
    Moin!
    Warum beschäftigst Du Dich nicht kurz mit meiner obigen Lösung, ist ja schließlich keine Hexerei und gerade für einen Anfänger leichter zu verstehen als VBA!
    Dein Problem ist, dass Du die Datenhaltung in einer Kreuztabelle KT (ähnlich wie ein Stundenplan) durchführst.
    Eine KT eignet sich hervorragend für einen übersichtlichen Ausdruck, als Grundlage für eine Auswertung jedoch (wie Du siehst) eher nicht!
    Deshalb:
    • markiere irgendeine Zelle in der KT A1:F6
    • wähle Daten → Daten abrufen → aus Tabelle
    • jetzt öffnet sich der PQ-Editor
    • markiere die Spalten 2 bis Ende
    • wähle Transformieren → Spalten entpivotieren
    • optional: Spalte Attribut → Datentyp auf Datum setzen
    • Datei → Schließen und laden
    Jetzt hast Du die problemlos auswertbare Tabelle, die ich oben angehängt habe.
    (ich hatte zusätzlich Tabellenentwurf → Datenschnitt einfügen → Spalte 1 gewählt)
    Ich habe dafür weniger als eine halbe Minute gebraucht.
    Ich bin ebenfalls ein Fan von VBA, hätte aber ein vielfaches an Zeit invenstieren müssen.

    Gruß Ralf
     
    1 Person gefällt das.
  15. Beverly
    Beverly Erfahrener User
    Hi,

    möglich ist vieles und dein Anliegen ist auch nicht speziell, sondern das Problem liegt darin, dass du mit deinen hochgeladenen Mappen Angaben geliefert hast, die nicht dem Originaltabellenaufbau entsprechen - lade also eine Mappe mit den TATSÄCHLIEN Bedingungen hoch: genauer Tabellenbaufbau und genaue Angabe wonach gesucht werden soll.


    Tabellen zusamenkürzen GrußformelTabellen zusamenkürzen Beverly's Excel - Inn
     
    Beverly, 12. Januar 2021
    #15
    1 Person gefällt das.
Thema:

Tabellen zusamenkürzen

Die Seite wird geladen...
  1. Tabellen zusamenkürzen - Similar Threads - Tabellen zusamenkürzen

  2. Tabellen werden nicht korrekt angezeigt

    in Microsoft Word Hilfe
    Tabellen werden nicht korrekt angezeigt: Hallo zusammen, wenn ich auf Mac eine Tabelle erstelle und dickere Rahmenlinien verwende, entstehen Lücken in meinem Rahmen (rechts). Ich hab ein Bild eingefügt. Kann mir jemand helfen? Auch beim...
  3. Daten aus Excel Tabelle in vorhandene Excel Tabelle importieren

    in Microsoft Excel Hilfe
    Daten aus Excel Tabelle in vorhandene Excel Tabelle importieren: Guten Tag zusammen, Ich habe eine einfache Excel Tabelle stelle, wo ich prüfe, ob es in Kassen Differenzen gibt und wenn ja, ob es ein Beleg dazu gibt. Ich kann aus dem Programm wo die Differenz...
  4. Formular mit Inhalten aus mehreren Tabellen

    in Microsoft Access Hilfe
    Formular mit Inhalten aus mehreren Tabellen: Moin, nachdem ich hier in der Historie zwar schon einige zuerst vielversprechende Postings mit interessanten Antworten gefunden habe, diese aber irgendwie bei mir im Hirn nicht auf mein Problem...
  5. Verknüpftetabelle formatieren

    in Microsoft Excel Hilfe
    Verknüpftetabelle formatieren: Hallo, folgendes Problem habe ich: Ich habe ein einfaches Gant-Diagramm in Excel erstellt, dieses funktioniert auch wie es soll. In dieser Tabelle sollen später alle MA Ihre Einträge machen. Nun...
  6. Fehler beim Parsen bei google Tabelle

    in Microsoft Excel Hilfe
    Fehler beim Parsen bei google Tabelle: Hallo Zusammen, ich habe ein Problem mit Excel und leider bin ich in Excel nicht so gut, dass ich selbst eine Lösung finde. Deshalb wäre ich unheimlich froh, wenn mir jemand hier helfen würde....
  7. Top 5 aus Tabelle holen

    in Microsoft Excel Hilfe
    Top 5 aus Tabelle holen: Hallo Zusammen, in der im Anhang sich befindende Datei sind Daten enthalten. Hätte gerne die Summe in Spalte I welche zu den Txten in Spalte E gehören. Also die Top 5 . Habe in L3 schon...
  8. Doppelte Werte in neuer Tabelle nur einmal ausgeben per Formel

    in Microsoft Excel Hilfe
    Doppelte Werte in neuer Tabelle nur einmal ausgeben per Formel: Hallo Zusammen, habe schon alle möglichen Theads versucht durchzulesen aber ich komme einfach nicht auf die Lösung. Sorry wenn ich ein Thread übersehen haben sollte. Ich habe im Tabellenreiter...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden