Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zahl der Datensätze im Monat

Forumthread: Zahl der Datensätze im Monat

Zahl der Datensätze im Monat
24.09.2025 08:47:14
Andreeee
Hallo :)
Ich habe eine Tabelle mit wo ich feststellen möchte, wie viele Datensätze ich im Monat der jeweiligen Jahre haben.
Welche Formel wende ich an, (wo ich sehe 2024 Dez 12 Datensätze usw. ... daraus mache ich dann eine Statistik.

Danke für die Hilfe.
Andre

https://www.herber.de/bbs/user/179034.xlsx
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl der Datensätze im Monat
25.09.2025 08:15:47
Luschi
Hallo Edgar,

- Deine Pivot-Lösung gefällt mir und wollte sie deshalb mal nachbauen
- leider kriege ich das nicht gebacken
- wie hast Du die Felder 'Monate (Jahr)', 'Jahre (Jahr)' und 'Quartale (Jahr)' erstellt?
- wenn ich sie als berechnetes Feld erstelle, kann ich sie nur in die 'Werte' schieben
- aber nicht in 'Zeilen' bzw. 'Spalten'
- ich hoffe, Du zeigst mir was aus Deine Pivot-Trickkiste

Gruß von Luschi
aus klein-Paris
Anzeige
AW: Zahl der Datensätze im Monat
25.09.2025 09:33:32
BoskoBiati
Hallo Luschi,

um das automatisch zu erhalten dürfen in der Datumsspalte keine Zellen enthalten sein, die leer oder mit nicht-Datumswerten gefüllt sind. Es werden also nur die Zeilen 2 bis 430 markiert, um daraus die Pivot zu machen.
Gegenfrage an den PQ-Fachmann: Wie erhält man den M-Code, wie ihn Eifeljoy gepostet hat?

Gruß

Edgar
Anzeige
Den M-Code erhält man...
25.09.2025 13:36:49
Case
Moin Bosko, :-)

… indem man die Schritte zusammenfasst. ;-)

/*

let in
Table.Sort(Table.Group(Table.AddColumn(Table.AddColumn(Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], "Jahr.1", each
Date.Year([Jahr]), Int64.Type), "Monat", each Date.Month([Jahr]), Int64.Type),{"Jahr.1", "Monat"},{{"Anzahl", each Table.RowCount
(_), Int64.Type}}),{{"Jahr.1", Order.Ascending}, {"Monat", Order.Ascending}})
*/
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
Jahr = Table.AddColumn(Quelle, "Jahr.1", each Date.Year([Jahr]), Int64.Type),
Monat = Table.AddColumn(Jahr, "Monat", each Date.Month([Jahr]), Int64.Type),
Gruppe = Table.Group(Monat, {"Jahr.1", "Monat"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
Ergebnis = Table.Sort(Gruppe, {{"Jahr.1", Order.Ascending}, {"Monat", Order.Ascending}})
in
Ergebnis

Das ist der M-Code als Einzeiler (auskommentiert) und aufgeschlüsselt. ;-)

Ich nutze dazu ein Tool, welches ich in .NET programmiert habe. Den M-Code poste ich allerdings nicht mehr so, da mir die Nachfragen gezeigt haben, dass manche es nicht mal verstehen - selbst wenn ich den Code ausführlich - also in mehreren Schritten - erstelle. ;-)
Allerdings ist das - seit ich aus dem Hamsterrad raus bin - für mich alles "Just for Fun". ;-)

Du siehst die Schritte nicht mehr, aber es folgt auch einer Logik (es richtet sich nach Klammern und Kommata). ;-)

"Die Ersten werden die Letzten sein" - so ist es auch hier. ;-)
Table.Sort ist aufgeschlüsselt der letzte Schritt, davor wird Gruppiert und davor werden zwei Spalten hinzugefügt (Jahr und Monat). ;-)

Die Pivot kannst du auch in PQ nachbilden. Es ist eine Kreuztabelle (also Gruppiert und Pivotiert). Auch mit Gesamtzeile - obwohl so eine Gesamtzeile nicht Power-Query-Like ist. ;-)

tblErg_1 ist ohne Gesamtzeile - und hat das Problem, wenn ein Monat mal nicht vorkommt, knallt es bei "Table.ReorderColumns". ;-)
tblErg_2 ist mit Gesamtzeile und hat das Problem fehlender Monate nicht mehr, da ich einfach eine Liste aller Monate vorgebe. ;-)

Das sind alles nur Ansätze. ;-)
Ich erinnere mich noch mit einem breiten Lachen an Zeiten in einem anderen Forum, wo sich die Leute fast "geprügelt" hätten - nur um z. B. eine Formel noch um einen Buchstaben zu kürzen. ;-)

Hier noch die Beispieldatei. ;-)
https://www.herber.de/bbs/user/179057.xlsx

Servus
Case
Anzeige
Verschleierte M-Code
25.09.2025 14:34:47
Yal
Hallo Edgar,

wir vermuten, dass Eifeljoi einen Programmierung verwendet, um einen Standard per Klick erzeugten "Schritt M-Code" den Kuddelmuddel zusammen zu kleistern, der hier gepostet wird.

Aus einem
let

Quelle = fct1(a),
b = fct2(Quelle)
in
b
wird
let in fct2(fct1(a))

Es ist nicht nur nutzlose Mehrarbeit, sondern vernichtet die Hilfe zu Selbsthilfe. Also bitte nicht übernehmen.

VG
Yal
Anzeige
AW: Verschleierte M-Code
25.09.2025 14:55:46
BoskoBiati
Hi Yal und alle anderen die mich aufgeklärt haben,

ich wundere mich schon seit Längerem, wie solche Codes entstehen. Bei mir sieht sowas nämlich immer anders aus:

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Nr.", Int64.Type}, {"Jahr", type date}}),
#"Entfernte Fehler" = Table.RemoveRowsWithErrors(#"Geänderter Typ", {"Nr.", "Jahr"}),
#"Entfernte leere Zeilen" = Table.SelectRows(#"Entfernte Fehler", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Duplizierte Spalte" = Table.DuplicateColumn(#"Entfernte leere Zeilen", "Jahr", "Jahr - Kopie"),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Table.TransformColumnTypes(#"Duplizierte Spalte", {{"Jahr - Kopie", type text}}, "de-DE"), "Jahr - Kopie", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Jahr - Kopie.1", "Jahr - Kopie.2", "Jahr - Kopie.3"}),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Jahr - Kopie.1", Int64.Type}, {"Jahr - Kopie.2", Int64.Type}, {"Jahr - Kopie.3", Int64.Type}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ1",{"Jahr - Kopie.1"}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Entfernte Spalten",{{"Jahr - Kopie.2", "Monat"}, {"Jahr - Kopie.3", "Jahreszahl"}}),
#"Gruppierte Zeilen" = Table.Group(#"Umbenannte Spalten", {"Monat", "Jahreszahl"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
#"Zusammengeführte Spalten" = Table.CombineColumns(Table.TransformColumnTypes(#"Gruppierte Zeilen", {{"Jahreszahl", type text}, {"Monat", type text}}, "de-DE"),{"Jahreszahl", "Monat"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"Jahr/Monat"),
#"Sortierte Zeilen" = Table.Sort(#"Zusammengeführte Spalten",{{"Jahr/Monat", Order.Ascending}})
in
#"Sortierte Zeilen"


Das kann man sogar kopieren und einfügen und hat das fertige Ergebnis sofort vor Augen.

Allerdings geht es mir wie Case:

Allerdings ist das - seit ich aus dem Hamsterrad raus bin - für mich alles "Just for Fun". ;-)

Gruß

Edgar
Anzeige
AW: Verschleierte M-Code
26.09.2025 08:05:03
Luschi
Hallo Yal,

nicht aufregen über den verwurschtelten M-Code von Eifeljoi5. Ich entfalte dieses Knäuel mittels C#-2019, denn manchmal steckt in diesem M-Code die eine oder andere gute Idee.
Trotzdem lehne ich diese M-Schreibweise aus 2 Gründen ab:
- der PQ-Otto-Normal-Anwender kann damit nix anfangen
- auf bereits erledigte PQ-Schritte kann man nicht zurückverweisen
- sondern muß sie erneut ausführen
- so habe ich schon erlebt, daß bis zu 4 x erscheint:
  Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],

Hier noch ein Tipp zum Code von Case:
ListeM = {"Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"},
sollte man so definieren:
    ListeM = List.TransformMany(

{Date.Year(DateTime.LocalNow())},
(x)=> {1..12},
(x, y)=> Date.ToText(#date(x,y,1), "MMMM", "de-DE")),
wenn man unterschiedliche Länderversionen abarbeiten muß, denn dann braucht man nur die Länderkennung "de-DE" austauschen gegen "en-US", "fr-Fr" bzw. "es-ES"

Gruß von Luschi
aus klein-Paris

Anzeige
Rückfrage "Entfalter"
26.09.2025 23:16:52
Yal
Hallo Luschi,

Du benutzt aber sicher für deinen Code-Bügeleisen in C# eine vollständige Liste der M-Code-Funktionen, oder?
Wärst Du bereits deinen Code hier zu Posten?

VG
Yal
AW: Zahl der Datensätze im Monat
25.09.2025 09:35:39
Eifeljoi 5
Hallo

Bin zwar nicht Edgar.
Was leichteres gibt es nicht , einfach das Datum runterziehen und der Rest wird dann alles automatisch erstellt, so ist es bei mir wenigstens.
Anzeige
AW: Zahl der Datensätze im Monat
24.09.2025 11:43:05
daniel
Hi

=ZÄHLENWENNS(B:B;">="&DATUM(2024;12;1);B:B;""&DATUM(2024;12+1;1))

Gruß Daniel
AW: Zahl der Datensätze im Monat
24.09.2025 12:05:53
UweD
Hallo auch von mir

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEF
1Nr.Jahr  MonatAnzahl
228020.09.2025  1998.091
328120.09.2025  2020.114
427819.09.2025  2020.125
527919.09.2025  2021.014
627716.09.2025  2021.024
728216.09.2025  2021.034
827614.09.2025  2021.045
927512.09.2025  2021.052
1027411.09.2025  2021.063
1127309.09.2025  2021.101

ZelleFormel
E2=SORTIEREN(EINDEUTIG(FILTER(TEXT(B2:B500;"JJJJ.MM");ISTZAHL(B2:B500);"")))
F2=SUMMENPRODUKT((TEXT($B$2:$B$500;"JJJJ.MM")=E2)*1)




Formel in E2 erweitert sich selbst
F2 nach unten kopieren

LG UweD
Anzeige
AW: Zahl der Datensätze im Monat
24.09.2025 22:43:15
Eifeljoi 5
Hallo
Warum nicht als PQ-Version?
https://www.herber.de/bbs/user/179050.png"
let in

Table.Sort(Table.Group(Table.AddColumn(Table.AddColumn(Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content], "Jahr.1", each
Date.Year([Jahr]), Int64.Type), "Monat", each Date.Month([Jahr]), Int64.Type),{"Jahr.1", "Monat"},{{"Anzahl", each Table.RowCount
(_), Int64.Type}}),{{"Jahr.1", Order.Ascending}, {"Monat", Order.Ascending}})
Anzeige
AW: Zahl der Datensätze im Monat
24.09.2025 23:05:49
daniel
Hi
eine Komplettauswertung mit einer einzigen Formel könnte so aussehen:

=LET(a;B2.:.B9999;
b;TEXT(a;"JJJJ-MM");
c;SORTIEREN(EINDEUTIG(b));
HSTAPELN(c;NACHZEILE(c;LAMBDA(x;SUMME(1*(x=b))))))

Gruß Daniel

AW: Zahl der Datensätze im Monat
24.09.2025 13:37:24
BoskoBiati
Hi,

wenn FILTER in 2022 funktioniert, dann in einem Rutsch:

=LET(xa;DATUM(1998;ZEILE(1:625);1);xb;MONATSENDE(xa;0);xc;ZÄHLENWENNS(B:.B;">="&xa;B:.B;""&xb);FILTER(HSTAPELN(xa;xc);xc>0))



Gruß


Edgar
Anzeige
AW: Zahl der Datensätze im Monat
24.09.2025 13:48:39
BoskoBiati
Hi,

ohne Filter:

=LET(xa;DATUM(1998;ZEILE(1:625);1);xb;MONATSENDE(xa;0);xc;ZÄHLENWENNS(B:.B;">="&xa;B:.B;""&xb);xd;HSTAPELN(xa;xc);SORTIEREN(WENN(INDEX(xd;;2)=0;"";xd);1))

In der FILTER-Formel war noch ein kleiner Fehler:

=LET(xa;DATUM(1998;ZEILE(1:625);1);xb;MONATSENDE(xa;0);xc;ZÄHLENWENNS(B:.B;">="&xa;B:.B;"="&xb);FILTER(HSTAPELN(xa;xc);xc>0))



Gruß

Edgar
Anzeige
AW: Zahl der Datensätze im Monat
25.09.2025 11:04:56
Luschi
Hallo Edgar,

- hier mal meine PQ-Lösung, dabei entspricht die Ergebnis-Ansicht der Pivot-Lösung
- durch List.Accumulate() auch ein bißchen tricky

https://www.herber.de/bbs/user/179056.xlsx

Gruß von Luschi
aus klein-Paris

PS: sicher werde ich wegen Pivot noch mal nachfragen müssen
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18