Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalte bedingt duplizieren
#1
Moin,

ich bearbeite ein Projekt, in dem mir eine Excel-Tabelle vorliegt, die Adressen und dazugehörige Attribute hat. Adressen bestehen ausschließlich aus Straße und Hausnummer.
Leider gibt es einige Fälle, bei denen die Hausnummer mit von-bis angegeben ist, also in diesem Format: XStraße 4-8.
Ich möchte gerne in diesem Fall 5 Zeilen bekommen, also XStraße 4, XStraße 5, XStraße 6, XStraße 7 und XStraße 8.
Für jede XStraße sollen alle Spaltenwerte von XStraße 4-8 erhalten bleiben. Im Idealfall wird noch in einer zusätzlichen Spalte markiert, dass es sich hier um künstlich erzeugten spalten handelt. 

Habt ihr Ideen wie ich das umsetzen kann? Die Tabelle hat ungefähr 10.000 Zeilen, das kann ich nicht manuell machen.
Antworten Top
#2
Hallo,

mit VBA sollte das recht gut zu machen sein, aber vermutlich ist der Aufwand zu hoch für ein Forum.

Im ersten Schritt sollte alle infrage kommenden Zeilen und jeweils die Anfangs- und Endzahl bestimmt werden.

Der Vorschlag wäre mit RegEx und dem Pattern

Code:
RegEx.Pattern = "\d{1,3}-\d{1,3}"

zu suchen.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • RichardRahl
Antworten Top
#3
Moin,

ein sehr ähnliches Thema hatten wir vor ein, zwei Monaten hier. Leider finde ich das ganze gerade nicht wieder und kann deshalb wenig Konkretes zur Lösungsfindung beitragen; Ich gebe allerdings noch zu bedenken, dass im Regelfall eine Hausnummernangabe von 4 bis 8 nur die geraden Hausnummern umfasst und deshalb in 4, 6 und 8 aufgeteilt werden müsste. Dabei muss natürlich berücksichtigt werden, dass das gleiche vorgehen an Plätzen häufig nicht zum Ziel führt.

Viele Grüße
derHöpp
[-] Folgende(r) 1 Nutzer sagt Danke an derHoepp für diesen Beitrag:
  • RichardRahl
Antworten Top
#4
Code:
Sub M_snb()
  redim sp(2000,4)

  with sheet1.cells(1).currentregion
    .autofilter 5, "*-*"
    for each it in .columns(1).specialcells(12)
      if it.row>1 then
        st=split(replace(it.offset(,4),"-"," ")
        for jj=val(st(1)) to val(st(2))
          sp(n,0)=it
          sp(n,1)=it.offset(,1)
          sp(n,2)=it.offset(,2)
          sp(n,3)=it.offset(,3)
          sp(n,4)=st (0) & " " & jj
          n=n+1
        next
      end if
    next
    .autofilter
    .offset(.rows.count).resize(n,5)=sp
  end with
end sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste