PowerQuery Custom Column: Match Function zu anderer Tabelle.
29.02.2024 11:30:33
captainkeksxx
ich versuche in PowerQuery eine Custom Column (Benutzerdefinierte Spalte) hinzuzufügen und eine Match-Funktion zu bauen, was aber bisher auf allen Linien erfolglos war.
Tabelle1 -> calculation_full
Hat eine Spalte Namens G_M0 mit Zahlenwerten zwischen 0,00001 und 999,999999.
Tabelle2 -> tbl_paramter
Hat eine Spalte (Name: Bereich) die den Namen des Bereichs beinhaltet z.B. 0-9, 10-19, 20-29 usw.
Daneben ist eine Spalte (Name: Einstrahlung) die quasi den Maximalwert des Bereiches enthält z.b. für 10-19 den Wert 10.
In Excel bietet die =VERGLEICH-Funktion die Möglichkeit, mit dem letztem Attribut dem "Vergleichstyp" entweder 0 für exakte Übereinstimmung oder 1 für größten Wert oder -1 für kleinsten Wert, zu wählen.
Wenn ich also Vergleichstyp 1 wähle und die Funktion ein G_M0 Wert von 18,456 hat, dann ist dieser im Bereich 10-19, da dieser größer gleich 10 ist und kleiner als der nächste Wert 20.
Die Vergleichs-Funktion Würde ich auch gerne in PowerQuery einbinden.
Leider klappt das nicht mit dem Kombinieren von Tabellen, da die Fuzzy-Funktion nur für Strings zählt.
Auch bei den Custom Columns gibt es keine direkte Match-Funktion. Ich habe schon Versucht den Index des gefundenen Werts in der Spalte tbl_parameter[Einstrahlung] zu bekommen und dann die Zeile aus tbl_paramter[Bereich] abzurufen, aber vergebens. Ich habe immer nur Error Werte erhalten.
z.B.
= if Table.RowCount(Table.SelectRows(tbl_parameter, each tbl_parameter[Einstrahlung] >= [G_M0] and tbl_parameter[Einstrahlung] + 10 [G_M0])) > 0 then Table.PositionOf(tbl_parameter, Table.SelectRows(tbl_parameter, each tbl_parameter[Einstrahlung] >= [G_M0] and tbl_parameter[Einstrahlung] + 10 [G_M0]){0}) else null
Kennt sich jmd gut mit PowerQuery aus und kennt ein einfach Lösung? Ich kann mir irgendwie nicht vorstellen, dass das nicht gehen soll oder hoch komplex ist.