Collapse column

Autor Thema: Excel 2010 - Daten blockweise umschichten  (Gelesen 1775 mal)

Offline andrea_office

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Excel 2010 - Daten blockweise umschichten
« am: Januar 17, 2013, 21:15:00 Nachmittag »
Hallo,

ich habe ein dringendes Problem, da es viele Leute betrifft, die die Daten brauchen.
Ich habe Excel-Tabellen (bis ca. tausend Datenzeilen) in der Struktur:

Fallnr......Merkmal
1234........FE00012
............FE00014
5234........FE00018
............FE00012
7234........FE00024
............FE00012
............FE00035
9234........FE00001
1134........FE00015
............FE00009
7714........FE00013


Die Fallnummern und die FE0001 Werte sind schon sauber in Excel-Zellen getrennt
Ich muß die Daten so umschichten, daß es pro Fallnummer nur noch eine Datenzeile gibt.
Also so:
Fallnr.....Merkmal1......Merkmal2
1234.......FE00012.......FE00014


Die Problematik liegt darin, daß es mal 1, mal 2, mal 3 oder 4 Merkmale pro Fall gibt.
« Letzte Änderung: Januar 17, 2013, 21:17:31 Nachmittag von andrea_office »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
Antw: Excel 2010 - Daten blockweise umschichten
« Antwort #1 am: Januar 19, 2013, 16:17:18 Nachmittag »
Hallo andrea,

ich habe mal ein VBA-Beispiel gebaut, das den Code entsprechend umschichtet.
Natürlich müsstest Du den Code noch an deine Tabelle anpassen.

Der Code sieht wie folgt aus:
Code: Visual Basic
  1.  
  2. Sub umgliedern()
  3.  
  4. Dim lngZeile As Long
  5. Dim lngSpalte As Long
  6.  
  7. '** Vorgaben definieren
  8. Set ws = ThisWorkbook.ActiveSheet
  9. lngZeile = 1
  10. lngSpalte = 7
  11.  
  12. '** Ausgabebereich löschen
  13. ws.Range("E2:Z100").ClearContents
  14.  
  15.  
  16. '** Durchlaufen des Datenbestands
  17. For a = 2 To ws.Cells(Rows.Count, 2).End(xlUp).Row
  18.  
  19.   '** Prüfen, ob die Zeile in Spalte 1 einen Wert enthält
  20.  If ws.Cells(a, 1).Value <> "" Then
  21.    
  22.     lngZeile = lngZeile + 1 'Zeilennummer erhöhen
  23.    ws.Cells(lngZeile, 5).Value = ws.Cells(a, 1).Value 'Wert aus Spalte 1 in neuen Bereich übertragen
  24.    ws.Cells(lngZeile, 6).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
  25.    lngSpalte = 7 'Spaltennummer setzen
  26.  
  27.   '** Prüfen, ob Zeile in Spalte 1 leer ist
  28.  ElseIf ws.Cells(a, 1).Value = "" Then
  29.    
  30.     ws.Cells(lngZeile, lngSpalte).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
  31.    lngSpalte = lngSpalte + 1 'Spaltennummer erhöhen
  32.  End If
  33.  
  34. Next a
  35. End Sub
  36.  
  37.  

Den VBA-Code findest Du auch in der beigefügten Beispieldatei.

Gruß

Officer
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.