Skip to content

Instantly share code, notes, and snippets.

@SchreiberLars
Last active June 28, 2018 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SchreiberLars/feed945566f3fddb957a49a7aaf5dc4d to your computer and use it in GitHub Desktop.
Save SchreiberLars/feed945566f3fddb957a49a7aaf5dc4d to your computer and use it in GitHub Desktop.
let
fn = (MyDate as date, StartMonat as text) =>
let
Startmonatsnummer =
List.PositionOf(
{"januar", "februar","märz","april","mai","juni", "juli", "august", "september", "oktober", "november", "dezember"},
Text.Lower(StartMonat)
) + 1,
Offset = Startmonatsnummer -1,
AtuellerKalendermonat = Date.Month(MyDate),
Geschaeftsmonat =
if AtuellerKalendermonat < Startmonatsnummer then
13 - Startmonatsnummer + AtuellerKalendermonat
else
AtuellerKalendermonat - Offset,
Geschäftsquartal = Number.RoundUp(Geschaeftsmonat / 3, 0)
in
"GQ"&Number.ToText(Geschäftsquartal),
fnType = type function(
MyDate as (type date meta [Documentation.LongDescription="Hier wird das zu prüfende Datum (meist aus einer Datumsspalte) übergeben."]),
Startmonat as (type text meta
[
Documentation.LongDescription="Hier wird der Monat als Text eingegeben, mit dem das Geschäftsjahr beginnt",
Documentation.AllowedValues = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}
]
)
) as text meta [
Documentation.Name = "fnGeschaeftsQuartal",
Documentation.LongDescription =
"Gibt die Nummer des aktuellen Geschäftsquartals wieder. Dies ist sinnvoll bei von Kalenderjahr abweichenden Geschäftsjahren",
Documentation.Author = "Lars Schreiber, www.ssbi-blog.de"
]
in
Value.ReplaceType(fn, fnType)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment