Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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

Übergreifender Abgleich

Übergreifender Abgleich
06.01.2017 20:08:14
Carina
Hallo zusammen
ich habe ein Problem und bekomme es einfach nicht gelöst.
Hier mein Fall
Ich habe eine Tabelle miteiner Spalte A wo quasi meine tatsächlichen Bezeichnungen hinterlegt sind:
Spalte A
test
Spezialtest
sonstiges
wunderbar
weitere
Das ist meine Basis-Definitionsliste die tatsächlich aber 100 Zeilen lang ist und individuelle Bezeichnungen hat.
Dann habe ich eine Tabelle die kontinuirlich nach unten wächst
Spalte C - Spalte D
XXX test123 - test
XXX test123 - test_b2
XXX spezialtest_b1 - spezialtest_b1
XXX weitere - weitere
Nun möchte ich in Spalte E ausgeben ob etwas aus Spalte A in C2 Bestanteil ist und wenn ja, dann den entsprechenden Wert aus Spalte A bitte einsetzen.
Hier in dem Beispiel wäre das Ergebnis "test" den test ist Bestandteil von Spalte A und steht in C2 drin.
In E5 wäre das Ergebnis "weitere" da "weitere" in Spalte A vorkommt und in C5 drin steht.
Gibt es dafür eine Idee?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aber wieso in D3: "test_b2"? owT
06.01.2017 20:14:09
...
Gruß Werner
.. , - ...
AW: aber wieso in D3: "test_b2"? owT
06.01.2017 20:29:36
Carina
das ist leider ein Punkt meiner Rohdaten
Grundsätzlich könnte man Spalte D ignorieren für den Abgleich.
Denn ich muss nur wissen ob irgendein wert aus Spalte A in C2 steht und wenn das der Fall ist, dann den Werte der zutrifft bitte ausgeben
AW: diese Angaben stehen mE im Widerspruch zu ...
07.01.2017 10:18:27
...
Hallo Carina,
... zu Deinen eingangs gestellten Angaben und auch zu den Angaben die aus Deiner Beispieldatei ersichtlich sind.
In einem nachfolgenden Beitrag gehe ich auf die Beispieldatei ein.
Gruß Werner
.. , - ...
AW: Bsp-Datei wäre besser
06.01.2017 20:17:41
Fennek
Hallo,
um Verwechslungen zu vermeiden, wäre eine kleine Bsp-Datei besser.
Mit VBA, bzw einer UDF ist es in jedem Fall lösbar.
mfg
Anzeige
AW: Bsp-Datei wäre besser
06.01.2017 20:27:42
Carina
Gerne

Die Datei https://www.herber.de/bbs/user/110385.xlsx wurde aus Datenschutzgründen gelöscht


Ich habs aufgeteilt auf 2 Reiter
Reiter 1 enthält meine Basistabelle
Reiter 2 meine Rohdaten die ich um eine weitere Spalte mit dem Ergebnis erweitern möchte, sodass geprüft wird ob ein Punkt aus Reiter 1 Bestanteil von Reiter 2 Spalte A2 ist, wenn ja dann die jeweilige Bezeichnung aus Reiter 1
Wichtig ist hier, dass es Teilmengen geben kann .... den test und Spezialtest sind beide in Reiter 1 und dann muss mir das richtige ausgeworfen werden und nicht die teilmenge.
Ich hatte schon überlegt es mit einer Erweiterung zu testen und die Basistabelle mit XXX zu erweitern, denn test steht entweder zwingend am Anfang oder irgendwo mittendrin und wenn es mittendrin ist muss auch das mittendrin Ergebnis kommen
Anzeige
AW: Bsp-Datei wäre besser
06.01.2017 21:07:19
Fennek
Hallo Carina,
teste diese Code:
Die Voraussetzung ist, dass kürzere Teilworte vor den längeren stehen, also "Test" vor "Spezialtest"

