Normalisierung einer Tabelle
Hallo zusammen,
ich beiße mir gerade die Zähne aus an dem Versuch eine Tabelle in Excel zu normalisieren. Vorhanden ist:
In Spalte B stehen
Ziel ist folgender Zustand:
Hat jemand eine Idee, wie das umzusetzen ist?
Danke im Voraus,
Sarek \\//_
ich beiße mir gerade die Zähne aus an dem Versuch eine Tabelle in Excel zu normalisieren. Vorhanden ist:
In Spalte B stehen
- teilweise keine Werte
- teilweise ein Wert
- teilweise mehrere (bis zu fünf), durch Kommata getrennte Werte
Ziel ist folgender Zustand:
Hat jemand eine Idee, wie das umzusetzen ist?
Danke im Voraus,
Sarek \\//_
Please also mark the comments that contributed to the solution of the article
Content-Key: 21275054328
Url: https://administrator.de/contentid/21275054328
Printed on: April 27, 2024 at 08:04 o'clock
12 Comments
Latest comment
Moin,
Als erstes würde ich es damit machen.
Danach, je nachdem wie viel zusätzlich Spalten über alle Zeilen entstehen „zu Fuß“ die Spalten C ff in Zeilen verschieben…
Edit:
Als erstes würde ich es damit machen.
Danach, je nachdem wie viel zusätzlich Spalten über alle Zeilen entstehen „zu Fuß“ die Spalten C ff in Zeilen verschieben…
Edit:
Dein Ziel ist aber aus meiner Sicht auch keine normalisierte Tabelle.
Das kommt hinzu.
Könntest du mit VBA machen, ungefähr so
Gruß Katrin
Sub doit()
Dim cell As Range, parts() As String, i As Integer
With ActiveSheet
Set cell = .Range("A1")
While cell.Value <> ""
parts = Split(cell.Offset(0, 1).Value, ",", -1, 1)
If UBound(parts) > 0 Then
cell.Offset(0, 1).Value = Trim(parts(0))
For i = 1 To UBound(parts)
cell.Offset(i, 0).EntireRow.Insert
cell.Offset(i, 0).Resize(1, 2).Value = Array(cell.Value, Trim(parts(i)))
Next
Set cell = cell.Offset(UBound(parts) + 1, 0)
Else
Set cell = cell.Offset(1, 0)
End If
Wend
End With
End Sub
Bin unterwegs konnte es nicht testen (deswegen ungefähr), mach ich später, habe oben noch Tippfehler korrigiert, vermutlich läuft es jetzt.
Kannst ja mit der Vorlage auch selbst etwas dran mitarbeiten, ist ja kein Full-Service hier ...
Kannst ja mit der Vorlage auch selbst etwas dran mitarbeiten, ist ja kein Full-Service hier ...
So zurück im Office konnte ich es testen. Fehler im Code ist oben behoben.
Vor Makro
Nach Makro
Vor Makro
Nach Makro
Alternativ: Einfach eine Formel machen die den Text bis zum ersten Trennzeichen in Spalte B ausgibt und eine die den Rest in Spalte C ausgibt. Das ganze für weitere Trennzeichen wiederholen. Alles als Daten in ein anderes Arbeitsblatt kopieren, alte Spalten weg schmeißen, sortieren und hintereinander hängen, fertig.
Liegen die Originaldaten eventuell schon irgendwo in einem DBMS?
Liegen die Originaldaten eventuell schon irgendwo in einem DBMS?