So filtern Sie eine Excel-Spalte nach Einträgen, die einer Hauptliste entsprechen

So filtern Sie eine Excel-Spalte nach Einträgen, die einer Hauptliste entsprechen

Die allgemeine Frage betrifft das Sortieren einer großen Excel 2007-Liste, um Einträge zu finden, die mit einer kleineren Teilliste übereinstimmen.

Ich habe ein paar Ideen, wie man das Problem angehen könnte, aber mir fehlt die technische Erfahrung, diese Ideen umzusetzen. Ich werde meine spezifischen Anwendungsanforderungen skizzieren, um die Frage klarer zu machen.

Konkretes Beispiel:

Ich verfüge über eine Hauptliste mit Firmennamen, die ich für mein Verkaufsgebiet verwalte (ca. 1.000 Kundenkonten). Jede Woche veröffentlicht mein Unternehmen eine Liste aller in jedem Verkaufsgebiet in den USA abgewickelten Geschäftstransaktionen (meinem und Hunderten anderer Gebiete). Dieses Transaktionsprotokoll umfasst mehr als 10.000 Zeilen, sodass es mit bloßem Auge fast unmöglich ist, die mit meinen Konten verbundenen Transaktionen zu finden.

Meine derzeit unzureichende Lösung besteht darin, meine Kontenliste gelb zu markieren, diese markierte Liste zu kopieren, sie dann am Ende des wöchentlichen Transaktionsprotokolls einzufügen, dann von A bis Z zu sortieren und dann manuell zu den markierten Elementen zu scrollen. Wenn das Transaktionsprotokoll eines meiner Konten enthält, befindet sich der Transaktionsprotokolleintrag direkt über oder unter dem markierten Eintrag, den ich eingefügt habe. Diese Methode ist effektiv, aber extrem zeitaufwändig.

Ich weiß, wie man Duplikate in Excel eliminiert. Gibt es eine Möglichkeit, alles AUSSER Duplikaten zu eliminieren? Dies würde das visuelle Durchsuchen der Liste einfacher machen.

Ein weiteres Problem bleibt bestehen, da die Verwendung einfacher Makros, Filter oder der Schaltfläche „Duplikate suchen“ aufgrund von Dateninkonsistenzen eingeschränkt ist. Transaktionsprotokollnamen werden häufig etwas anders geschrieben als auf meiner Hauptliste.

Beispiel: Acme Widget Company, Inc.; Acme Widget Inc; Acme Widget;
Beispiel: United States Handball Organization; US Handball Org; US Handball; USHO

Ich weiß, dass es einige Drittanbieter-Apps gibt, die Fuzzy-Logik verwenden können, um nicht exakte Einträge abzugleichen. Ich kann jedoch keine Plug-Ins auf meinem Unternehmenscomputer ausführen. (Es sei denn, es gibt einen sehr zwingenden Grund ...)

Gibt es ein Makro, das das Transaktionsprotokoll durch Entfernen von Leerzeichen und Satzzeichen „normalisieren“ könnte? Gibt es ein Makro, das die ersten X Zeichen abgleichen kann (mehr Zeichen = höhere Genauigkeit, aber größere Wahrscheinlichkeit, einen fast doppelten Eintrag zu übersehen...)? Gibt es ein Makro, das die resultierende „Übereinstimmungsliste“ ausgeben oder filtern kann?

Wenn diese Aufgaben zu kompliziert sind, habe ich eine viel einfachere Idee. Nachdem ich meine hervorgehobene Kontoliste in das Transaktionsprotokoll eingefügt habe, wäre es schön, alle anderen Transaktionsprotokollzeilen ausblenden zu können, die weniger als 5 Zeilen über oder unter meinen hervorgehobenen Elementen liegen. Dies würde etwas Flexibilität für nicht standardmäßige Schreibweisen ermöglichen, aber die visuelle Überprüfung der Liste erheblich vereinfachen.

Für Anregungen zur Umsetzung dieser Ideen – oder ganz anderer Ansätze – wäre ich sehr dankbar. Ich denke, die allgemeine Antwort auf diese Frage wird auch für andere über den von mir beschriebenen Anwendungsfall hinaus von Nutzen sein.

Danke!

Antwort1

Es gibt definitiv zu viele Fragen, um sie hier zu beantworten (als Hyperslug-Kommentare). Ich bin in einer sehr ähnlichen Situation und habe festgestellt, dass ich Duplikate nur manuell finden kann, da es zu viele verschiedene zu kodierende Versionen gibt.

