Ich habe eine Produktdatenbank in Excel mit mehreren hundert Einträgen, von denen jeder 1 bis 3 "Preisstufen" aufweist: Standard, Deluxe und Premium. Jede Stufe hat ihre eigene SKU (A, B oder C am Ende der Basis-SKU) und einen eigenen Preis. Meine Daten sind wie folgt:
Name, Description, Price A, Price B, Price C, SKU A, SKU B, SKU C
name1, desc1, 14.95, 19.95, , sku1A, sku1B,
name2, desc2, 4.95, 9.95, 12.95, sku2A, sku2B, sku2C
name3, desc3, 49.95, , , sku3A, ,
Wie würde ich vorgehen, damit die Daten so aussehen:
Name, Description, SKU, Price
name1, desc1, sku1A, 14.95
name1, desc1, sku1B, 19.95
name2, desc2, sku2A, 4.95
name2, desc2, sku2B, 9.95
name2, desc2, sku2C, 12.95
name3, desc3, sku3A, 49.95
Wenn es hilft, werde ich diese Produkte in eine Magento-Installation importieren.
Danke im Voraus.
microsoft-excel
microsoft-excel-2010
csv
GreysonD
quelle
quelle
name1
unddesc1
aber mit unterschiedlichen Preisen für Preis A, Preis B, Preis C usw.Antworten:
Diese Aufgaben sind mit VBA normalerweise schneller. Tatsächlich habe ich ~ 10 Minuten gebraucht, um es einzurichten.
Ich gehe davon aus, dass sich Ihre Daten in Spalte A bis Spalte H befinden.
Gehen Sie zu
Excel » Developer » Visual Basic
»Öffnen Siesheet1
(oder) im linken Bereich das Blatt, in dem sich Ihre Daten befinden.» Fügen Sie den Code im rechten Fenster ein. »Führen Sie den Code ausVBA-Code
Erläuterung
Ich wollte den Code so kurz wie möglich halten, um ihn besser zu erklären. Grundsätzlich verwenden wir zwei Schleifen. Die äußere Schleife (
i
) ist für die Zeilen und die innere Schleife (j
) für die Preisspalten.Wir verwenden häufig
cells(rowNumber,columnNumber)
zum Lesen / Schreiben von Zellen.Zeile 2 | Starten Sie eine Schleife von Zeile 2 bis zu Ihrer letzten Zeile. Wir durchlaufen jede verwendete Zeile
Zeile 3 | Starten Sie eine zweite Schleife von 0 bis 2 (das sind tatsächlich 3 Schleifen, eine für jede Preisspalte).
Zeile 4 | Wir verwenden diese innere Schleife, um nach Werten in unserer aktuellen Zeile und Spalte Preis A, dann Preis B und in der letzten Schleife Preis C zu suchen. Wenn wir einen Wert in einer Preisspalte finden, fahren wir fort und kopieren Zellen. Wenn kein Preis eingefügt wird, tun wir nichts und fahren mit der nächsten Preisspalte fort
Zeile 5 | Zählen Sie einen Zähler hoch, um zu wissen, wie viele Zeilen wir bereits kopiert haben,
damit wir wissen, nach welcher Zeile wir unsere aktuelle Zeile kopieren können
Zeile 6 | Kopieren Sie die Namensspalte
Zeile 7 | Kopieren Sie die Beschreibungsspalte
Zeile 8 | Kopieren Sie die Spalte Preis A oder B oder C, je nachdem, um welche innere Schleife es sich derzeit handelt
Zeile 9 | Kopieren Sie die Spalte SKU A oder B oder C, je nachdem, um welche innere Schleife es sich derzeit handelt
Ergebnis Screenshot
quelle
Hier ist eine Arbeitsblattfunktionslösung. Die Formeln sind etwas dicht, seien Sie also gewarnt, aber dies wird geben, was Sie wollen.
Schritte:
Name
einen direkten Verweis auf die ersteName
in Ihren Daten ein. In Ihrem Beispiel würden Sie eingeben,=A2
wobei A2 der in Ihren Daten aufgeführte Vorname ist. In dem Beispiel-Screenshot, den ich unten bereitgestellt habe, geht diese Formel einA8
. Alle folgenden Formeln folgen dem im Screenshot verwendeten Layout. Sie müssen natürlich alle Bereichsreferenzen aktualisieren, um sie an Ihre Blätter anzupassen.A9
) vorhanden sein sollen. Wenn die Anzahl der Zeilen in Ihrer neuen Tabelle mit dieser übereinstimmt, wird mit dem nächsten Namen fortgefahren. Wenn nicht, wird eine weitere Zeile für den obigen Namen hinzugefügt.Füllen Sie diese Formel so weit wie nötig aus (bis eine 0 anstelle eines Namens zurückgegeben wird).
Description
die folgende Formel ein und füllen Sie sie aus.SKU
unten die folgende Formel in die Formelleiste ein und drücken Sie Ctrl+ Shift+ Enter. Dies ist eine Array-Formel. Bei korrekter Eingabe wird die Formel in der Formelleiste in geschweiften Klammern angezeigt. Füllen Sie diese Formel in Ihre Tabelle ein (jede Instanz sollte ebenfalls in geschweiften Klammern stehen).Price
unten die folgende Formel in die Formelleiste ein und geben Sie sie als Array-Formel ein (durch Drücken von Ctrl+ Shift+ Enter). Füllen Sie aus, und dies sollte Ihre Tabelle vervollständigen.quelle