Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
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

einfachere Zuodnung ?

einfachere Zuodnung ?
Hans
HALLO
Ich habe 2 Tabellen mit Daten die zwar die gleichen Daten enthalten, aber unterschiedlich aufgebaut sind..
Beispiel Spalte A enthält Straßenzuordnungsnummern, Spalte B die Bezirkszugehörigkeit der Straßen, Spalte C der Straßenname, Spalte D die Reinigungsklasse, in Spalte E der Reinigungstag und in Spalte F das Objekt.. Die Reinigung findet auf verschiedenen Objekten ( Fahrbahn, Gehweg, Radweg ) an verschiedenen Tagen statt.
In Tabelle 2 möchte ich die Daten jeweils in einer Zeile zusammenfügen. Wie gehe ich da am besten vor.
Da ich davon über. 10.000 Datensätze habe würde ich daran mehrere tage hängen.
Könnt Ihr mir Helfen?
In der beigefügten Datei versuche ich die Problematik noch mal dazustellen.
https://www.herber.de/bbs/user/68616.xls

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: einfachere Zuodnung ?
17.03.2010 21:50:38
Beni
Hallo Hans,
das geht nur mit VBA, ich habe die Datei angehängt,
öffne sie und drücke Ctrl+i und schau was passiert.
Gruss beni
https://www.herber.de/bbs/user/68618.xlsm
Sub Tage_zusammenfügen() Sheets("Tabelle1").Select With Sheets("Tabelle2") lz = .Cells(Rows.Count, 1).End(xlUp).Row If Not lz = 1 Then .Rows("2:" & lz).Delete Shift:=xlUp For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Znr = Cells(i, 1) Set c = .Columns(1).Find(What:=Znr, LookIn:=xlValues, LookAt:=xlWhole) If c Is Nothing Then nz = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(nz, 1) = Cells(i, 1) .Cells(nz, 2) = Cells(i, 2) .Cells(nz, 3) = Cells(i, 3) .Cells(nz, 4) = Cells(i, 4) .Cells(nz, 5) = Cells(i, 5) Set ob = .Rows(1).Find(What:=Cells(i, 6), LookIn:=xlValues, LookAt:=xlWhole) If Not ob Is Nothing Then sp = ob.Column .Cells(nz, sp) = Cells(i, 5) End If Else Z = c.Row Set ob = .Rows(1).Find(What:=Cells(i, 6), LookIn:=xlValues, LookAt:=xlWhole) If Not ob Is Nothing Then sp = ob.Column If IsEmpty(.Cells(Z, sp)) Then .Cells(Z, sp) = Cells(i, 5) Else .Cells(Z, sp) = .Cells(Z, sp) & " " & Cells(i, 5) End If End If End If Next i End With Sheets("Tabelle2").Select End Sub
Anzeige
AW: einfachere Zuodnung ?
17.03.2010 21:54:17
fcs
Hallo Hans,
ein Ansatzt wäre einen Pivot-Tabellenbericht zu erstellen
Zeilenfelder:
- Straßenzuordnungsnummern
- Bezirkszugehörigkeit
- Straßenname
- Reinigungsklasse
Spaltenfelder:
- Objekt
- Reinigungstag
Datenfeld:
- Objekt - ist aber beliebig
Alle Zeilen und Spaltenfelleder so einrichten, dass keine Zwischenergebnisse angezeigt werden.
Dann erhälst du pro Strassenzuordnung eine Zeile. Per Formel dann ggf. die Wochentage pro Objekt zusammenbasteln. Sind aber im noch relativ mühsehlig zu erstellende Formeln.
Alternativ die Umgruppierung der Daten per Makro. Für das nachfolgende Makro müssen die Daten vor dem Makrostart nach der Strassenzuordnungsnummer sortiert sein.
Gruß
Franz
'Erstellt unter Excel 2007, Windows Vista
'fcs - 2010-03-17
Sub TabelleUmorganisieren()
Dim wksQuelle As Worksheet, WksZiel As Worksheet
Dim ZeileQ As Long, ZeileZ As Long
Dim StrassenZONr As Long, Bezirk$
Dim Strassenname$, Reinigungsklasse$
Dim sTageFahrbahn$, sTageRadweg$, sTageGehweg$
Set wksQuelle = Worksheets("Tabelle1") 'Basis-Datentabelle
'Ergebnis-Tabelle neu anlegen
Set WksZiel = Worksheets.Add(after:=Sheets(ActiveWorkbook.Sheets.Count))
ZeileZ = 1 'Zeile mit Spaltentiteln in Zieltabelle - ggf. anpassen
'Spaltentitel eintragen - ggf. anpassen
With WksZiel
.Cells(ZeileZ, 1).Value = "Strassenzuordnungsnummern"
.Cells(ZeileZ, 2).Value = "Bezirk"
.Cells(ZeileZ, 3).Value = "Straßenname"
.Cells(ZeileZ, 4).Value = "Reinigungsklasse"
.Cells(ZeileZ, 5).Value = "Objekt Fahrbahn"
.Cells(ZeileZ, 6).Value = "Objekt Gehweg"
.Cells(ZeileZ, 7).Value = "Objekt Radweg"
'Fenster unter SPaltentiteln fixieren
Cells(ZeileZ + 1, 1).Select
ActiveWindow.FreezePanes = True
End With
With wksQuelle
ZeileQ = 2 'Nummer der Zeile unter den Spaltentiteln in Basis-Tabelle - ggf. anpassen
'Aus 1. Datensatz Basisdaten einlesen
StrassenZONr = .Cells(ZeileQ, 1).Value
Bezirk = .Cells(ZeileQ, 2).Value
Strassenname = .Cells(ZeileQ, 3).Value
Reinigungsklasse = .Cells(ZeileQ, 4).Value
For ZeileQ = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Strassenzuordnungsnummer vergleichen
If StrassenZONr  .Cells(ZeileQ, 1) Then
'Werte in Zieltabelle eintragen
With WksZiel
ZeileZ = ZeileZ + 1
.Cells(ZeileZ, 1).Value = StrassenZONr
.Cells(ZeileZ, 2).Value = Bezirk
.Cells(ZeileZ, 3).Value = Strassenname
.Cells(ZeileZ, 4).Value = Reinigungsklasse
.Cells(ZeileZ, 5).Value = sTageFahrbahn
.Cells(ZeileZ, 6).Value = sTageGehweg
.Cells(ZeileZ, 7).Value = sTageRadweg
End With
'nächste Basisdaten einlesen
StrassenZONr = .Cells(ZeileQ, 1).Value
Bezirk = .Cells(ZeileQ, 2).Value
Strassenname = .Cells(ZeileQ, 3).Value
Reinigungsklasse = .Cells(ZeileQ, 4).Value
sTageFahrbahn = ""
sTageGehweg = ""
sTageRadweg = ""
End If
'Objekt prüfen und Reinigungstag einlesen
Select Case .Cells(ZeileQ, 6) 'Objekt prüfen
Case "Fahrbahn"
If sTageFahrbahn = "" Then
sTageFahrbahn = .Cells(ZeileQ, 5)
Else
sTageFahrbahn = sTageFahrbahn & ", " & .Cells(ZeileQ, 5)
End If
Case "Gehweg"
If sTageGehweg = "" Then
sTageGehweg = .Cells(ZeileQ, 5)
Else
sTageGehweg = sTageGehweg & ", " & .Cells(ZeileQ, 5)
End If
Case "Radweg"
If sTageRadweg = "" Then
sTageRadweg = .Cells(ZeileQ, 5)
Else
sTageRadweg = sTageRadweg & ", " & .Cells(ZeileQ, 5)
End If
End Select
Next ZeileQ
'Letzte Werte in Zieltabelle eintragen
With WksZiel
ZeileZ = ZeileZ + 1
.Cells(ZeileZ, 1).Value = StrassenZONr
.Cells(ZeileZ, 2).Value = Bezirk
.Cells(ZeileZ, 3).Value = Strassenname
.Cells(ZeileZ, 4).Value = Reinigungsklasse
.Cells(ZeileZ, 5).Value = sTageFahrbahn
.Cells(ZeileZ, 6).Value = sTageGehweg
.Cells(ZeileZ, 7).Value = sTageRadweg
.Columns.AutoFit
End With
End With
End Sub

Anzeige
AW: einfachere Zuodnung ?
17.03.2010 21:57:50
Ramses
Hallo
Würde dir diese Darstellung allenfalls auch reichen ?
Tabelle3

 ABCDEF
2      
3      
4StraßenzuordnungsnummernBezirkszugehörigkeitStraßennameReinigungstagReinigungsklasseObjekt
51234BedburgBerthastrMO  
6   MIEFahrbahn
7   DOEGehweg
84568HasselDüsseldorferstrDIDFahrbahn
9   DODFahrbahn
10     Gehweg
11   SADRadweg
128897EdingRiedwegMO  
13   MIHGehweg
14   FRHRadweg
15Gesamtergebnis     


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
https://www.herber.de/bbs/user/68619.xls
Dann wäre das nämlich ganz einfach über eine Pivottabelle zu lösen wie in der Mappe dargestellt
Gruss Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige