V každém řádku máte napsané období, jeho začátek a konec formou datumu. Vy potřebujete statistiky po měsících.

Např. máte seznam smluv s informací začátku a konce platnosti, a potřebujete zjišťovat pro každý měsíc kolik jich zrovna bylo v to měsíci platných.

Nejsnazší cesta je (obvykle) rozdělit každý řádek na samostatný měsíc.

Jak to ale udělat?

Vyjdeme-li z této tabulky:

Můžeme použít tento vzorec:

  • List.Select(
       List.Dates(
          Date.StartOfMonth([Start]),
          Number.From([End] – [Start]),
          #duration(1, 0, 0, 0)),
       each Date.Day(_) = 1)

Jaká je logika?

  • List.Dates vypíše všechny datumy mezi začátečním a koncovým dnem. Úvodní datum převedeme na prvního, abychom měli pokrytý první měsíc.
  • List.Select ponechá jen dny, které jsou začátkem měsíce

tím vznikne seznam datumů, které pak stačí rozdělit do řádků:

Výsledkem jsou začátky měsíců za celé období: