Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

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

  • Autofilter: Gefilterte Datensätze auslesen

    In diesem Artikel erläutern wir, wie sich der über einen Autofilter gefilterte Inhalt aus einer Liste auslesen lässt. Als Ausgangsbasis dient wieder einmal eine Artikelliste mit etwas mehr als 25...

  • Doppelte Einträge in eigene Spalte extrahieren

    101073     Dieses Makro extrahiert in Spalte B alle Daten, die doppelt vorhanden sind.Nur in Spalte A nicht doppelt vorhandene Einträge werden nicht in Spalte B geschrieben!Public Sub Liste_doppelte()Dim wert1(100)Dim wert2(200)Dim zeilenzeilen = 17 'Anzahl der Zeilen die...

  • Zeilen abhängig von einer Bedingung ausblenden

    101081 Dieses Makro blendet Zeilen abhängig von einer Bedingung aus. In diesem Beispiel wird geprüft ob zwischen den Zeilen 1 und 100 in der Spalte A ein Wert steht oder nicht. Wenn kein Wert in...

  • Hyperlinks per VBA auslesen

    101083 Mit diesem Makro können alle Hyperlinks eines definierten Zellbereichs ausgelesen werden. Das Makro durchforstet in diesem Beispiel die Spalte A und listet die Ergebnisse, also alle...

  • Eingaben in Tabellenblatt protokollieren

    Die folgende Lösung zeigt, wie Sie Eingaben in ein Tabellenblatt protokollieren können. Zum Protokollieren, müssen Sie die Werte nur auf ein eigenes Tabellenblattschreiben, was im vorgestellten...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013