Nur vorhandene Artikel aus CSV2-Liste in CSV1-Liste behalten, Restliche Zeilen löschen. Wie?
Ich habe eine Artikel-Liste mit ca. 80.000 Einträgen im CSV-Format. Darin sind enthalten Artikel-Nr., Bezeichnung und Preis. Jetzt möchte ich die Preise updaten. Dazu habe ich eine aktuelle Preisliste bekommen. Allerdings beinhaltet diese den kompletten Datenstamm des Herstellers. Das sind ca. 1Mio. Einträge. Diese Liste ist ebenfalls im CSV-Format.
Jetzt kann ich diese zwar in mein Warenwirtschafts-Programm importieren, aber ich möchte nicht 920.000 Leichen im Artikelstamm haben.
Jetzt ist meine Frage: Kann ich die neue Preisliste schrumpfen in dem ich sie mit meiner Artikel-Liste vergleiche und ein Tool, Batch, Excel oder Notepad++-Plugin die nicht benötigten Zeilen einfach löscht?
Am Ende sollte quasi die neue Preisliste nur noch die Artikel enthalten, die auch in meiner Artikel-Liste drin sind.
Habt Ihr für mich einen Tipp wie ich da vorgehen sollte?
Danke schon mal im Vorraus....
Jetzt kann ich diese zwar in mein Warenwirtschafts-Programm importieren, aber ich möchte nicht 920.000 Leichen im Artikelstamm haben.
Jetzt ist meine Frage: Kann ich die neue Preisliste schrumpfen in dem ich sie mit meiner Artikel-Liste vergleiche und ein Tool, Batch, Excel oder Notepad++-Plugin die nicht benötigten Zeilen einfach löscht?
Am Ende sollte quasi die neue Preisliste nur noch die Artikel enthalten, die auch in meiner Artikel-Liste drin sind.
Habt Ihr für mich einen Tipp wie ich da vorgehen sollte?
Danke schon mal im Vorraus....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 297382
Url: https://administrator.de/contentid/297382
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Muss das selbe auch täglich machen, ist nicht die eleganteste aber vielleicht zumindest erstmal eine schnelle Lösung:
Excel
Importier beide CVSs auf je ein Blatt, nimm ein drittes und dann per SVERWEIS weiter.
(Daten, Import aus Text, bei ganzzahlingen SKUs, wie zb EANs die Spalte als Text markieren, damit Excel keine Exponentialzahl draus macht)
Zieh dir ein die erste Spalte die SKUs aus deinem Bestandsblatt:
A1 nennst Artikelnummer, bzw SKU
In A2 kommt "=Tabelle1!A1"
B2 nennst Preis
In B2 kommt =WENNFEHLER(SVERWEIS(A2;Tabelle1!$A$2:$B$80000;2;FALSCH);"nicht mein bestand")
Tabelle1 ist jeweils mit dem Blattnamen der GroßhändlerCSV zu ersetzen.
Das B Verweist aus das Ende der Suchmatrix und ggf, je nachdem in welcher Spalte der Preis steht zu erweitern, die 2 hinter dem Semikolon entsprechend auch.
Das ganze dann einfach nach unten ziehen, entsprechend der Anzahl an Artieln die in deiner BestandsCSV sind.
Danach setzt in die Kopfzeilen einfach einen Autofilter und Filters die "nicht mein bestand"-Zeilen raus.
Klingt kompliziert, in der Praxis aber nur 2 min Arbeit.
Wichtig, vor dem Speichern die gefilterte Liste auf ein weiteres Blatt kopieren, damit die rausgefilterten Zeilen nicht mit gespeichert werden.
Excel
Importier beide CVSs auf je ein Blatt, nimm ein drittes und dann per SVERWEIS weiter.
(Daten, Import aus Text, bei ganzzahlingen SKUs, wie zb EANs die Spalte als Text markieren, damit Excel keine Exponentialzahl draus macht)
Zieh dir ein die erste Spalte die SKUs aus deinem Bestandsblatt:
A1 nennst Artikelnummer, bzw SKU
In A2 kommt "=Tabelle1!A1"
B2 nennst Preis
In B2 kommt =WENNFEHLER(SVERWEIS(A2;Tabelle1!$A$2:$B$80000;2;FALSCH);"nicht mein bestand")
Tabelle1 ist jeweils mit dem Blattnamen der GroßhändlerCSV zu ersetzen.
Das B Verweist aus das Ende der Suchmatrix und ggf, je nachdem in welcher Spalte der Preis steht zu erweitern, die 2 hinter dem Semikolon entsprechend auch.
Das ganze dann einfach nach unten ziehen, entsprechend der Anzahl an Artieln die in deiner BestandsCSV sind.
Danach setzt in die Kopfzeilen einfach einen Autofilter und Filters die "nicht mein bestand"-Zeilen raus.
Klingt kompliziert, in der Praxis aber nur 2 min Arbeit.
Wichtig, vor dem Speichern die gefilterte Liste auf ein weiteres Blatt kopieren, damit die rausgefilterten Zeilen nicht mit gespeichert werden.
Naja, ich würde den SVERWEIS zwar bereits bei den Preisen der bestehenden Artikeln einfügen. Inhalte der so entstandenen neuen Preisspalte dann in die Spalte der alten Preise kopieren und die SVERWEIS-Spalte löschen. Muss man nix filtern.
Aber SVERWEIS ist da schon richtig.
Aber SVERWEIS ist da schon richtig.
Hallo zusammen,
Papperlapapp, mit Powershell ist das schnell umgesetzt.
Wenn deine Spalte die die Artikelnummern beinhaltet 'ArtNr' lautet ist das so schnell erledigt:
In den ersten drei Zeilen die Pfade und Trennzeichen entsprechend an die Umgebung anpassen.
Grüße Uwe
Papperlapapp, mit Powershell ist das schnell umgesetzt.
Wenn deine Spalte die die Artikelnummern beinhaltet 'ArtNr' lautet ist das so schnell erledigt:
In den ersten drei Zeilen die Pfade und Trennzeichen entsprechend an die Umgebung anpassen.
$csvAlt = Import-Csv 'C:\PreiseAlt.csv' -Delimiter ";"
$csvNeu = Import-Csv 'C:\PreiseNeu.csv' -Delimiter ";"
$csvResult = 'C:\result.csv'
Compare $csvNeu $csvAlt -Property 'ArtNr' -IncludeEqual -ExcludeDifferent -PassThru | select * -ExcludeProperty SideIndicator | export-csv $csvResult -Delimiter ";" -NoType -Encoding UTF8