Sub Fen()
With Sheets("Raw Data")
For Each c In .Columns(1).SpecialCells(2)
For Each b In Sheets("Basisliste").Columns(1).SpecialCells(2)
If InStr(1, c, b, vbTextCompare) > 0 Then Tx = b
Next
If Tx  "" Then
c.Offset(, 2) = Tx
Else
c.Offset(, 2) = "not found"
End If
Next c
End With
End Sub
mfg
AW: eine alternative Formelllösung ...
07.01.2017 10:35:21
...
Hallo Carina,
.... mit den gleichen Voraussetzung, die auch Fennek getroffen hat: der kürzere Suchbegriff muss in der Basisliste zuerst stehen (durch Sortierung einfach zu erreichen).
Ich bin des weiteren davon ausgegangen, dass die Daten in Spalte A und Spalte B vertauscht sein können und das in in einem der beiden Spalten der kürzere und im anderen der längere Suchbegriff beliebig stehen kann. Wenn beides nicht zutreffend sein sollte, dann wird nachfolgende Formel natürlich wesentlich einfacher.
https://www.herber.de/bbs/user/110389.xlsx
Gruß Werner
.. , - ...
Anzeige
AW: eine alternative Formelllösung ...
09.01.2017 10:00:54
Carina
Hallo Werner
vielen Dank für deine Rückmeldung.
Wie würde das Ganze den aussehen wenn wir Spalte B ignorieren.
Sprich
Kommt C1 irgendwo in der Basisliste Spalte A vor, dann gib mir die entsprechende Bezeichnung aus der Basisliste aus, sonst nichts (oder Fehler).
So wäre es dann wenn nur Test vorkommt, dass Test das Ergebnis ist und wenn "Spezialtest" vorkommt, auch Spezialtest das Ergebnis ist.
Da das Wort Test Bestandteil von Spezialtest ist stellt sich das ggf. schwierig da. Aber wir könnten an der Stelle die Basisliste "erweitern" und vor jeden Begriff ein "x " machen oder so, damit wären die Begriffe wieder unique.
Nur am Ende wird in Spalte A der Rohdaten automatisiert etwas angereiht was ich hiermit quasi durch das matchen der Basisliste einfacher bündeln möchte.
Das was hinten angereiht wird kann nicht nach Zeichenanzahl oder Sonderzeichen in der Zelle etc rausgefiltert werden. Dadurch ist das Matching mit der Basisliste und ausgabe der Bezeichnung dafür unser einziger weg.
Viele Grüße
Carina
Anzeige
AW: Hauptteil Deiner Aussagen ist verständlich ...
09.01.2017 14:41:53
...
Hallo Carina,
... jedoch Deinen letzten Satz: "Das was hinten angereiht wird kann nicht nach Zeichenanzahl oder Sonderzeichen in der Zelle etc rausgefiltert werden. Dadurch ist das Matching mit der Basisliste und ausgabe der Bezeichnung dafür unser einziger weg."
verstehe ich momentan nicht wirklich. Dieses müsstest Du noch mal am besten vielleicht an ein/zwei Beispielen konkret unterlegen.
Ohne Berücksichtigung des vorgenannten: Wie bereits geschrieben wird die Formel einfacher/kürzer, wenn nur die Texte in Spalte A von Raw Data ausgewertet werden müssen. Die Bedingung das der kürzere Suchtext in der Basisliste vor dem längeren stehen muss gilt auch hier (auch wenn es hier ein anderer Grund ist)
Nachfolgende Formel in E2 und dann nach unten kopieren:
=WENNFEHLER(VERWEIS(9;1/ISTZAHL(SUCHEN(Basisliste!A$2:A$99;A2))/(Basisliste!A$2:A$99>0); Basisliste!A$2:A$99);"") 
Darin ist schon berücksichtigt, dass in der Basisliste weitere Suchtexte hinten angefügt werden können (vorbenannte Bedingung "kurz vor lang" jedoch weiterhin beachten).
Gruß Werner
.. , - ...
Anzeige
AW: Hauptteil Deiner Aussagen ist verständlich ...
09.01.2017 17:34:53
Carina
Großes Kino! Das tuts! Ich ziehe meinen Hut!
Vielen Dank für die Formel!
AW: freut mich, wenn sie Dir geholfen hat owT
09.01.2017 17:50:29
...
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige