Skip to content

Instantly share code, notes, and snippets.

@SchreiberLars
Last active October 15, 2021 10:16
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/919ce8ff7418316ce4f931e054522d4b to your computer and use it in GitHub Desktop.
Save SchreiberLars/919ce8ff7418316ce4f931e054522d4b to your computer and use it in GitHub Desktop.
let func = (Kalenderjahr as number) as table =>
let
//Liste aller Bundeländer für den Aufbau der URL bei arbeitstage.org
List_Bundeslaender = {
"baden-wuerttemberg",
"bayern", "berlin",
"brandenburg",
"bremen",
"hamburg",
"hessen",
"mecklenburg-vorpommern",
"niedersachsen",
"nordrhein-westfalen",
"rheinland-pfalz",
"saarland",
"sachsen",
"sachsen-anhalt",
"schleswig-holstein",
"thueringen"
},
ToTable =
Table.FromList(
List_Bundeslaender,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
#"Umbenannte Spalten" =
Table.RenameColumns(
ToTable,
{
{
"Column1",
"BundeslaenderURL"
}
}
),
#"Geänderter Typ" =
Table.TransformColumnTypes(
#"Umbenannte Spalten",
{
{
"BundeslaenderURL",
type text
}
}
),
//Funktion für den Retrieve der Feiertage der Website
fnGetFeiertageJeBundesland =
(Bundesland as text, Jahr as number) =>
let
//Aufbau der parametrisierten URL
Quelle =
Web.Page(
Web.Contents("https://www.arbeitstage.org/" & Bundesland &"/feiertage-"& Text.From(Jahr) &"-"& Bundesland &"/")),
Data0 = Quelle{0}[Data],
#"Geänderter Typ" =
Table.TransformColumnTypes(
Data0,
{
{
"Feiertag",
type text
},
{
"Datum",
type date
},
{
"Wann",
type text
}
}
),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ",{"Wann"}),
#"Hinzugefügte benutzerdefinierte Spalte" =
Table.AddColumn(
#"Entfernte Spalten",
"Bundesland",
each Text.Proper(Bundesland)
),
Output =
Table.ReplaceValue(
#"Hinzugefügte benutzerdefinierte Spalte",
"ue",
"ü",
Replacer.ReplaceText,{"Bundesland"}
)
in
Output,
GetFeiertage =
Table.AddColumn(
#"Geänderter Typ",
"Feiertage",
each fnGetFeiertageJeBundesland([BundeslaenderURL], Kalenderjahr)
),
#"Entfernte Spalten" =
Table.RemoveColumns(#"GetFeiertage",{"BundeslaenderURL"}),
#"Erweiterte Feiertage" =
Table.ExpandTableColumn(
#"Entfernte Spalten",
"Feiertage",
{
"Feiertag",
"Datum",
"Bundesland"
},
{
"Feiertag",
"Datum",
"Bundesland"
}
),
Output =
Table.TransformColumnTypes(
#"Erweiterte Feiertage",
{
{
"Datum",
type date
},
{
"Bundesland",
type text
},
{
"Feiertag",
type text
}
}
)
in
Output,
documentation =
[
Documentation.Name = "fnGetDeutscheFeiertageJeBundesland",
Documentation.Description =
"Liefert eine Tabelle mit den deutschen Feiertagen je Bundesland für das angegebene Jahr zurück ",
Documentation.Parameters = "Kalenderjahr vom Typ number",
Documentation.Category = " ",
Documentation.Author = " Lars Schreiber: www.ssbi-blog.de ",
Documentation.Examples =
{
[
Description = " " ,
Code = "fnGetDeutscheFeiertageJeBundesland(2020)",
Result = " "
]
}
]
in
Value.ReplaceType(func, Value.ReplaceMetadata(Value.Type(func), documentation))
@wittich
Copy link

wittich commented Oct 15, 2021

Works like a charm... just remember to set local to "Deutschand (Deutsch)" in the File menu > Options and settings > Query Options and there under Regional Settings. Otherwise, the type Date might can't be read correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment