Anzeige
Archiv - Navigation
1780to1784
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

Datenexport formatieren

Datenexport formatieren
03.09.2020 16:41:07
Nils

Hallo zusammen,
im Rahmen einer Wettbewerbsanalyse möchte/muss ich Kaufdaten verarbeiten.
Leider ist der Anbieter der Daten nicht in der Lage, seinen Datenexport ausreichend kompatibel mit Excel zu gestalten.
D.h. der Datenexport kommt in der im Tab. “Systemexport“ dargestellten Formatierung aus dem System.
In dieser Form kann ich die Daten nicht mit Excel-Pivot analysieren, da die Parameter nicht in einzelnen Spalten aufgerufen werden.
Meine Frage lautet deshalb: Ist es möglich, die Daten mit Excel automatisiert so zu bearbeiten, dass die Aufbereitung wie im Tab. „Zielformatierung“ erfolgt?
https://www.herber.de/bbs/user/140024.xlsx
Wichtig dabei ist, dass der ganz oben gestellte Produktname immer als einheitliche Kennung ausgegeben wird, so dass man die Lieferantenpreise anschließend via Pivot horizontal darstellen kann.
Die durch Leerzeichen getrennten Inhalte sollen auf separate Spalten aufgeteilt werden.
Lediglich der Mittelteil zwischen der langen Zahl (PZN) und der Größe soll in einer Spalte zusammengefasst werden.
Ich bin hier mit meinem Latein am Ende…
Hat jemand eine Idee, wie man das angehen kann?
Danke vorab und viele Grüße
Nils

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenexport formatieren
03.09.2020 17:31:44
onur
Ist die Artikelnummer immer der Artikelbezeichnung vorangestellt, wieviele Stellen mind. hat sie immer und besteht sie immer nur aus Ziffern ?
AW: Datenexport formatieren
03.09.2020 20:55:30
Nils
Hallo zusammen,
danke für die schnelle Rückmeldung. Ja, Daten formatieren ist angesichts der Transformationsanfrage tatsächlich irreführend und für mich ist auch nachvollziehbar, dass die in "Zielformatierung" formulierte Anforderung wohl zu komplex ist, um ohne erheblichen Aufwand zu einer Lösung zu kommen.
Nach weiterer Überlegung ist das vielleicht aber auch gar nicht erforderlich.Im Grunde genommen wäre es für mich ausreichend, wenn die jeweils vertikal und hierarchisch übergreifenden Produktnamen und der Name des jeweiligen Lieferanten als separate Spalten neben die restlichen Daten gestellt würden.
Dann verbliebe der umfangreichere, dritte Datensatz (z.B."3653808 ACETYLCYSTEIN API 25 G") Diesen könnte ich auch mit etwas manuellen Aufwand über die Funktion "Text in Spalten" auf Einzelspalten aufteilen und damit dann weiter arbeiten. Mir geht es nur darum, die Daten mit Pivot anschließend analysieren zu können und das wäre dann ja vorbereitet.
Somit sinkt die Komplexität sicherlich deutlich.
Wäre das ohne größeren Aufwand umsetzbar?
Danke vorab und einen schönen Abend,
Nils
Anzeige
AW: Datenexport formatieren
03.09.2020 20:59:35
Nils
Sorry, die Frage
"Ist die Artikelnummer immer der Artikelbezeichnung vorangestellt, wieviele Stellen mind. hat sie immer und besteht sie immer nur aus Ziffern ?"
hatte ich nicht beantwortet. Die Nr. ist immer vorangestellt, was aber nach Anpassung der Anfrage wahrscheinlich nicht mehr relevant ist, da das dann ja manuell über "Text in Spalten" gemacht würde.
AW: Datenexport formatieren
04.09.2020 11:10:09
UweD
Hallo
was meinst du hierzu?
Die @ am Ende in einigen Zeilen... sind die wichtig?

Sub Zielformat()
Dim TB1, LR As Long, i As Long, Z1 As Integer, j As Integer
Dim Arr, TMP As String, SP As Integer
Set TB1 = Sheets("Systemexport")
Z1 = 3 'erste Zeile mit Daten
SP = 6 'Anzahl neue Spalten
LR = TB1.Cells(TB1.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
TB1.Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.Name = "Zielformatierung"
.Columns(1).Resize(, SP).Insert Shift:=xlToRight
SP = SP + 1 'Die Spalte mit den Ursprungswerten
.Cells(2, 1) = "Produkt"
.Cells(2, 2) = "Lieferant"
.Cells(2, 3) = "PNZ"
.Cells(1, 3) = "Filter" 'wird zum filtern benötigt
.Cells(2, 4) = "Name Lieferant"
.Cells(2, 5) = "Größe"
.Cells(2, 6) = "Einheit"
For i = Z1 To LR
TMP = .Cells(i, SP)
If Left(TMP, 6) = "      " Then
'weder Produkt noch Lieferant
.Cells(i, 1) = .Cells(i - 1, 1)
.Cells(i, 2) = .Cells(i - 1, 2)
Arr = Split(Trim(TMP), " ")
TMP = ""
.Cells(i, 3) = Arr(0)   'PNZ
For j = 1 To UBound(Arr)
If Not IsNumeric(Arr(j)) Then
'Suchen bis Ziffern (=Größe)
TMP = TMP & Arr(j) & " "
Else
.Cells(i, 4) = Trim(TMP)  ' Bezeichnung
.Cells(i, 5) = Arr(j)     'Größe
.Cells(i, 6) = Arr(j + 1) 'Einheit
Exit For
End If
Next
ElseIf UCase(TMP) = TMP Then
'Großbuchstaben = Produktname
.Cells(i, 1) = TMP
Else
'Lieferant
.Cells(i, 1) = .Cells(i - 1, 1)
.Cells(i, 2) = TMP
End If
Next
.Columns(SP).Delete xlLeft 'Alte Spalte löschen
If .AutoFilterMode Then .AutoFilterMode = False ' Autofilter ausschalten
With .Cells(Z1).Resize(LR - Z1 + 1)
'Leere Zeilen löschen
.AutoFilter Field:=1, Criteria1:="="
.Offset(1).EntireRow.Delete Shift:=xlUp
End With
.AutoFilterMode = False
.Cells(1, 3).ClearContents
'Spalten ausrichten
.Columns(1).Resize(, SP).EntireColumn.AutoFit
End With
End Sub
LG UweD
Anzeige
AW: gemeint ist wohl Daten umstrukturieren ...
03.09.2020 19:35:59
neopa
Hallo Nils,
... und dafür ehe ich neben einer VBA-Lösung (mit ich mich nicht befasse) die Möglichkeit des Einsatzes einer Lösung über die Funktionalität "Daten abrufen und transformieren" (PowerQuery). Persönlich am ehestens über eine Formellösung.Dies allerdings nur, wenn keine Massendaten (tausende Datensätze)
auszuwerten sind.
Wie auch immer, gäbe es dazu aber eine Reihe von Fragen zu klären, die dann aufwandsmäßig eine normale (kostenfreie) Forumshilfe übersteigen würde.
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige