Posts

Posts mit dem Label "Import" werden angezeigt.

Power Query, Spalte in Tabelle transformieren, Datenblock, Number.Mod

Bild
Lern Video Ausgangslage: Datenblock (zB wie hier: Adressdaten) bestehend aus 5 Zeilen  Ziel: Transformation der Datenblöcke in Zeilen Diese Vorgehensweise kann auch für Datenblöcke für N Zeilen angewandt werden. Hierzu muß der Modulo Operator entsprechend angepasst werden (s. Schritt 3) 1 Power Query erstellen (Daten -> aus Tabelle) 2 Indexspalte ergänzen (beginnend mit 1) 3 benutzerdefinierte Spalte [Rest] hinzufügen / Modulo   = Number.Mod([Index],5) 4 bedingte Spalte [Indikator] hinzufügen 5 benutzerdefinierte Spalte [ID] hinzufügen = List.Sum(List.Range(#"Indikator"[Indikator],0,[Index])) 6 Spalten [Index] und [Indikator] entfernen 7 Spalte (hier [Adresse]) pivotieren und Spalten umbenennen alternativer Ansatz mit Listobjekt (Liste), List.Split(), Table.FromRows() 1 Tabelle (eine Spalte) in Liste konvertieren 2 Liste aus Listen (Listobjekten) erzeugen List.Split() 3 Liste in Tabelle konvert...

Power Query, Spaltennamen von Quelldaten in benutzerfreundliche Spaltennamen umbenennen, List.Zip

Bild
Phase 1 - Vorbereitung Quell - Ziel Felder Struktur (Spaltennamen) 1.1 Datenquelle über Excel Power Query anbinden zB SAP Export Daten, Text Datei, Tab getrennt angewendete Schritte := [Quelle] = Csv.Document(File.Contents("D:\Projekte\SAP\Daten\SAP_Export.txt"),[Delimiter=" ", Columns=6, Encoding=1252, QuoteStyle=QuoteStyle.None]) 1.2 Liste (Listobjekt) mit Spalten der Datenquellenstruktur erstellen angewendete Schritte := [Liste_Quellfelder] = Table.ColumnNames(Quelle) Exkurs: Anzahl Spalten der Quelldaten ermitteln = List.Count(Table.ColumnNames(Quelle)) 1.3 in Tabelle konvertieren, Spalte in [Quell_Feld] umbenennen Language M Code --- SCHNIPP --- let     Quelle = Csv.Document(File.Contents("D:\Projekte\SAP\Daten\SAP_Export.txt"),[Delimiter=" ", Columns=6, Encoding=1252, QuoteStyle=QuoteStyle.None]),     Liste_Quell_Felder = Table.ColumnNames(Quelle),     #"In Tabelle konvertiert...

Power Query, Parameter Tabelle, fnGetParameter

Bild
Anbei ein Beispiel, wie man über einen Parameter die Anbindung einer Access Datenbank parametrisieren kann. Dies ist immer dann sinnvoll, wenn die Dateien von einem System auf ein anderes übertragen werden sollen, ohne dass die relevante Code Zeile in der Abfrage manuell angepasst werden soll. Wenn sowohl die Excel Datei mit Power Query Abfragen als auch die Access Datenbank in ein und demselben Ordner liegen funktioniert die Anbindung mittels folgender Methode: (Dieses Beispiel kann analog auch für andere Datenquellentypen angepasst werden.) 1 Neue Abfrage erstellen, folgenden Code einfügen (vorher alles entfernen) ---SCHNIPP --- (ParameterName as text) => let ParamSource = Excel.CurrentWorkbook(){[Name="Parameter"]}[Content], ParamRow = Table.SelectRows(ParamSource, each ([Parameter] = ParameterName)), Value= if Table.IsEmpty(ParamRow)=true then null else Record.Field(ParamRow{0},"Value") in Value ---SCHNAPP--- 2 Funktion in fnGetParam...

Power Query, ODBC Connection zu Excel Datei in Sharepoint Bibliothek

Bild
Über Reiter Daten -> Externe Daten abrufen eine Excel Datei, bereitgestellt in einer Sharepoint Bibliothek, anbinden Vorher Sharepoint Bibliothek als Netzlaufwerk anbinden (Windows Explorer -> rechte Maustaste auf Computer -> Netzlaufwerk verbinden) Nach Anbindung kann der absolute Pfad über Reiter Verbindungen -> Bearbeiten durch [connection string] ersetzt werden. [connection string] DSN=Excel Files;DBQ=//mySharepointserver.com/Documents/source.xlsx;DefaultDir=//mySharepointserver.com/Documents/;DriverId=1046;MaxBufferSize=2048;PageTimeout=5; siehe auch Sharepoint Liste als Datenfeed anbinden (List Services) Alternative Methode Anbindung Excel Datei bereitgestellt in Sharepoint Bibliothek (Language M Code Snippet) Quelle = Excel.Workbook( Web.Contents ("https://my.sharepoint.com/personal/user/documents/ordner/datei.XLSX"), null, true), Sheet1_Sheet = Quelle{[ Item="Sheet1 ",Kind="Sheet"]}[Data], Funktion Web...

schema.ini Datenquelle Text, Power Pivot

Problem: Wenn in einer zu importierenden Spalte Nummern (Datentyp Zahl, zB 2000) und alphanumerische Nummer (zB 2000-00-0) stehen, ermittelt Excel autoamtisch den Datentyp an den ersten Inhalten. Wenn diese Nummern sind wird der Datentyp Zahl festgelegt, alpanumerische Nummern werden nicht korrekt importiert. Lösung: schema.ini (muß sich im gleichen Ordner befinden wie die zu importierende Text-Datei) sample.txt durch Dateiname der zu importierenden Text-Datei ändern. [sample.txt] ColNameHeader=False MaxScanRows=0 Format=Delimited(|) DateTimeFormat="MM/DD/YYYY" DecimalSymbol="." CurrencyDecimalSymbol="." alternativ kann der Datentyp je Quellspalte definiert werden (Beispieldatei mit 18 Spalten): [sample.txt] ColNameHeader=False Format=Delimited(|) DecimalSymbol="." Col1=Bestellnummer Text Width 10 Col2=Position Text Width 30 Col3=Lieferant Text Width 10 Col4=Artikelgruppe Text Width 30 Col5=Artikelnummer Tex...