Alle von Ihnen vorgeschlagenen Makros können geschrieben werden. Wenn Sie entscheiden, welches am effektivsten ist, stellen Sie dies als separate Frage und wir werden tun, was wir können. Das letzte ist einfach zu implementieren und spart Ihnen Scrollzeit. Ich würde dieses Makro erstellen und dann, nachdem die Duplikate ausgeblendet sind, einfach den „Standard“-Eintrag anklicken und über die anderen ziehen.

Antwort2

Um die benötigten Daten abzurufen, würde ich die MATCH-Funktion von Excel verwenden, anstatt sie zu kopieren und zu sortieren.

Nehmen wir an, Ihre Masterliste befindet sich in einerbenannter Bereichheißt Master und der Firmenname steht im Transaktionsprotokoll in Spalte D. Geben Sie irgendwo in der Zeile der Transaktion die folgende Formel ein: =IF(ISNA(MATCH(D1,Master,0)),0,1)und kopieren Sie sie in alle Zeilen der Transaktionstabelle. Diese Formel ergibt 1, wenn der Firmenname übereinstimmt, und andernfalls 0.

Dies wird nur mit exakten Namen übereinstimmen. Sie müssen dem Master-Bereich alternative Namen hinzufügen (achten Sie darauf, ihn nach dem Hinzufügen der Namen zu sortieren), um alle möglichen Versionen zu erhalten.

Antwort3

Ich stimme dem Ansatz zu, alternative Schreibweisen zu Ihrer Hauptliste hinzuzufügen (Sie haben möglicherweise eine zweite Spalte, die Ihnen sagt, welches Ihr bevorzugtes Format für E-Mails usw. ist und welches nur den Unternehmensdaten entspricht). Sie haben möglicherweise Erfolg, wenn Sie aufeinanderfolgende SUBSTITUTE-Funktionen verwenden, um eine alternative Version der Namen zu generieren. Beispiel:

=ERSATZ(ERSATZ(ERSATZ(LOWER(A1)," inc",""),".","")," ","")...

Jede Ersetzung ersetzt also jede Instanz des ausgewählten Textes durch den Ersatz - in unserem Fall hier nichts. Aus meiner Erfahrung mit ähnlichen Fuzzy-Matching-Vorgängen zwischen Namen aus unterschiedlichen Systemen muss man möglicherweise Dinge wie inc, corp, plc usw. weglassen, um Übereinstimmungen zu erhalten. Obwohl man hierfür SUBSTITUTE verwenden kann, könnte man einige seltsame Ergebnisse erhalten, wie z. B. „Income Corporation“, das zu „omeorporation“ wird, daher ist es möglicherweise sicherer, Folgendes zu verwenden:

WENN (RECHTS(untere(A1),4)="Corp",links(untere(A1),Länge(A1)-4)),untere(A1)).

Ersetzen Sie Leerzeichen zuletzt.

Sie können MATCH oder COUNTIF mit ähnlichen Ergebnissen verwenden, um eine Spalte zu erstellen, die anzeigt, welche Transaktionen mit Ihrer Liste übereinstimmen.

Eine Alternative wäre, Ihre Hauptliste als Kriterium für einen erweiterten Filter zu verwenden. So könnten Sie ganz einfach eine Kopie der Transaktionslisteneinträge erstellen, die mit Ihren Kundennamen übereinstimmen, und diese gefilterte Kopie an einer anderen Stelle platzieren (z. B. an einer Seite oder auf einem anderen Blatt). Genau wie oben müssten Sie noch Varianten hinzufügen, wenn diese zu weit von Ihrem ursprünglichen Namen abweichen.

Antwort4

Ich habe mich nur gefragt, ob Sie es schon einmal mit einer Pivot-Tabelle versucht haben. Ich bearbeite viele Daten mithilfe von Pivot-Tabellen und sie helfen mir, Probleme sehr schnell und mit vollständiger Datenintegrität auf mehrere Arten zu betrachten.

Markieren Sie alle Ihre Daten und wählen Sie „Pivot-Tabelle einfügen“. Sie können Ihre Daten nun auf viele interaktive Arten überprüfen und so lästige Doppeleinträge, Rechtschreibfehler usw. eingrenzen. Sie können dann mithilfe von benutzerdefinierten Sortierungen usw. sowie von A bis Z sortieren.

verwandte Informationen