Posts

Power Query, die letzten N Spaltenbeschriftungen dynamisch ändern

Im Beispiel wird eine formatierte / intelligente Excel Tabelle (shortcut STRG-T) als Quelle verwendet (Tabellenname = Tabelle1), um eine Methode aufzuzeigen, mit deren Hilfe man dynamisch die letzten N Spaltenbeschriftungen ändern kann: --- SCHNIPP --- let     Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],     NewNames = {"LastBut1Col", "LastCol"},     CurrentNames = List.LastN(Table.ColumnNames(Source),2),     RenameList = List.Zip({CurrentNames,NewNames}),     RenamedColumns = Table.RenameColumns(Source,RenameList) in     RenamedColumns --- SCHNAPP --- weiterführende Informationen siehe hier

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 "unbekannt...

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 Quellcod...

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

Power Query, Listen

Bild
In Excel wird häufig mit Listen gearbeitet, Listen aus Nummern, Buchstaben, Datumswerten usw. Mit Power Query können Listen mit Einträgen sehr einfach erstellt werden. Hierzu eine neue Abfrage erstellen und in der Funktionsleiste (fx) die gewünschte Funktion hinterlegen. Bei Bedarf können diese mit einem Klick in eine Tabelle konvertiert werden Liste mit fortlaufenden Zahlen Liste mit Buchstaben Liste mit Datumswerten Liste mit Datumswerten, List.Dates Liste mit Zahlen, Inkrement Liste mit Zahlen (wiederholend) bei Bedarf siehe weiterführende Informationen hier Spalten einer Tabelle in eine Liste konvertieren --- SCHNIPP --- let     Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],     Spaltennamen = Table.ColumnNames(Quelle),     Liste = "{" & Text.Combine(List.Transform(Spaltennamen, each """" & _ & """"), ",") & "}" in     Liste -...