Daten aus bereichen von bis auswerten
#1
Hallo zusammen,

ich habe folgendes Fragestellung.

Ich habe 2 Tabellen. Die 1.Tabelle sieht so aus:

Von Konto   bis Konto  ID
5000           6000        150
6001           6500        160

Die 2. Tabelle so:
Konto     ID
5499
6300

Beide Tabellen habe mehrere Tausende von Einträgen. Wie schaffe ich es in der 2. Tabelle die entsprechende ID der 1. Tabelle zu setzen, sobald das Konto der 2. Tabelle im Bereich der 1. Tabelle von Konto bis Konto liegt?
Ich komme da (zumindestmit meinen Kenntnissen) mit den mir bekannten "Bordmitteln" sverweis etc. nicht weiter.

Vielen Dank vorab.
Antworten Top
#2
Hola,
wenn die Konten in Tabelle 1 aufsteigend sortiert sind klappt das mit dem Sverweis, 4. Parameter auf WAHR.
Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • TRALULI
Antworten Top
#3
Danke steve1da, mein Problem lag bei der Sortierung. Klappt also jetzt.

Ich habe versucht die beiden Tabellen jetzt  als Power Query Abfrage zu verbinden. PQ kann aber( meines Wissens) nicht die Bereiche von bis auswerten.

Oder hat jemand eine Idee?
Antworten Top
#4
...doch, doch. Das kann PQ. Spalte als Zahl formatieren und Bedingung entsprechend formulieren:

Code:
#"Geänderter Typ" = Table.TransformColumnTypes(Tabellenname,{{"Spaltenbezeichnung", Int64.Type}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Geänderter Typ", each [Spaltenbezeichnung] >= 6000 and [Spaltenbezeichnung] <= 6100) 
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • TRALULI
Antworten Top
#5
PQ kann zwar keinen größer/kleiner-Tabellenjoin, aber das lässt sich trotz allem ohne statische Abfrage recht leicht realisieren.
Antworten Top
#6
Hallo

So würde mein Lösung als PQ aussehen


Angehängte Dateien
.xlsx   TRALULI .xlsx (Größe: 17,97 KB / Downloads: 5)
Viele Grüße
PIVPQ
[-] Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:
  • TRALULI
Antworten Top
#7
Hier ein Beispiel, bei dem die Von/Bis-Bereiche nicht auf einzelne Nummern ausgeweitet werden, so wie ich es bisher gemacht habe. Aber da bei Kontonummern mit entsprechend vielen Stellen, bei meiner früheren Methode, wenn auch nur temporär, eine sehr große Zwischentabelle entstanden wäre, habe ich mir schnell mal eine andere Methode ausgedacht. Bedingung ist nur, das zwischen den von/bis-Bereichen keine Lücken vorhanden sind.


Angehängte Dateien
.xlsx   cef - Daten aus Bereichen von bis auswerten (PQ).xlsx (Größe: 19,3 KB / Downloads: 14)
[-] Folgende(r) 2 Nutzer sagen Danke an ws-53 für diesen Beitrag:
  • PIVPQ, TRALULI
Antworten Top
#8
vielen Dank für den Input, ich probiere das am WE aus und gebe Feedback
Antworten Top
#9
Hallo

Mir ist gerade noch einen Flüschtigkeitsfehler aufgefallen, hier die Verbesserung.


Angehängte Dateien
.xlsx   TRALULI_2.xlsx (Größe: 18,16 KB / Downloads: 6)
Viele Grüße
PIVPQ
Antworten Top
#10
Hallo

Hier einfach noch mal zwei PQ Varianten.
Tabelle1:
Von Konto  |  Bis Konto  |  ID
Tabelle2:
Konto
Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    QuelleA = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(QuelleA, "Benutzerdefiniert", each Quelle),
    #"Erweiterte Benutzerdefiniert" = Table.ExpandTableColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Benutzerdefiniert", {"Von Konto", "Bis Konto", "ID"}, {"Von Konto", "Bis Konto", "ID"}),
    #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Erweiterte Benutzerdefiniert", "Benutzerdefiniert", each List.Median({[Konto]}&{[Von Konto]}&{[Bis Konto]}) = [Konto]),
    #"Gefilterte Zeilen" = Table.SelectRows(#"Hinzugefügte benutzerdefinierte Spalte1", each ([Benutzerdefiniert] = true)),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"Von Konto", "Bis Konto", "Benutzerdefiniert"})
in
    #"Entfernte Spalten"
Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    QuelleA = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
    Test = Table.AddColumn(QuelleA, "ID", each Table.SelectRows(Quelle, (Quelle) => (try ([Konto] >= Quelle[Von Konto] and [Konto] <= Quelle[Bis Konto]) otherwise true))),
    #"Erweiterte ID" = Table.ExpandTableColumn(Test, "ID", {"ID"}, {"ID"})
in
    #"Erweiterte ID"
[-] Folgende(r) 4 Nutzer sagen Danke an Elex für diesen Beitrag:
  • ws-53, PIVPQ, Ralf A, TRALULI
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste