Power Query, deutsche Feiertage je Bundesland, fnGetDeutscheFeiertageJeBundesland
Als Datenquelle fungiert Website
neue, leere Abfrage erstellen, Language M Code einfügen und in
fnGetDeutscheFeiertageJeBundesland
umbenennen:
--- SCHNIPP Power Query Language M Code ---
let fnAlleFeiertage = (Kalenderjahr as number) as table =>
let
//Liste aller Bundeslä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 = "benutzerdefinierte Funktion, Datum ",
Documentation.Author = " Orginal von Lars Schreiber: www.ssbi-blog.de, Änderungen von Sven Galonska: https://svens-excel-welt.blogspot.com/ ",
Documentation.Examples =
{
[
Description = " " ,
Code = "fnGetDeutscheFeiertageJeBundesland(2020)",
Result = " "
]
}
]
in
Value.ReplaceType(fnAlleFeiertage, Value.ReplaceMetadata(Value.Type(fnAlleFeiertage), documentation))
--- SCHNAPP ---
Quelle Lars Schreiber, https://ssbi-blog.de/
Kommentare
Kommentar veröffentlichen