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 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]     , "Expression", [Expression] ) RETURN UNION(_columns,_measures) --- SCHNAPP --- Quelle

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-radius: 5px;             background-color: #f9f9f9;         }         .input-container {             margin-bottom: 20px;         }         .input-container input[type="file"] {             display: none;         }         .input-container label {             display: block;             padding: 10px 15px;             backgro

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  =   0 ;  j  <  range1 . values [ i ]. length ;  j ++)   {          if   ( range1 . values [ i ][ j ]   !==  range2 . values [ i ][ j ])   {           range1 . getCell ( i ,  j ). format . fill . color  =   "red" ;           range2 . getCell ( i ,  j ). format . fill . color  =   &qu

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 in     HaversineDistance --- SCHNAPP ---

Power Query;translate,übersetzen mit google API

Bild
  folgenden Language M Code in eine leere Abfrage (erweiterter Editor) kopieren, Name fxUebersetzen --- SCHNIPP --- (originalText as text, Quellsprache as text, Zielsprache as text) as text =>             // Quellsprache, Zielsprache = ISO Ländercode zB de,en,it,es usw             let                 Quelle = Json.Document(                     Web.Contents("https://translate.googleapis.com/translate_a/single?client=gtx&sl="& Quellsprache &"&tl="& Zielsprache &"&dt=t&q=" & originalText)                 ),                 Uebersetzung = Quelle{0}{0}{0}             in                 Uebersetzung --- SCHNAPP --- Aufruf über Spalte hinzufügen -> benutzerdefinierte Spalte =fxUebersetzen([originalText],"de","fr")