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, 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

Excel Office Script;2 Tabellen vergleichen

 Excel Office Script 2 Tabellen vergleichen ---- SCHNIPP --- Excel . run ( function   ( context )   {    var  sheet1  =  context . workbook . worksheets . getItem ( "Tabelle1" );    var  sheet2  =  context . workbook . worksheets . getItem ( "Tabelle2" );    var  range1  =  sheet1 . getUsedRange ();   // Ermittelt benutzten Bereich in ersten Tabelle    var  range2  =  sheet2 . getUsedRange ();   // Ermittelt benutzten Bereich in zweiten Tabelle   range1 . load ( "values" );   range2 . load ( "values" );    return  context . sync (). then ( function   ()   {      for   ( var  i  =   0 ;  i  <  range1 . values . length ;  i ++)   {        for   ( var  j...

Power Query, Haversine Funktion, Ermittlung Distanz in km zwischen 2 Städten

Bild
  über Datentyp Geographie kann Breiten- und Längengrad einer Stadt ermittelt werden fxHaversineDistanz --- SCHNIPP --- let     HaversineDistance = (lat1 as number, lon1 as number, lat2 as number, lon2 as number) =>         let             R = 6371, // Erdradius in km             deg2rad = (deg) => deg * (2 * Number.PI) / 360,             dLat = deg2rad(lat2 - lat1),             dLon = deg2rad(lon2 - lon1),             a = Number.Power(Number.Sin((dLat / 2)),2) + Number.Cos((deg2rad(lat1))) * Number.Cos((deg2rad(lat2))) * Number.Power(Number.Sin((dLon / 2)),2),             c = 2 * Number.Atan2(Number.Sqrt(a), Number.Sqrt(1 - a)),             distance = R * c         in             distance i...