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

Datenwirrwar entschlüsseln

Datenwirrwar entschlüsseln
foresthome
Hallo alle zusammen,
ich habe eine Liste mit ca 500 Adressen, die alle in Spalte A stehen.
Ich möchte diese aufteilen in Spalten, habe aber das Problem, dass nicht alle Datensätze gleich sind. Auch die Leerzeilen sind verschieden und nicht jeder hat eine Mail Adresse oder Website. Auch sind die Namen bis zu 3 Zeilen lang.
Gibt es eine möglichkeit dieses Wirrwar mit VBa zu entschlüsseln. Es sind ca 4500 Zeilen.
Ich bin froh über jede Hilfe
Gruß Werner
https://www.herber.de/bbs/user/72572.xls

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datenwirrwar entschlüsseln
03.12.2010 19:57:45
silex1
Hallo Werner,
da die Daten nicht einheitlich sind, hier mal was mit Formeln. Allerdings muß dann noch etwas angehübscht werden und der Rechner darf auch keine lahme Gurke sein!
 ABCDEFGHIJKL
1   NameNamenszusatz 1Namenszusatz 2StraßePlz OrtTelFaxINTERNETMAIL
2Franz Bader Schotterwerk  Franz Bader Schotterwerk0Franz Bader SchotterwerkBundesstr. 31779868 FeldbergTel.: 07655 / 249Fax: 07655 / 140900
3Bundesstr. 317  0Bau-Union GmbH & Co.Vereinigte Schotterwerke KGFlözlinger Str. 3778658 ZimmernTel.: 0741 / 9287-0Fax: 0741 / 9287-20info@bau-union.comwww.bau-union.com
479868 FeldbergWAHR 0Jakob Bauer Söhne KGSchotterwerkSilcherstr. 173268 ErkenbrechtsweilerTel.: 07026 / 95006-0Fax: 07026 / 95006-30verwaltung@bauer-schotterwerk.dewww.bauer-schotterwerk.de
5Tel.: 07655 / 249  0Schotterwerk Blessing GmbH per:Uhl Kies- und Baustoffges.mbHVorlandstr. 177756 HausachTel.: 07831 / 7890Fax: 07831 / 7475info@uhl-beton.dewww.uhl-beton.de
6Fax: 07655 / 1409  0bmk SteinbruchbetriebeGmbH & Co. KGRobert-Bopp-Straße 274388 TalheimTel.: 07133 / 186-0Fax: 07133 / 6068info@bmk-Steinbruchbetriebe.comwww.bmk-Steinbruchbetriebe.com
7   www.bmk-Steinbruchbetriebe.com0Wilhelm Bohnert GmbH & Co. KGRuhesteinstr. 4177883 OttenhöfenTel.: 07842 / 947-126Fax: 07842 / 947-200info@wibo-ottenhoefen.dewww.wibo-ottenhoefen.de
8   0SchotterwerkBrugger GmbHSchillerstr. 978589 DürbheimTel.: 07424 / 2578Fax: 07424 / 501926schotter-brugger @t-online.deschotter-brugger@t-online.de
9   0Alfred Dörflinger GmbHGranit- und SchotterwerkAußerort Malsburg 1779429 Malsburg-Marzell 1Tel.: 07626 / 205Fax: 07626 / 6505Doerflinger.GmbH@t-online.de0
10   Klaus Reimold GmbHMuschelkalkschotterwerkTief-, Kanal- u. StraßenbauStreichenberger Str. 3075050 GemmingenTel.: 07267 / 9120-0Fax: 07267 / 9120-8000
11Bau-Union GmbH & Co.  #ZAHL!#ZAHL!#ZAHL!#ZAHL!#ZAHL!    
12Vereinigte Schotterwerke KG  #ZAHL!#ZAHL!#ZAHL!#ZAHL!#ZAHL!    

ZelleFormel
D2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)-4)
E2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)-3)
F2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)-2)
G2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)-1)
H2{=INDEX(A:A;KKLEINSTE(WENN(ISTZAHL(LINKS($A$1:$A$4500;5)*1);ZEILE($1:$4500));ZEILE(A1)))}
I2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)+SPALTE(A1))
J2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)+SPALTE(B1))
K2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)+SPALTE(C1))
L2=INDEX($A:$A;VERGLEICH($H2;$A$1:$A$4500;0)+SPALTE(D1))
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

VG René
Anzeige
AW: Datenwirrwar entschlüsseln
03.12.2010 21:05:50
foresthome
Hallo Rene,
hab die Formeln so in die Zellen geschrieben aber bei mir sieht das anders aus,
https://www.herber.de/bbs/user/72574.xls
sonst könnte ich damit leben.
Hab das neue Excel aus Office 2010. Kannst du mit die Formel kurz erklären?
Gruß Werner
AW: Datenwirrwar entschlüsseln
03.12.2010 22:42:01
silex1
Hallo Werner,
Du hast die Formeln etwas verhauen. Macht nix, hab ich mal geändert. Siehe Anhang.
Kurz erläutern wird nix, denn dies würde den Rahmen diese Forums sprengen! ;-)
Knackpunkt ist Spalte J, in die die Matrixformel gehören müsste. Hab ich schon mal gemacht und dann mittels kopieren und Inhalt einfügen (Werte) dort die speicherfressenden Formeln eliminiert.
Spalten K bis N laufen so fast perfekt. Handarbeit gibt es nur in den den Spalten D bis F. Hab mal Fehler mit rot angemalt. Sicher würde es mit VBA besser gehen, aber dazu bin ich zu doof!
https://www.herber.de/bbs/user/72577.xls
VG, Rene
Anzeige
AW: Datenwirrwar entschlüsseln
04.12.2010 07:18:38
foresthome
Dank an Erich und Rene,
probiers heute Nachmittag nach der Arbeit mal aus. Erster Eindruck seeeeehr gut.
Die Formel und was die bewirkt seh ich mir mal in meinem Excel Buch nach.
Aber auf die leichten Sachen kommt man meistens gar nicht weil wir immer zu kompliziert denken.
Erich, auch das VBA nehm ich mir zur Brust.
Wenn ich nicht klar komme Antworte ich noch mal, aber das sollte so passen.
Danke Werner
AW: Datenwirrwar entschlüsseln
04.12.2010 15:29:22
foresthome
Sorry bin doch nicht weiter gekommen.
Wie wird die Index Formel naach unten kopiert? bei mir kommt immer Fehler Zahl.
Das Macro1 bleibt auch immer bei "If Not IsNumeric(Left(Cells(zz + pTel - 1, 1), 5)) Then Stop ' PLZ ?" stehen und bei Macro 2 kommt irgen was mit außer Indexbereich. Bin ich wirklich so bl....?
Könnt Ihr mir weiterhelfen?
Gruß Werner
Anzeige
mal mit VBA
04.12.2010 01:04:47
Erich
Hi Werner,
versuchs mal damit:

Option Explicit
Sub Zerlege()
Dim lngZ As Long, zz As Long, nn As Long
Dim pTel As Long, mm As Long, arrE(), ee As Long
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
ReDim arrE(1 To 9, 1 To lngZ)
zz = 0
Do While zz  3 Then arrE(2, ee) = Cells(zz + 1, 1)          ' Zusatz1
If pTel > 4 Then arrE(3, ee) = Cells(zz + 2, 1)          ' Zusatz2
arrE(4, ee) = Cells(zz + pTel - 2, 1)                    ' Straße
arrE(5, ee) = Cells(zz + pTel - 1, 1)                    ' PLZ Ort
arrE(6, ee) = Cells(zz + pTel - 0, 1)                    ' Tel
If Left(Cells(zz + pTel + 1, 1), 4) = "Fax:" Then _
arrE(7, ee) = Cells(zz + pTel + 1, 1)              ' Fax
For mm = 2 To nn - pTel - 1
If Left(Cells(zz + pTel + mm, 1), 4) = "www." Then
arrE(8, ee) = Cells(zz + pTel + mm, 1)             ' Web
ElseIf InStr(Cells(zz + pTel + mm, 1), "@") > 0 Then
arrE(9, ee) = Cells(zz + pTel + mm, 1)             ' Mail
End If
Next mm
zz = zz + nn
Loop
ReDim Preserve arrE(1 To 9, 1 To ee)
Cells(2, 4).Resize(ee, 9) = Application.Transpose(arrE)
End Sub
In deiner Beispielmappe läuft das: https://www.herber.de/bbs/user/72578.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
noch mal VBA
04.12.2010 07:42:46
Erich
Hi,
das geht schneller und ist ein wenig sprechender:

Option Explicit
Sub Zerlege2()
Dim lngZ As Long, arrQ, zAnf As Long, zEnd As Long
Dim zTel As Long, zz As Long, arrE(), ee As Long
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
arrQ = Application.Transpose(Cells(1, 1).Resize(lngZ + 1))
ReDim arrE(1 To 9, 1 To lngZ)
zAnf = 1
Do While zAnf  0 Then
arrE(9, ee) = arrQ(zz)                          ' Mail
End If
Next zz
zAnf = zEnd + 2
Loop
ReDim Preserve arrE(1 To 9, 1 To ee)
Cells(2, 4).Resize(ee, 9) = Application.Transpose(arrE)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: noch mal VBA
04.12.2010 15:55:27
foresthome
Sorry bin doch nicht weiter gekommen.
Wie wird die Index Formel naach unten kopiert? bei mir kommt immer Fehler Zahl.
Das Macro1 bleibt auch immer bei "If Not IsNumeric(Left(Cells(zz + pTel - 1, 1), 5)) Then Stop ' PLZ ?" stehen und bei Macro 2 kommt irgen was mit außer Indexbereich. Bin ich wirklich so bl....?
Könnt Ihr mir weiterhelfen?
Gruß Werner
AW: brings nicht hin
04.12.2010 15:57:08
foresthome
Sorry bin doch nicht weiter gekommen.
Wie wird die Index Formel naach unten kopiert? bei mir kommt immer Fehler Zahl.
Das Macro1 bleibt auch immer bei "If Not IsNumeric(Left(Cells(zz + pTel - 1, 1), 5)) Then Stop ' PLZ ?" stehen und bei Macro 2 kommt irgen was mit außer Indexbereich. Bin ich wirklich so bl....?
Könnt Ihr mir weiterhelfen?
Gruß Werner
Anzeige
Fehleranalyse?
04.12.2010 17:39:05
Erich
Hi Werner,
zu den Formeln kann ich jetzt nichts sagen - damit habe ich mich nicht beschäftigt.
Zu Makro 'Zerlege':
Das Makro stoppt, wenn es in einer Zeilengruppe keine Zeile gibt, die mit "Tel.:" beginnt,
oder wenn die Zelle über der Telefonnummer nic ht mit einer PLZ beginnt.
Letzteres ist bei deinen Daten wohl der Fall.
Wenn das Makro bei Stop angehaltgen hat, kannst du dir leicht die Werte der Variablen ansehen -
du brauchst nur mit den Mauszeiger über einen Variablennamen zu stellen.
(Alternative: Du kannst dir auch z. B. das Lokalfester ansehen.)
Wenn du z. B. den Cursor im Makro auf zz stellst, verrät dir VBA die Zeilennummer, hinter der der Fehler auftritt.
Damit kannst du in der Tabelle leicht nachsehen, was an der Stelle 'ungewöhnlich' ist.
Zu Makro 'Zerlege2':
Deine Fehlerbeschreibung "bei Macro 2 kommt irgen was mit außer Indexbereich" finde ich doch etwas zu sparsam.
Wie wäre es, wenn du uns
- Fehlernummer
- Text des Fehlerhinweises
- Maktrozeile, in der der Fehler auftritt
mitteilst?
Dazu schau bitte auch mal in die Forums-FAQ:
Zitat:

Fehlerbeschreibungen
Beschränke Dich nicht auf die lapidare Feststellung Excel meldet Fehler;
gib die exakte Fehlermeldung an.
Stoppt Excel einen VBA-Code, gib die exakte Zeile des Programmabbruchs an.
Worauf kann man sich beim "Entwirren" denn verlassen?
Beide Makros gehen davon aus, dass es immer eine Zeile mit "Tel.:" gibt,
und dass direkt über dieser Zelle eine PLZ (mit Ort) steht. In deinen Beispieldaten war das immer so.
Wenn dem nicht so ist - was stimmt für alle deine Daten? Worauf kann man bauen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Fehleranalyse?
04.12.2010 19:31:00
foresthome
Vielen Dank für die Info,
hab jetzt alles so angepasst, wie beschrieben, kann eben nur VBA mit Recorder.
Hab die Tel Zeilen angepasst und es läuft.
Danke auch an Rene, aber ich zieh die VBA Lösung vor, da die mehr Treffer über die Tel-Nummer bringt.
Die Formel Lösung ist nicht ohne aber wenn es 2 Werke mit der gleichen PLZ gibt, so hab ich nur ein Werk pro Ort.
Die Tel-Nr.: Lösung mit VBA ist dann doch genauer.
Ich bedanke mich aufs herzlichste bei euch beiden.
DANKE Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige