Posts

Empfohlener Beitrag

nützliche Text Funktionen in Power Query

Bild
Im Folgenden werden ein paar in der Praxis nützliche Text Funktionen in Power Query aufgelistet. Im Voraus soll darauf hingewiesen werden, dass es 2 wesentliche Unterschiede zwischen Excel und Power Query Formeln / Funktionen gibt: case sensitivity Excel Formel unterscheiden nicht zwischen Groß- und Kleinschreibung, Power Query Formeln indes schon. Wenn eine Power Query Signatur Text.Range vorgibt, dann wird TEXT.RANGE oder text.range nicht funktionieren (case sensitive). Basis 1 versus Basis 0 Excel Formeln / Funktionen beziehen sich immer auf die Basis 1, d.h. man fängt mit 1 an zu zählen. Auf der anderen Seite startet das Zählen in einer Power Query Funktion immer mit 0, nicht 1. Vergleich Excel Text mit Power Query Funktionen Text.Contains(Text,Suchstring) gibt TRUE zurück, wenn <Suchstring> in <Text> beinhaltet ist, andernfalls FALSE z.B. Text.Contains("Power Query","Query") Rückgabewert = TRUE Text.Remove([Column],{...

Power Query, HTML Sonderzeichen ersetzen

neue Abfrage erstellen, Name fxReplaceHTMLEntities --- SCHNIPP ---  (inputText as text) as text =>     let         // Liste der zu ersetzenden HTML-Sonderzeichen und deren Entsprechungen         HtmlEntities = [             #"%20" = " ",             #"%21" = "!",             #"%22" = """",             #"%23" = "#",             #"%24" = "$",             #"%25" = "%",             #"%26" = "&",             #"%27" = "'",             #"%28" = "(",             #"%29" = ")",             #"%2A" = "*",             #"%2B" = "+",             #"%2C" ...

reguläre Ausdrücke; REGEXEXTRAHIEREN;REGEXERSETZEN

 e-mail Adressen aus Text extrahieren =REGEXEXTRAHIEREN(A2;"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b") 0er in Text ersetzen (zB 000020002888 -> 20002888) =REGEXERSETZEN(A5;"^0+(?!$)";"") Sonderzeichen in Text ersetzen (zB re*port -> report) =REGEXERSETZEN(A8;"[^a-zA-Z0-9  ]";"") Datum aus Text extrahieren (Format Jahr-Monat-Tag) =REGEXEXTRAHIEREN(A13;"(\d{4})-(\d{1,2})-(\d{1,2})";2) Telefonnummer mit Länderkennzeichen (zB +49 (0)7999-25080) =REGEXERSETZEN(A16; "^0(\d+)-(\d+)$"; "49 (0) $1-$2")

Power Query, prüfen ob Excel Datei vorhanden ist, andernfalls Fehlermeldung ausgeben anstatt Daten

  Parameter  Dateipfad zB D:\Projekte\Microsoft_Power_BI\Test\2021_01.xlsx InputSheet, zB Tabelle1 oder Sheet1 InputKind = zB Sheet fxDateiVorhanden ---- SCHNIPP --- let     Quelle = (InputDateiPfad as text, InputSheet as text, InputKind as text) =>  let     // Pfad zur Datei definieren     DateiPfad = InputDateiPfad,     // Versuche, die Datei zu laden     DateiVersuch = try Excel.Workbook(File.Contents(DateiPfad), null, true),     // Bedingte Logik basierend auf dem Ergebnis des Versuchs     Ergebnis = if DateiVersuch[HasError] then          Table.FromRecords({[Nachricht = "Datei konnte nicht geladen werden. Bitte überprüfen Sie den Speicherort: " & DateiPfad]})     else          let             SheetData = try DateiVersuch[Value]{[Item=InputSheet, Kind=InputKind]}[Data]         in...

Power BI, Data Dictionary anlegen

 Um ein Data Dictionary in Power BI anzulegen, in Datenmodellierungssicht eine neue Tabelle anlegen und folgenden DAX Code einfügen: --- SCHNIPP --- Data Dictionary =  VAR _columns = SELECTCOLUMNS(     FILTER(         INFO.VIEW.COLUMNS()         , [Table] <> "Data Dictionary" && NOT([IsHidden])     )         , "Type", "Column"         , "Name", [Name]         , "Description", [Description]         , "Location", [Table]         , "Expression", [Expression] ) VAR _measures = SELECTCOLUMNS(     FILTER(         INFO.VIEW.MEASURES()         , [Table] <> "Data Dictionary" && NOT([IsHidden])     )     , "Type", "Measure"     , "Name", [Name]     , "Description", [Description]     , "Location", [Table]...

Power Query, valide email Adresse aus Text extrahieren

  neue Abfrage erstellen, Language M Code --- SCHNIPP --- (string as text) as text =>     Text.Combine(         List.Select(             Splitter.SplitTextByAnyDelimiter(                 {" ", ",",";",":"}             )(string),             each List.Count(                 Splitter.SplitTextByEachDelimiter(                     {"@","."}                 )(_)         )=3 and          Text.Length(Text.Select(_, "@"))=1 and         not Text.Contains(_,"@.")     ),"," ) ---SCHNAPP ---

Javascript;Excel in JSON Format / Datei konvertieren

 HTML / Javascript Code zur Konvertierung von Excel in JSON Format --- SCHNIPP --- <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8" />     <meta name="viewport"            content="width=device-width, initial-scale=1.0" />     <title>Excel to JSON Converter</title>     <style>         body {             font-family: Arial, sans-serif;             margin: 0;             padding: 0;         }         .container {             max-width: 800px;             margin: 50px auto;             padding: 20px;             border: 1px solid #ccc;             border-rad...

wiederverwendbare Funktion fxHeader;Spalten in vorgegebener Reihenfolge anordnen

Bild
  --- SCHNIPP --- (tbl as table, Reihenfolge as list) as table => let     // Quelle: Tabelle oder Datenquelle     Quelle = tbl,     // Liste der gewünschten Spaltenbezeichnungen     GewuenschteSpalten = Reihenfolge,     // Überprüfen, ob alle gewünschten Spalten vorhanden sind     VorhandeneSpalten = List.Intersect({Table.ColumnNames(Quelle), GewuenschteSpalten}),     // Wenn alle gewünschten Spalten vorhanden sind, sortiere sie in der gewünschten Reihenfolge     Ergebnis = if List.Count(VorhandeneSpalten) = List.Count(GewuenschteSpalten) then         Table.ReorderColumns(Quelle, GewuenschteSpalten)     else         Quelle in     Ergebnis