Power Query, deutsche Feiertage je Bundesland, fnGetDeutscheFeiertageJeBundesland

Als Datenquelle fungiert Website 

https://www.arbeitstage.org/ 



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/


Beispiel Arbeitsmappe

Kommentare

Beliebte Posts aus diesem Blog

Dropdown Liste mit Mehrfachauswahl

Vergleich mit 2 Bedingungen, INDEX(), VERGLEICH()

nützliche Text Funktionen in Power Query