Supportnet / Forum / Tabellenkalkulation
Daten sortieren
Frage
Hallo zusammen,
ich habe folgendes Problem: Eine Excel-Tabelle enthält in der 1. Zeile über die Spalten A1 bis F1 Daten wie Firmenname, Straße, Hausnummer, PLZ und Ort mit entsprechenden Spaltenüberschriften.
Die 2. Zeile und teilweise auch die 3. und 4. Zeile enthält (auch wiederum über die Spalten A1 bis F1 verteilt) Vorname, Name, Geburtsdatum und andere Angaben zu Inhaber(n), Geschäftsfüher(n) des Datensatzes aus der 1. Zeile, jedoch selbstverständlich ohne eigene Spaltenüberschriften.
Dieses Schema setzt sich über mehrere hundert Zeilen fort.
Wenn ich nun hergehe und die Daten nach beispielsweise PLZ sortieren möchten, werden nur die reinen Firmendatensätze sortiert. Die dazugehörenden Daten der Inhaber/GF erscheinen am Ende der sortierten Tabelle.
Hierdurch geht also leider der Zusammenhang der Daten FIrma/Inhaber o. GF verloren.
Hat jemand hierfür eine Lösung? Ich wäre sehr dankbar.
Mfg
Bruecki
Antwort 1 von Bruecki
Los, ihr Excel-Freaks ;-)
Antwort 2 von Bruecki
Hat keiner eine Idee?
Antwort 3 von Bruecki
Keiner? Schade....
Antwort 4 von schnallgonz
Hallo Bruecki,
da würde ich mal sagen:
schlechte Tabellenstruktur, nicht datenbanktauglich, wenn Felder nicht in allen Datensätzen angesprochen werden.
Entweder alle Angaben zu einer Firma in eine Zeile setzen oder
zumindest die Sortierkriterien wie z.B. Plz und Firmenname als Felder bei den Personen wiederholen.
Ist einmal händische Arbeit angesagt, dann funzt aber das Sortieren.
Andere Idee habe ich leider nicht. Für´s Feldergänzen könnte man sich eine Makrounterstützung basteln; ist aber die Frage, was schneller geht: Code zaubern oder manuell kopieren.
Noch ´ne Bemerkung:
drei Erinnerungen von Dir innerhalb von 17 Stunden beschleunigen die Lösung Deines Problems glaub´ ich nicht.
MfG
schnallgonz
da würde ich mal sagen:
schlechte Tabellenstruktur, nicht datenbanktauglich, wenn Felder nicht in allen Datensätzen angesprochen werden.
Entweder alle Angaben zu einer Firma in eine Zeile setzen oder
zumindest die Sortierkriterien wie z.B. Plz und Firmenname als Felder bei den Personen wiederholen.
Ist einmal händische Arbeit angesagt, dann funzt aber das Sortieren.
Andere Idee habe ich leider nicht. Für´s Feldergänzen könnte man sich eine Makrounterstützung basteln; ist aber die Frage, was schneller geht: Code zaubern oder manuell kopieren.
Noch ´ne Bemerkung:
drei Erinnerungen von Dir innerhalb von 17 Stunden beschleunigen die Lösung Deines Problems glaub´ ich nicht.
MfG
schnallgonz
Antwort 5 von Gummikuh
Hallo Bruecki,
wie schnallgonz schon gesagt hat, da musst Du wohl (oder übel) Deine Tabelle mal umstrukturieren.
In aller Regel macht man es so, das 1 Datensatz = 1 Zeile ist, und alles was an eigenen Infos je Datensatz gebraucht wird, muss halt NEBENEINANDER in einer Zeile stehen. Ggf. kannst Du ja die Zellen vergrößern und mehrzeilig je Zelle Infos reinpacken.
Gruss
Micha
wie schnallgonz schon gesagt hat, da musst Du wohl (oder übel) Deine Tabelle mal umstrukturieren.
In aller Regel macht man es so, das 1 Datensatz = 1 Zeile ist, und alles was an eigenen Infos je Datensatz gebraucht wird, muss halt NEBENEINANDER in einer Zeile stehen. Ggf. kannst Du ja die Zellen vergrößern und mehrzeilig je Zelle Infos reinpacken.
Gruss
Micha
Antwort 6 von Bruecki
Danke für die Infos. Schade, dass es anscheinend keine einfacherere Lösung als den manuellen Aufwand gibt. Die Excel-Tabelle habe übrigens nicht ich erstellt ;-)
@schnallgonz: Nach 3 Erinnerungen hat´s doch geklappt *g*
Mfg
Bruecki
@schnallgonz: Nach 3 Erinnerungen hat´s doch geklappt *g*
Mfg
Bruecki
Antwort 7 von schnallgonz
Hi Bruecki,
für das Feldergänzen könnte man eine Schleife basteln, die automatisch den Wert der darüberliegenden Zelle übernimmt, wenn die Zelle selbst leer ist.
B.:
Plz in A3=12345, Zellen A4 bis A7 leer, in A8 = 54321
dann soll das Makro A4:A7 mit "12345 füllen usw.
Damit könnte man ratzfatz die fehlenden Felder füllen lassen, falls Du nicht die zeilenbezogene Variante wählst.
Mfg
schnallgonz
für das Feldergänzen könnte man eine Schleife basteln, die automatisch den Wert der darüberliegenden Zelle übernimmt, wenn die Zelle selbst leer ist.
B.:
Plz in A3=12345, Zellen A4 bis A7 leer, in A8 = 54321
dann soll das Makro A4:A7 mit "12345 füllen usw.
Damit könnte man ratzfatz die fehlenden Felder füllen lassen, falls Du nicht die zeilenbezogene Variante wählst.
Sub FelderFuellen()
Dim Zelle As Range
´zu füllende Spalte erst markieren!! dann Makro starten
For Each Zelle In Selection
If ActiveCell.Value = 0 Then
ActiveCell.Offset(-1, 0).Copy
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
Else:
ActiveCell.Offset(1, 0).Select
End If
Next Zelle
End Sub
Mfg
schnallgonz
Antwort 8 von nostalgiker6
Wenn ich das richtig verstehe, dann fängt jede Datensatz-Gruppe mit einer Überschrift-Zeile an. Damit lässt sich also der 1. Satz jeder Gruppe identifizieren: Es ist der erste NACH einem Satz der (z.B.) mit "Strasse" im ersten Feld beginnt. Soweit richtig?
Dann liesse sich das mit einer "klassischen" Programmiersprache über den Zwischenschritt csv-Export wahrscheinlich recht einfach lösen - einfach die Folgenden Sätze an der ersten dranhängen (concatenation) und bei neuer Überschrift den kompletten Satz in eine neue Datei schreiben. Zum Schluss die neue csv-Datei mit Excel aufrufen und als xls speichern - fertig!
Mit VBA müsste so etwas eigentlich auch gehen.
Gruss R.A.
Dann liesse sich das mit einer "klassischen" Programmiersprache über den Zwischenschritt csv-Export wahrscheinlich recht einfach lösen - einfach die Folgenden Sätze an der ersten dranhängen (concatenation) und bei neuer Überschrift den kompletten Satz in eine neue Datei schreiben. Zum Schluss die neue csv-Datei mit Excel aufrufen und als xls speichern - fertig!
Mit VBA müsste so etwas eigentlich auch gehen.
Gruss R.A.
Antwort 9 von schnallgonz
Salvete
ich glaube, falsch verstanden, denn
Ich setzte weiter auf "Felder ergänzen" mit VBA-Hilfe s. Antwort 7
MfG
schnallgonz
Zitat:
Wenn ich das richtig verstehe, dann fängt jede Datensatz-Gruppe mit einer Überschrift-Zeile an.
Wenn ich das richtig verstehe, dann fängt jede Datensatz-Gruppe mit einer Überschrift-Zeile an.
ich glaube, falsch verstanden, denn
Zitat:
jedoch selbstverständlich ohne eigene Spaltenüberschriften.
jedoch selbstverständlich ohne eigene Spaltenüberschriften.
Ich setzte weiter auf "Felder ergänzen" mit VBA-Hilfe s. Antwort 7
MfG
schnallgonz
Antwort 10 von Aliba
Hi,
folgende Voraussetzungen müssen erfüllt sein:
1.) Daten in der Ursprungstabelle beginnen in A1
2.) Jeder Datensatz umfasst 4 Zeilen (ob gefüllt oder nicht , sei ersteinmal egal). ALso erster Datensatz beginnt in Zeile1, nächster Datenblock in Zeile 5, nächster Datenblock in Zeile 9 usw..)
3.) Jedes Feld der Datenblöcke hat auch immer den selben Bezeichnungsinhalt (Also 1.Datenfeld des Blockes enthält Firmennamen, der Firmeninhaber steht immer im ersten Datenfeld der 2. Datenblockzeile usw..)
Dann folgende Formel in eine beliebige Zelle eines neuen Tabellenblattes:
=INDEX(Tabelle1!$A$1:$F$1000;ZEILE(A1)*4-3+GANZZAHL((SPALTE(A1)-1)/6);REST(SPALTE(A1)+5;6)+1)
Diese Formel weitere 23 Zellen nach links und soweit benötigt nach unten kopieren/ziehen.
Tabelle1 muss durch den tatsächlichen Tabellenblattnamen der Quelltabelle ersetzt werden.
CU Aliba
folgende Voraussetzungen müssen erfüllt sein:
1.) Daten in der Ursprungstabelle beginnen in A1
2.) Jeder Datensatz umfasst 4 Zeilen (ob gefüllt oder nicht , sei ersteinmal egal). ALso erster Datensatz beginnt in Zeile1, nächster Datenblock in Zeile 5, nächster Datenblock in Zeile 9 usw..)
3.) Jedes Feld der Datenblöcke hat auch immer den selben Bezeichnungsinhalt (Also 1.Datenfeld des Blockes enthält Firmennamen, der Firmeninhaber steht immer im ersten Datenfeld der 2. Datenblockzeile usw..)
Dann folgende Formel in eine beliebige Zelle eines neuen Tabellenblattes:
=INDEX(Tabelle1!$A$1:$F$1000;ZEILE(A1)*4-3+GANZZAHL((SPALTE(A1)-1)/6);REST(SPALTE(A1)+5;6)+1)
Diese Formel weitere 23 Zellen nach links und soweit benötigt nach unten kopieren/ziehen.
Tabelle1 muss durch den tatsächlichen Tabellenblattnamen der Quelltabelle ersetzt werden.
CU Aliba
Antwort 11 von nostalgiker6
Ja, sorry - habe wohl ungenau gelesen (habe anden: Erste Zeile der Datensatzgruppe).
Aber es sollte doch trotzdem möglich sein, den Beginn einer solchen Gruppe zu erkennen (z.B. dürften die ersten 5 Stellen des Feldes PLZ/Ort 5-stellig numerisch sein) - dann funktioniert es genauso (bzw. analog) wie beschrieben.
Aber es sollte doch trotzdem möglich sein, den Beginn einer solchen Gruppe zu erkennen (z.B. dürften die ersten 5 Stellen des Feldes PLZ/Ort 5-stellig numerisch sein) - dann funktioniert es genauso (bzw. analog) wie beschrieben.
Antwort 12 von Bbruecki
@ alle: Danke für eure Hilfe und Bemühungen. Da ich schnell eine Lösung braucht und unter Zeitdruck stand, habe ich manuell die Tabelle bereinigt.
Beim nächsten Mal heißt es: pro Zeile ein kompletter Datensatz!
Mfg
Bruecki
Beim nächsten Mal heißt es: pro Zeile ein kompletter Datensatz!
Mfg
Bruecki
Antwort 13 von nachdenker
Warum in Excel und nicht mit Office Access??
Ich bearbeite meine Tabellen mit ca. 1100 Mitgliedern alle mit Access,man kann auch von Excel in Access kopieren
Ich bearbeite meine Tabellen mit ca. 1100 Mitgliedern alle mit Access,man kann auch von Excel in Access kopieren

