[Excel] von senkrecht nach wagerecht bei ungleichen Datensätzen

Maastaaa

Troddl
ID: 22745
L
20 April 2006
7.511
1.004
Ich habe eine Excelltabelle, die wie folgt aufgebaut ist (ja, senkrecht):

(A1) NAME
(A2) TELEFON
(A3) MAIL
(A4)
WWW
(A5) -leere Zelle-

(A6) STRAßE
(A7) PLZ/ORT
(A8) LAND

(A9) -leere Zelle-

Das ganze 8k Zeilen lang...

Ich hätte die natürlich nun gerne vernünftig sortiert, sprich wagerecht.
An sich wäre das, vom einfachen Weg her ja kein Problem in dem ich in Spalte F mit der "neuen" Tabelle anfange und dann z.B. in Zelle F1 auf A1 verweise, in Zelle G1 auf A2, usw... einmal für einen Adressensatz machen und dann runterkopieren.

Problem ist jedoch, das nicht immer eine Telefonnummer hinterlegt ist. Wenn keine Nummer hinterlegt ist, wurde die Zeile jedoch nicht frei gelassen, sondern einfach ausgelassen. Gibt auch Datensätze wo Telefon und Mail fehlen. Oder mehr.

Sprich dann hat ein Adressensatz auf einmal keine 9 Zeilen mehr, sondern nur noch 8 oder weniger. Dann komme ich mit der o.g. Idee natürlich in Bedrängnis.

Hat von euch einer eine Idee, wie ich das am sinnvollsten löse?
 
Komische Sache, normalerweise müsste die Zeile als leer ausgegeben werden oder als Fehler. Aber du könntest es mal meiner Anweisung probieren

WENN('TAb1'.A4="";"";'TAb1'.A4), kp ob die Syntax so richtig is. Der Sinn is aber: wenn du prüfst ob in der Zelle leer ist und dann ein leeres Feld einfügen lässt, dann dürfte er auch nicht automatisch weiter rutschen.. das könntest du natürlich mit jedem Feld machen um das auch runterziehen zu können
 
Problem ist jedoch, das nicht immer eine Telefonnummer hinterlegt ist. Wenn keine Nummer hinterlegt ist, wurde die Zeile jedoch nicht frei gelassen, sondern einfach ausgelassen. Gibt auch Datensätze wo Telefon und Mail fehlen. Oder mehr.
Gibt es ein Kriterium, an dem du erkennen kannst, ob bzw. wo eine Zeile fehlt?
Sprich, steht da
Code:
Name=Max Mustermann
Telefon=09876-54321
Mail=m.mustermann@example.com
www=https://www.example.com

Strasse=Musterstraße 7
PLZ/Ort=12345 Musterstadt
Land=Musterland

Name=Monika Musterfrau
Mail=m.musterfrau@example.org

Strasse=Musterweg 13
PLZ/Ort=54321 Musterhausen
Land=Musterland
oder einfach nur
Code:
Max Mustermann
09876-54321
m.mustermann@example.com
https://www.example.com

Musterstraße 7
12345 Musterstadt
Musterland

Monika Musterfrau
m.musterfrau@example.org

Musterweg 13
54321 Musterhausen
Musterland
Irgendwie musst du ja erkennen können, welche Zeile was bedeutet...
Denn woher weißt du sonst, ob "21 Jump Street" die Straße/Hausnummer oder vielleicht doch schon PLZ/Ort ist?
 
In den neuen Office Versionen (spät. 2010) kann man beim Kopieren & Einfügen "transponiert einfügen" wählen, damit würde sich das automatisch drehen. Das würde aber deine fehlenden Leerzellen nicht lösen. Nur da seh ich eh keine Chance das per Code schnell zu machen, also ich würds kopieren und dann schnell nachbearbeiten.
 
Zuletzt bearbeitet:
Irgendwie musst du ja erkennen können, welche Zeile was bedeutet...
Denn woher weißt du sonst, ob "21 Jump Street" die Straße/Hausnummer oder vielleicht doch schon PLZ/Ort ist?
Momentan erkennt das nur mein Kopf, die Daten sind alle in Spalte A eingefügt. Sprich, so wie in deinem zweiten Beispiel. Wie das zustande gekommen ist? Keine Ahnung. Ist eine alte Datei, die wohl irgendwann irgendwer mal so abgespeichert hat. Sieht mir irgendwie nach einem stumpfen c&p von einer Internetseite aus.
 
Gibt es denn irgendwas, womit du eindeutig erkennst, ob ein neuer Datensatz beginnt? Dann könnte man mit einem Makro die Spalte Zeile für zeile durchlaufen und die Daten übertragen.

Gruss
Marty
 
Ach jetzt hab ichs erst kapiert.. bescheuerte Art Daten zu speichern 8O.

So wie Marty das fragt: Oben in deinem "Beispiel" stehen immer Leerzeilen drin, sind davon für jeden Datansatz auf jeden Fall zwei vorhanden?
 
Ein neuer Datensatz beginnt quasi nach jeder 2. leeren Zeile. Bringt mir das was? Ich bin nicht so der Excel-Pro :-?
 
du lässt vorne jeweils in 9er schritten hochzählen (also neue Mappe)... und lässt dann die Zeilen (mit dem Befehl) INDIREKT zu der 1. Zeile hochzählen. Habs mal gemacht, allerdings in OpenOffice.. vllt hilfts dir ja trotzdem.

Hier der Link: https://quark007.de/Adressen sortieren.ods

Ich muss aber noch anmerken, dass diese "INDIREKT" funktion recht rechenintensiv ist und bei 8k Einträgen abstürzen könnte. Dann müsste man die eventuell in mehreren Teilen bearbeiten. Probier es einfach mal aus.. viel Arbeit ist es nicht
 
Zuletzt bearbeitet:
Ein neuer Datensatz beginnt quasi nach jeder 2. leeren Zeile. Bringt mir das was? Ich bin nicht so der Excel-Pro :-?

Ja, Leerzeilen sind recht einfach zu erkennen, größere Kopfschmerzen wirst du allerdings mit den nicht eindeutig zu erkennenden fehlenden Einträgen bekommen.

Das Problem dabei ist, dass dein Kopf das eben relativ gut erkennen kann, was da grad steht, für Excel ist Text erst einmal nur Text, egal ob Telefonnummer oder Emailadresse. D.h. du wirst nicht drum herumkommen, dein Excel ungefähr auf den Stand von deinem Kopf zu bringen, indem du für jedes Feld ein Pattern anlegst, durch die er die Felder jeweils erkennen kann. Eine Möglichkeit wäre zB RegEx, lassen sich recht einfach per Makro einbinden.

Ein guter Link wäre zB https://www.vbforums.com/showthread.php?t=480272
in einer ruhigen Minute kann ich mich auch mal dransetzen.

Bei Regex kommt es dann halt drauf an, wie gut deine Daten gepflegt sind. Wenn die Telefonnummer einmal mit Bindestrich und ein anderes Mal mit Schrägstrich gespeichert werden, oder bei der Webadresse öfter mal das http fehlt, dann kannst du dich eigentlich gleich schonmal damit anfreunden, deine Tabelle abzutippen.
 
du lässt vorne jeweils in 9er schritten hochzählen (also neue Mappe)... und lässt dann die Zeilen (mit dem Befehl) INDIREKT zu der 1. Zeile hochzählen. Habs mal gemacht, allerdings in OpenOffice.. vllt hilfts dir ja trotzdem.
Das Problem ist leider, dass nicht jeder Datensatz 9 Zeilen lang ist, sondern auch mal 8. Wenn ich dann alle Felder zähle, habe ich ab Punkt X 2 Datensätze vermischt. :(

@Herm: Wenn ich die im groben uind ganzen vorsortiert habe, ist das schon mal ganz gut.
Muss der Prakti halt weiter sortieren. :evil: