AW: Frage zu PQ
09.12.2024 12:27:08
Yal
Hallo Anton,
ja, ich habe in dem Fall ein bisschen zu einfach gedacht.
Ein Vorgehensweise für PQ-Anfänger könnte so aussehen:
(ich habe dein Tabellen "tblZuordnung" und "tblMaterial" umbenannt. Die Abfragen in PQ übernehmen diesen Namen)
- auf die Abfrage "tblZuordnung",
- filtere die Spalte "Mat Nr. von" mit "kleiner oder gleich als...", gebe 234521 ein,
- filtere die Spalte "Mat Nr. bis" mit "grösser oder gleich als...", gebe 234521 ein,
- rechtsklicke auf dem Inhalt der erste Zelle im Spalte "Bezeichnung" und wähle "Drilldown"
Es ergibt einen Code im "erweiterte Editor" (Menü "Start"), der so aussieht:
let
Quelle = Excel.CurrentWorkbook(){[Name="tblZuordnung"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Mat NR. von", Int64.Type}, {"Mat Nr. bis", Int64.Type}, {"Bezeichnung", type text}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Geänderter Typ", each [Mat NR. von] = 234521),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Gefilterte Zeilen", each [Mat Nr. bis] >= 234521),
Bezeichnung = #"Gefilterte Zeilen1"{0}[Bezeichnung]
in
Bezeichnung
Ändere an 3 Stellen wie folgt:
- beide "234521" durch "Material" (ohne ", die ich nur hier einführe, um die Lesbarkeit zu sichern)
- vor dem Text die Zeile
let Erg = (Material) =>
eintragen und
- nach dem Text die Zeile
in Erg
Das gesamt sieht dann so aus
let Erg = (Material) =>
let
Quelle = Excel.CurrentWorkbook(){[Name="tblZuordnung"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Mat NR. von", Int64.Type}, {"Mat Nr. bis", Int64.Type}, {"Bezeichnung", type text}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Geänderter Typ", each [Mat NR. von] = Material),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Gefilterte Zeilen", each [Mat Nr. bis] >= Material),
Bezeichnung = #"Gefilterte Zeilen1"{0}[Bezeichnung]
in
Bezeichnung
in Erg
Die Abfrage zeigt sich mit einem "fx", was deutet, dass wir aus der Abfrage eine Funktion gemacht haben.
in der Abfrage "tblMaterial" fügen wir nach dem letzten Schritt eine Spalte hinzu und zwar durch die Aktion "benutzerdefinierte Funktion aufrufen",
wir rufen die Funktion "tblZuordnung" und übergeben als Parameter die Spalte Materialnummer (ev. der Spaltentyp links davor umstellen. Die Spalte muss aus der Liste der Spalten auswählbar sein).
Fertig.
Nur Noch auf Menü "Datei", "Schliessen & laden in ...", "nur Verbindung erstellen" auswählen,
dann in der Liste der Abfragen rechts die Abfrage "tblMaterial" rechtsklicken und "Laden in..." auswählen, als "Tabelle" an der gewünschten Stelle ausgeben lassen.
VG
Yal