Posts

Es werden Posts vom Juli, 2018 angezeigt.

Power Query, logische Operatoren AND OR, IF THEN ELSE, Bedingungen mehrere Werte prüfen

Bild
Mit Hilfe einer benutzerdefinierten Funktion (Language M) ist es möglich, mehrere Bedingungen für verschiedener [Felder] zu prüfen. Damit können mit Power Query komplexe Prüflogiken realisiert werden --- benutzerdefinierte Funktion Language M ---- let CheckWerte= (Wert1 as any, Wert2 as any, WertN as any) => if (Wert1 >=3 and Wert2 >=3 and WertN >=3) or (Wert1 >=5 and Wert2 >=5) then "wahr" else "falsch" in CheckWerte --- benutzerdefinierte Funktion Language M --- Praxis Beispiel, regelbasierte Ermittlung von Planlieferzeiten in Abhängigkeit von 3 Produktattributen [Artikelfamilie], [Modul], [Länge] --- SCHNIPP Praxis Beispiel mit 3 Prüfbedingungen let CheckWerte= (parArtikelfamilie as any, parModul as any, parLaenge as any) => if (parArtikelfamilie ="ZST" or parArtikelfamilie = "ZMT" and parModul = 200 or parModul = 300) and parLaenge <= 1000 then 28 else if (parArtikelfamilie ="ZST"

Metadaten einer Excel Arbeitsmappe auslesen

Bild
Metadaten einer Excel Arbeitsmappe können entweder mit Methode 1 VBA (Metadaten einer Excel Datei) ---- SCHNIPP --- Sub Dokument_Metadaten() 'Liest die Items der Dateieigenschaften / Metadaten aus On Error Resume Next With ActiveWorkbook     .Worksheets(1).Activate     Range("A1:B30").ClearContents         For i = 1 To 40             Cells(i, 1).Value = ActiveWorkbook.BuiltinDocumentProperties(i).Name             Cells(i, 2).Value = ActiveWorkbook.BuiltinDocumentProperties(i).Value         Next End With End Sub --- SCHNAPP --- oder Methode 2 Power Query / Language M (Metadaten mehrerer Excel Dateien in einem Ordner) = Folder.Files("Laufwerk:\Verzeichnis") ausgelesen werden. --- SCHNIPP wiederverwendbare Language M Funktion für Metadatum [letztes Änderungsdatum] --- (Ordnerpfad as text, DateiName as text) => let     Quelle = Folder.Files(Ordnerpfad),     ZeileDatei = Table.SelectRows(Quelle, each ([Name] = DateiName)

Power Query, Objekttypen Skalar, List, Table, Record

Bild
Ergebnis: Skalarer Wert Kalkulation eines skalaren Werts, im Beispiel die zeilenweise Summe der Werte [Wert1], [Wert2] Ergebnis: List Kalkulation einer Liste von Werten, im Beispiel eine Liste der Werte von [Wert1] bis [Wert2] Ergebnis: Table Kalkulation einer Tabelle, im Beispiel Tabelle mit Spalte [Column1] und den Werten [Wert1], [Wert2] #table Objekt Language M = #table({"Spalte1","Spalte2"},{{"erste Zeile Spalte 1","erste Zeile Spalte 2"},{"zweite Zeile Spalte 1","zweite Zeile Spalte 2"}}) = #table(type table [Spalte 1 = text, Spalte 2 = text],{{"erste Zeile Spalte 1","erste Zeile Spalte 2"},{"zweite Zeile Spalte 1","zweite Zeile Spalte 2"}}) Ergebnis: Record Kalkulation eines Records, im Beispiel ein Record mit den Feldern [Feld1], [Feld2] und den Werten aus Spalten [Wert1], [Wert2] Excel kennt 3 Objekttypen, Tabellenblätter (Sheet), Tabellen (T

Power Query, Alle Datenquellen aktualisieren

Bild
Alle Datenquellen beim Öffnen der Excel Arbeitsmappe aktualisieren Alle Datenquellen oder Datenquellen selektiv öffnen mit VBA ---- SCHNIPP --- Public Sub UpdatePowerQueries() ' VBA um Datenquellen zu aktualisieren Dim lngPowerQuery As Long, objDataSource As WorkbookConnection Dim objWorksheet As Worksheet On Error Resume Next For Each objDataSource In ThisWorkbook.Connections     'Arbeitsmappenabfrage = Power Query ?     lngPowerQuery = InStr(1, objDataSource.OLEDBConnection.Connection, "Provider=Microsoft.Mashup.OleDb.1", vbTextCompare)         If Err.Number <> 0 Then             Err.Clear             Exit For         End If 'Power Query ? Datenquelle aktualisieren 'Variante 1 - Alle Datenquellen aktualisieren If lngPowerQuery > 0 Then objDataSource.Refresh 'Variante 2 - selektiv Datenquellen aktualisieren Select Case objDataSource.Name     Case "Abfrage - Liste_Funktionen"         objDataSource.Refresh