Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die folgende Abbildung zeigt die Ausgangssituation, also den Datenblock, der entsprechend konvertiert werden soll.

  A B
1 Fall-Nr. Merkmal
2 1234 FE00012
3   FE00014
4 12344 FE00018
5   FE00012
6 11111 FE00024
7   FE00012
8   FE00035
9 9234 FE00001
10 11134 FE00015
11   FE00009
12    

Ziel ist nun, zu jeder Fall-Nummer aus Spalte A die Merkmale zuzuordnen. Der erste Datensatz soll also wie folgt aufgebaut sein:

Fall-Nr.   Merkmal 1   Merkmal 2
1234      FE00012     FE00014

Für die Zuordnung der Merkmale zu den Fall-Nummern kann folgender VBA-Code verwendet werden:

Sub umgliedern()

Dim lngZeile As Long
Dim lngSpalte As Long

'** Vorgaben definieren
Set ws = ThisWorkbook.ActiveSheet
lngZeile = 1
lngSpalte = 7

'** Ausgabebereich löschen
ws.Range("E2:Z100").ClearContents


'** Durchlaufen des Datenbestands von Zeile 2 bis zur letzten Zeile in Spalte B
For a = 2 To ws.Cells(Rows.Count, 2).End(xlUp).Row
  
  '** Prüfen, ob die Zeile in Spalte 1 einen Wert enthält
  If ws.Cells(a, 1).Value <> "" Then
    
    lngZeile = lngZeile + 1 'Zeilennummer erhöhen
    ws.Cells(lngZeile, 5).Value = ws.Cells(a, 1).Value 'Wert aus Spalte 1 in neuen Bereich übertragen
    ws.Cells(lngZeile, 6).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
    lngSpalte = 7 'Spaltennummer setzen
  
  '** Prüfen, ob Zeile in Spalte 1 leer ist
  ElseIf ws.Cells(a, 1).Value = "" Then
    
    ws.Cells(lngZeile, lngSpalte).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
    lngSpalte = lngSpalte + 1 'Spaltennummer erhöhen
  End If
  
Next a
End Sub


Nachdem das Makro durchgelaufen ist, sieht das Ergebnis wie folgt aus:

  E F G H
1 Fall-Nr. Merkmal 1 Merkmal 2 Merkmal 3
2 1234 FE00012    
3 12345 FE00014    
4 12344 FE00018 FE00012  
5 11111 FE00024 FE00012 FE00035
6 9234 FE00001    
7 11134 FE00015 FE00009  
8        

Die konvertierten Datensätze wurden ab Spalte E eingetragen. Sämtliche Merkmale pro Fall-Nummer wurden ausgelesen und dem entsprechenden Fall zugeordnet. Damit liegt pro Fall ein kosistenter Datensatz mit den zugeordeten Mermalen vor.

Dieser Code berücksichtigt automatisch die korrekte Anzahl an Merkmalen pro Fall-Nr, ohne dass eine Anpassung des Codes erforderlich ist.

Über den nachfolgenden Link kann die Beispieldatei heruntergeladen werden.

 

Relevante Artikel

  • Zufallszahlen ermitteln

    Das folgende Makro ermittelt Zufallszahlen. Jede Zahl kommt dabei jedoch nur ein einziges Mal vor.Sie geben beim...

  • Duplikate entfernen - Verschiedene Möglichkeiten

    Eine Häufige Fragestellung im Umgang mit Excel ist das Löschen von Duplikaten aus einer Liste. Im Beispiel liegt eine Liste mit...

  • Zellen mit Formeln, Zahlen oder Text farbig markieren

    Der VBA-Code in Variante 1markiert alle Zellen im benutzten Bereich farbig, die eine Formeln enthalten. Die Variante 2...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

    In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die...

Projektanfrage stellen

Template Expert jPanel

Projektanfrage

Sie benötigen eine individuelle Auftrags-
programmierung oder benötigen
Unterstützung bei der Lösungsfindung?
Wir helfen gerne weiter!

  Nutzen Sie unser Anfrageformular
  Jetzt anrufen unter 0151 / 164 55 914
 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. senden
  Weitere Informationen
Wir benutzen Cookies
Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.