Posts

Posts mit dem Label "Datenbereinigung" werden angezeigt.

Power Query, massenhaftes Suchen und Ersetzen, List.Accumulate()

Bild
 Lern Video 1 Tabelle [Text], [Find_Replace] als Power Query Abfrage abbilden 2 benutzerdefinierte Spalte hinzufügen (Abfrage Text) = List.Accumulate(     List.Numbers(0, Table.RowCount(Find_Replace)),      [Text],      (state, current) =>          Text.Replace(state,              Find_Replace[Find]{current},             Find_Replace[Replace]{current})) Quelle https://chandoo.org/wp/multiple-find-replace-list-accumulate/ massenhaftes Suchen und Entfernen von Textteilen aus Text --- SCHNIPP --- fxTextBereinigen (input as text, removeWords as list) as text => let     inputText = input,     wordsToRemove = removeWords,     removedText = List.Accumulate(wordsToRemove, inputText, (text, word) => Text.Replace(text, word, "")) in     removedText --- SCHNAPP -- zB Liste removeWords = {"Ffm","Ffm."} neue benutzerde...

Power Query, Zeilen ohne leere Felder selektieren, Expression.Evaluate

Bild
  Language M Code, neue leere Abfrage erstellen und Code reinkopieren --- SCHNIPP --- let     Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],     Custom1 = Table.FromList(Table.ColumnNames(Source)),     Text = Table.AddColumn(Custom1, "Text", each "["&[Column1]&"] <> null" ),     Expression = Text.Combine(Text[Text], " and "),     Evaluate = Table.SelectRows(Source, each Expression.Evaluate(Expression, [_ = _] )) in     Evaluate --- SCHNAPP --- Quelle: https://www.sqlxpert.de/in-power-bi-und-power-query-zeilen-ohne-leere-felder-mit-expression-evaluate-auswaehlen/ Spalten mit leere Werten nicht selektieren  --- SCHNIPP --- fxNonNullColumns (tblInputTable as table) => let TabelleOhneNullSpalten = Table.SelectColumns(tblInputTable, List.Select(Table.ColumnNames(tblInputTable), each List.NonNullCount(Table.ToColumns(Table.SelectColumns(tblInputTable, _)){0})>0)) in TabelleOhneNullSpalten ...

Power Query, nur Zahlen oder Text aus Spalte zurückgeben

Bild
nur Zeichen zurückgeben Spalte hinzufügen -> benutzerdefinierte Spalte =Text.Remove([Spalte1],{"0".."9"}) nur Zahlen zurückgeben Spalte hinzufügen -> benutzerdefinierte Spalte =Text.Remove([Spalte1],Text.ToList(Text.Remove([Spalte1],{"0".."9"}))) benutzerdefinierte Funktionen (neue Abfrage hinzufügen) fxNurZeichen --- SCHNIPP --- (input as text) => let     Quelle = Text.Remove(input,{"0".."9"}) in     Quelle ---SCHNAPP --- fxNurZahlen --- SCHNIPP --- (input as text) => let     Quelle = Text.Remove(input,Text.ToList(Text.Remove(input,{"0".."9"}))) in     Quelle --- SCHNAPP --- siehe auch Ansatz über List.Transform(), Character.FromNumber() http://www.excel-ist-sexy.de/pq-zahl-aus-text-extrahieren-separieren/ Beispielmappe zum Downloaden Lern Video

Power Query, Leerzeichen aus Spaltenbeschriftungen entfernen, fxPowerTrim

Bild
Ein Datenimport aus TXT / CSV Dateien kann zu unerwünschten Leerzeichen (am Anfang und / oder am Ende) in den Spaltenbeschriftungen führen. Mit folgender Language M Funktion kann dies nach dem Import / Datenquellenanbindung bereinigt werden. Hierzu eine neue, leere Arbeitsmappenabfrage erstellen, diese in fxPowerTrim umbenennen und folgenden Language M Code einfügen Quelle Ken Puls  https://www.excelguru.ca/blog/2015/10/08/clean-whitespace-in-powerquery/ --- SCHNIPP --- (text as text, optional char_to_trim as text) => let char = if char_to_trim = null then " " else char_to_trim, split = Text.Split(text, char), removeblanks = List.Select(split, each _ <> ""), result=Text.Combine(removeblanks) in  result --- SCHNAPP --- sowie einen weiteren Schritt einfügen = Table.TransformColumnNames(Quelle, fxPowerTrim) Lern Video Methode zur Bereinigung von Spaltenbeschriftungen (Data Cleansing) Mit folgender wiederverwen...

Leerzeilen in Tabelle entfernen

Mit folgendem VBA Code kann man Leerzeilen in einer Tabelle entfernen. Mit ALT-F11 in die VBA Entwicklungsumgebung wechseln und folgenden Code Schnipsel einfügen: ---- Bereich ab Public Sub Leerzeilen_löschen() in Zwischenablage kopieren --- Public Sub Leerzeilen_loeschen() Dim lngSpalte As Long Dim rngZelle As Long '** Variabel lngSpalte = Spalte(nindex), die/der auf Leerzeichen geprüft werden soll lngSpalte = 1 For rngZelle = ActiveSheet.Cells(Rows.Count, lngSpalte).End(xlUp).Row To 1 Step -1     If Trim(ActiveSheet.Cells(rngZelle, 1).Value) = "" Then         Rows(rngZelle).Delete shift:=xlUp     End If Next rngZelle End Sub siehe auch Daten bereinigen

ASCII Wert

Um den ASCII Wert eines Zeichens zu ermitteln, kann man die Funktion Code(Zellbezug) verwenden. Der Buchstabe "A" entspricht zB dem ASCII Code 65 "a" entspricht 97 Umgekehrt ermittelt die Funktion ZEICHEN(Zellbezug) das einem ASCII Wert zugeordnete Zeichen, zB Zeichen(65) = A, Zeichen(97) = a Eine ASCII Zeichentabelle finden Sie zB hier Anwendungsfall siehe Daten bereinigen

Daten bereinigen

Nachdem Rohdaten in Excel importiert wurden, ist es oft notwendig, diese zu bereinigen, d.h. zB nicht druckbare Zeichen und / oder Leerzeichen zu entfernen. Diese Aufgabe übernimmt die Funktion GLÄTTEN() (Leerzeichen entfernen) bzw SÄUBERN() (nicht druckbare Zeichen entfernen) VBA Code zum Entfernen aller nicht druckbarer Zeichen Auswahl Nicht druckbare ASCII Codes 127 = DEL 129 = Leer 141 = Leer 144 = Leer 157 = Leer --- SCHNIPP --- Sub AlleNichtDruckbarenZeichenEntfernen() Dim rngZelle As Range   For Each rngZelle In ActiveCell.SpecialCells(xlCellTypeConstants, 23)     rngZelle.Value = Application.WorksheetFunction.Clean(rngZelle.Value)     'Unicodes 127, 129, 141, 143, 144 und 157 entfernen     If rngZelle.Value Like "*" & Chr(127) & "*" Then       rngZelle.Value = Replace(rngZelle.Value, Chr(127), "", 1, , vbBinaryCompare)     End If     If rngZelle.Value Like "*" & C...