Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spezialsuche: Abgleich 2+ Tabellen mit mehreren Kriterien

Spezialsuche: Abgleich 2+ Tabellen mit mehreren Kriterien
08.11.2023 09:42:50
Niki
Hallo,

Ich muss 2 Tabellen abgleichen und alle gefundenen Resultate als Output liefern.
Problem 1: größere Datenmenge, daher mit meiner Pfuschlösung nicht sehr performant
Problem 2: (gelöst aber elegant?) Daten muss ich vorher aufbereiten. Die Suchtexte sind Teil Zelle mit vielen SuchIDs in beiden Files z.B.
12267-73-1 [1]
1330-43-4 [2]
13840-56-7 [3]
1303-96-4 [4]
12179-04-3 [5]
- Löse ich mit Hilfsspalten: Formel: =TEXTTEILEN(....) damit habe ich alle SuchIDs/AbgleichsIDs separat vorliegen. mit =SORTIEREN(ZUSPALTE(....;FALSCH);;1) und =EINDEUTIG(SORTIEREN(ZUSPALTE(....);;1)) kann ich es aufbereiten für einen SVerweis/Index(...) - damit bekomme ich wenigstens dann raus ja es wurde gefunden und ANZAHL2(...) so oft
Problem 3: Ich weiß zwar jetzt welche SUCHID wie oft vorkommt in den Tabelle 2 AbgleichsID aber ich bin ab hier nicht fähig das automatisch mit einem SVERWEIS als Outputfile aufzulisten.
Die per Hand Lösung dazu ist jetzt SUCHID In Tabelle 1 Suchen: Zeile kopieren ins Outputfile und SUCHID x mal (Anzahl2 Ergebnis) auch mit der Hand in Tabelle 2 zu suchen und dessen Zeile ins Outputfile kopieren z.B. 3 Hits also 3 Einträge kopieren und so weiter für SuchID Nummer 2
klingt nach Powerquery, Pivot oder zumindest Matrixformel für mich aber ich schaff es leider nicht.

Ich hab im Anhang ein Testfile verkürzt angehängt. https://www.herber.de/bbs/user/164109.xlsx
In Wahrheit sind es leider nicht nur 2 Tabellen sondern 5, die ich zueinander abgleichen muss und eigentlich habe ich 2 SuchIDs jeweils. Damit wird es dann aufwendig.

Wozu das Ganze:
Ich ziehe mir von EU Chemikalienrichtlinien große Datenbankfile. Die gleiche Chemikalie hat verschiedene "eindeutige" IDs und das möchte ich abgleichen mit Inhaltsstoffen in Produkten. Die Daten können sich ändern und dann geht es um Gesetzeskonformität, richtige Belabelung etc. etc. Also regelmäßiger Abgleich.
Alle Tabellen natürlich unterschiedlich aufgebaut und nicht sehr gut maschinenlesbar von Haus aus ...

z.B. https://echa.europa.eu/de/information-on-chemicals/annex-vi-to-clp

Danke im Voraus für alle Hilfestellungen
Niki

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tipp: Power Query
08.11.2023 11:06:24
Yal
Hallo Nikki,

wegen Mangel an Zeit, setze ich auf meiner Antwort den Flag "Frage noch offen", sodass Kollegen dir zuhilfe kommen.

Dein Problem ist am besten mit Power Query (PQ) zu lösen: damit werden die Quelldatei direkt in PQ einbezogen und transformiert. Nur das Ergebnis kommt in einer Excel-Tabelle raus. Ein Paar Beispiele und Erklärung findest Du hier https://excelhero.de/power-query/power-query-ganz-einfach-erklaert

Zum Thema Mapping von Stammdaten (u.a. Chemiebereich) siehe https://www.youtube.com/watch?v=pFRCdi0CvJA

VG
Yal
Anzeige
AW: "Wunschoutput" mit PQ realisiert, allerdings ...
08.11.2023 19:26:28
neopa C
Hallo Niki,

... mit einem kleinen Trick: Für die Daten der ADB (Krz für "Abgleichsdatenbank") habe ich als Quelltabelle nur die Datenwerte genommen und eine automatische Feldbeschriftung für diese erzeugen lassen, welche ich als Zeile sowohl in der Quelle als auch im Ergebnis ausgeblendet habe) Außerdem habe ich bewußt 4 Abfragen angelegt, obwohl zwei reichen würden. Habe auch eine vertikale Trennung der Ergebnistabellen vorgenommen.
Sieh dazu: https://www.herber.de/bbs/user/164130.xlsx Deine Formelspalten habe ich alle gelöscht (da ich nur XL2016 habe, hatte ich dort nur Fehlerwertanzeigen). Und für die Ergebnistabelle Deine zwei Überschriftenzeilen händisch einkopiert und die Ergebnistabelle ein wenig im Format angepaßt.

In Deiner Originaldatei solltest Du die beiden Ergebnistabellen auch besser in zwei XL-Tabellenblätter trennen. Insbesondere in der ADB.

Gruß Werner
.. , - ...
Anzeige
AW: Spezialsuche: Abgleich 2+ Tabellen mit mehreren Kriterien
09.11.2023 21:44:34
Piet
Hallo

ich habe in deine Beispieldatei mal eine Makrolösung eingebaut.
Es muss noch ein Button eingebaut werden um das Makro zu starten.
https://www.herber.de/bbs/user/164164.xls

Ich bin gespannt ob diese Lösung vielleicht besser ist als PQ??
Damit kenne ich mich nicht aus. Wir werden es nach deinem Test sehen ...
Leider ist es eine alte Exel 2003 Datei, das Makro kannst du ins Original kopieren.

mfg Piet
AW: Spezialsuche: Abgleich 2+ Tabellen mit mehreren Kriterien
10.11.2023 11:16:53
Niki
Hallo,

hier mein Update:
Die PQ Lösung von neopa C mit = Table.NestedJoin(Neu_angeordnet, {"Such_ID"}, ADB, {"CASNo"}, "ADB", JoinKind.LeftOuter) ist sehr elegant und geht auch wirklich schnell, kein Performancethema.

Ablauf ist in Prosa so:
PQ Daten aufbereiten der 2 Tabellen inkl. Einträge duplizieren damit jede SuchID einzeln vorliegt
PQ verheiratet dann die 2 Tabellen und filtert nur die "Hits" raus.
Rest ist Daten schön machen

Ein Bug ist mir aufgefallen. Der vorletzte Schritt:
= Table.SelectRows(ADB_erweitert, each ([ADB.CASNo] > null")) ... dieser hat nur auf null gefiltert, da kam dann viel "falsches zurück" mit der Erweiterung um and [ADB.CASNo] > "" von mir scheint es zu gehen mit ein paar Ausnahmen. Nämlich diejenigen Einträge, die keine SuchID haben. D.h. hier kommt noch ein 2. Filter rein und dann passt es für mich.

Danke soweit!

Was ich doch noch gerne hätte, wäre so wie in meinem Wunschoutput die 2 Ergebnisse in einer Tabelle (quasi doppeljoin) - Grund: Ich weiß zwar jetzt welcher Rohstoff einen "böse CAS Nummer (=SuchID)" enthält aber ich weiß nicht wie die Chemikalie heißt und was sie tut (das steht in der ADB drinnen in den Spalten)
Vielleicht kann mir da noch jemand helfen? :) Ich probiere es mal selbst aber müsste ja gleich gehen mit Ergebnis von Ergebnistabelle 1 nochmal join mit Output Ergebnis2

(Sinnvollerweise lösche ich dann natürlich die vielen unnötigen Spalten für die Bewertung für eine bessere Lesbarkeit.)

Die Makrovariante scheint auch zu tun aber mein Skillset mit Markos ist begrenzt, d.h. hier wird es für mich schwieriger die Beispieldatei auf die echte Datei mit mehreren Abfragen und Vergleichen anzupassen. Da PQ keine Performanceprobleme hat, werde ich (zukunftssicherer) mit PQ weiterarbeiten aber danke für die 2. Lösung :)

LG


Anzeige
AW: hierzu ...
10.11.2023 12:27:43
neopa C
Hallo Niki,

... nur auf die Schnelle, weil ich gleich wieder offline sein werde:

In der von mir hier eingestellten Datei ist der von Dir angezeigte "Bug" nicht vorhandenen. In meiner Datei steht bei diesem Schritt korrekt:
= Table.SelectRows(ADB_erweitert, each ([ADB.CASNo] > null)) also ohne das " nach dem null.

Wie genau Dein gesamtes Wunschoutput aussehen soll, erschließt sich mir noch nicht eindeutig. Wenn ich Dich richtig verstehe, wäre dazu wahrscheinlich wirklich ein zusätzlich join der beiden Ergebnistabellen notwendig und das anschließende entfernen unnötiger Spalten. Wobei allerdings beachtet werden muß, daß die ADB eine selbst erzeugte (ausgeblendete) Überschriftenzeile hat und benötigt.

Am besten Du stellst Dein endgültiges Wunschergebnis mal datenmäßig von Hand in einem neuem Tabellenblatt zusammen. Ich schau es mir dann heute Abend an.

Gruß Werner
.. , - ...

Anzeige
AW: hierzu ...
10.11.2023 12:40:41
Niki
Das " ist ein c&p Fehler von mir in dem Forumsbeitrag.

Der "Bug" ist, dass mein Datensatz so groß ist, dass der Filter scheinbar nicht auf alles anwendet. Ich gebe null und LEER vollständig aus dem ADB.CASNo raus sonst habe ich Einträge, die gar kein Hit sind. Also mein vollständiger Datensatz hat null und leer wegzufiltern, das kommt in meinem Beispiel nicht vor stimmt.

Bzgl. Wunschoutput, spiele ich mich gerade, ob ich es allein schaffe:

Such_ID - such2 - ycasnr- ygefahrc - ygefahrh - ygefahrp diese aus SDB & Spalte2 bis Spalte6 aus ADB alles in einer Tabelle und ich habe was ich brauche. Einzeln wieder Spalten löschen oder hinzugeben, ist ja einfach. Ich muss das join nur noch besser verstehen

Anzeige
AW: danke für Deine Rückinfo & viel Erfolg owT
10.11.2023 16:27:51
neopa C
Gruß Werner
.. , - ...
AW: "Wunschoutput" mit PQ realisiert, allerdings ...
09.11.2023 08:22:28
Niki
Hallo,

Danke mal ihr beiden! Ich dachte mir PQ ist die Lösung aber mein "best of" dazu war, dass ich die Mehrfacheinträge untereinander komisch doppelt hatte und damit auch nicht weiterarbeiten konnte.

Ich muss mir das heute mal im Detail ansehen mit der Lösung aber es schaut mal sehr gut aus!
Von daher bitte noch bis zum Wochende vielleicht offen lassen, falls ich noch etwas nachfragen will.

Vielen Dank,

Niki

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige