Posts

Es werden Posts vom April, 2018 angezeigt.

Power Query, benutzerdefinierte Funktion GetTableOfDateAndDatetime

Flexibles Erstellen einer Datumstabelle mit benutzerdefinierter M Code Funktion. weitere Datumsfunktionen Folgenden M Code in eine neue Abfrage kopieren (Funktionsname GetTableOfDateAndDatetime) --- SCHNIPP --- let   fn = (Start as any, End as any, Schritt as number, Einheit as text, DatumUndUhrzeitTrennen as text) as table =>   let       TypeStart = GetTypeAsText(Start),       TypeEnde = GetTypeAsText(End),       GetTypeAsText = (Value as any) as text =>         let            NonNullableType = Type.NonNullable(Value.Type(Value)),            FindType =              if Type.Is(NonNullableType, type date) then "date"              else if Type.Is(NonNullableType, type datetime) then "datetime"              else error "unbekannter Datentyp"         in           FindType,       //haben beide Parameter den gleichen Datentyp ?       Output =        if TypeStart <> TypeEnde then          Table.FromList({"Eingabe Datumsw

Power Query, benutzerdefinierte, wiederverwendbare Funktion erstellen

Bild
Im Folgenden wird die grundsätzliche Vorgehensweise zur Erstellung / Syntax einer benutzerdefinierten Funktion (custom function) beschrieben: 1 Reiter Daten, neue Abfrage -> aus anderen Quellen -> leere Abfrage 2 in den erweiterten Editor wechseln grundsätzlicher, syntaktischer Aufbau einer benutzerdefinierten Funktion: mit Variable let Variable = (Parameter) =>       let       ... Bearbeitungsschritte ... ,        Ergebnis = ...     in Ergebnis in Variable ohne Variable (Parameter) =>     let       ... Bearbeitungsschritte ... ,        Ergebnis = ...     in Ergebnis konkrete Beispiele siehe hier  (SELECT_CASE, mit Variable) oder hier (fxRemovePunc, ohne Variable) Exkurs: das Schlüsselwort each   in Power Query 3 benutzerdefinierte Funktion aufrufen (invoke function) 4 Kommentierung von Quellcode (input as number) => let     // Einzeiliger Kommentar       Quelle = input + /* Kommentar inmitten einer Zeile */

Power Query, einen spezifischen Tag des nächsten Monats zurückgeben

Bild
Angenommen, man will in Abhängigkeit eines Datums immer den 10ten des Folgemonats in einer neuen Spalte zurückgeben. Die relevante Excel Formel hierfür lautet =DATUM(JAHR(E2);MONAT(E2)+1;10) In Power Query / Funktionen sucht man jedoch vergebens nach einer äquivalenten Funktion. Die Lösung ist das Literal "#" =#date(Date.Year(Date.AddMonths([Datum],1)),Date.Month(Date.AddMonths([Datum],1)),10) Ergebnis weiterführende Informationen

Power Query, HTML dekodieren, Web.Page()

Bild
In Power Query gibt es eine native Funktion, welche HTML-Code in Text dekodieren kann: Web.Page() Um Zeit zu sparen kann man eine benutzerdefinierte Funktion auf Basis der nativen Funktion Web.Page() erstellen. Diesen Code einfach in eine neue Abfrage kopieren und in fnDecodeHTML umbenennen: --- SCHNIPP (Text as any) => let          Source = Text,          Custom1 = Web.Page(Source),          Data = Custom1{0}[Data],          Children = Data{0}[Children],          Children1 = Children{1}[Children],          Children2 = Children1{0}[Children],          Text1 = Children2{0}[Text]      in          Text1 --- SCHNAPP

Power Query, Duration Funktionen (Tage, Stunden, Minuten, Sekunden)

Bild
Power Query bringt einen neuen Datentyp mit, mit dessen Hilfe auf Basis von datetime Werten (Datum und Uhrzeit) komfortabel zeitliche Differenzen in Tagen, Stunden, Minuten und Sekunden berechnet werden können. Folgendes Beispiel soll die Anwendung dieses Datentyps verdeutlichen: Ausgangstabelle Duration Datentyp (hier = Spalte [Differenz] = Differenz zweier datetime Werte [Datum], [End Datum] Duration Datentyp (= Differenz von datetime Werten) Tage := Duration.Days() Minuten := Duration.Minutes() Sekunden := Duration.Seconds() Lern Video