Ok - ich versuche mal...
15.10.2025 14:52:15
Case
Moin Josef, :-)
… etwas Licht ins Dunkel zu bringen. ;-)
Du hast 12 Tabellenblätter (wenn noch andere vorhanden sind, spielt das keine Rolle). ;-)
Ob die nun 1 - 12 oder Januar - Dezember heißen ist egal. ;-)
Die Daten dort wandelst du in sogenannte "intelligente Tabellen" um. ;-)
Also für jedes Tabellenblatt - Cursor in eine Zelle der Daten und STRG+T. ;-)
In der Regel erkennt er den richtigen Bereich und auch ob es Überschriften gibt. ;-)
Gibt es noch keine "Tabellen" benennt er sie Tabelle1, Tabelle2... Tabelle12. ;-)
Danach kannst du später gut filtern. ;-)
Wenn du immer nach Samstag und frei filtern willst, dann brauchst du das mit den Namen in B1 und C1 natürlich nicht. Das ist nur, wenn du eine Auswahl möchtest. ;-)
Sonst würde der M-Code - bezogen auf meine Beispieldatei - so aussehen: ;-)
let
AlleTabellen = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name],"Tabelle")),
Zusammen = Table.Combine(List.Transform(Table.ToRecords(AlleTabellen), each Table.AddColumn(_[Content], "Quellen", (x)=> _[Name]))),
Filter = Table.SelectRows(Zusammen, each ([WochenTag] = "Samstag") and [Dienst] = "frei")
in
Filter
Also einfach fest verdrahtet im M-Code. ;-)
Im Power Query Editor (z. B. erreichbar über Daten - Abfragen und Verbindungen und dann eine Doppelklick auf die Abfrage im rechten Fenster) siehst du rechts die einzelnen Schritte. ;-)
Zuerst lade ich die Daten der beiden Namen - also Tag und Zustand. Die habe ich vorher für die Zellen B1 und C1 im Namens-Manager angelegt. ;-)
Dann filtere ich die Tabellen "Tabelle1 bis Tabelle12" raus (im Schritt AlleTabellen). ;-)
Im Anschluss werden alle Tabellen zu einer Tabelle zusammengefügt. ;-)
Schlussendlich wird das, was aus den Namen geladen wurde gefiltert. Das bleibt übrig und du kannst es über "Schließen & laden" in einer Tabelle ausgeben. ;-)
Das wäre der M-Code, wenn du nur eine Zeile ausgeben möchtest - auch bezogen auf meine Beispieldatei: ;-)
let
QuelleT = Excel.CurrentWorkbook(){[Name="Tag"]}[Content][Column1]{0},
QuelleZ = Excel.CurrentWorkbook(){[Name="Zustand"]}[Content][Column1]{0} & "",
AlleTabellen = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name],"Tabelle")),
Zusammen = Table.Combine(List.Transform(Table.ToRecords(AlleTabellen), each Table.AddColumn(_[Content], "Quellen", (x)=> _[Name]))),
Filter = Table.SelectRows(Zusammen, each ([WochenTag] = QuelleT) and [Dienst] = QuelleZ),
Ergebnis = #table({"WochenTag", "Dienst", "Anzahl"}, {{QuelleT, QuelleZ, Table.RowCount(Filter)}})
in
Ergebnis
Servus
Case