Osoite kahdelle sarakkeelle

Minulla on osoitteita yhdellä sarakkeella (katuosoite postitoimipaikka). Ne pitäisi saada eroteltua niin, että yhdellä sarakkeella olisi katuosoite ja postitoimipaikka toisella.
Ongelmana on, että katuosoitteet ja ostitoimipaikat ovat eri pituisia joten niiden käsittely pituuden mukaan ei onnistu. Tai ainakaan minä en osaa.
Osaisiko joku neuvoa noviisia?
6568
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Klikkaa koko katuosoite postitoimipaikka pystysarake aktiiviseksi
Klikkaa teksti sarakkeisiin
Kiinteä leveys ( postinumerot samanpituisia suomessa )
Voit pystyssäolevan nuuolen avulla päättää mistä kohdasta solu jaetaan
Muista valita kaikki solut tekstiksi ettei postinumeroista katoa etunollat

Äänestä
  • Voipi olla tekemätön paikka, jos osoite on esim:
    "Urho Kekkosenkatu 155 A 42 65380 Vanha Vaasa" ilman pilkkuja tai muita erottimia. Välilyöntejä on liikaa, jotta teksti sarakkeisiin pystyisi löytämään postinumeron, mistä taas pääsisi palastelemaan osoiterimpsun kolmeen sarakeeseen.
    Ihminen näkee katkaisukohdat, mutta excel ei ilman Kunden koodia...

    Äänestä

"Ihminen näkee katkaisukohdat, mutta excel ei ilman Kunden koodia..."
;-)

osoitteet nyt C1:Cxx ja purkaa katuosoitteen D- sarakkeeseen ja postitoimipaikan numeroineen E -sarakkeeseen

moduuliin...

Sub PuraOsoitteet()
Dim i As Long
Dim Postinumero As Integer
Dim solu As Range
Dim vika As Long
vika = Range("C65536").End(xlUp).Row
For Each solu In Range("C1:C" & vika)
For i = Len(solu) To 1 Step -1
If IsNumeric(Mid(solu, i, 1)) Then
Postinumero = Postinumero 1
End If
If Postinumero = 5 Then
solu.Offset(0, 1) = Left(solu, i - 1)
solu.Offset(0, 2) = Mid(solu, i)
Exit For
End If
Next
Postinumero = 0
Next
End Sub

Keep EXCELing
@Kunde

Äänestä
  • Miten tuota koodia pitää muuttaa, että se erottaa postinumero ja postitoimipaikan yhdestä solusta 2 kahteen soluun? Arvojen välillä on välilyönti (00100 Helsinki).

    Kiitos!

    Äänestä

  • Sebas kirjoitti:

    Miten tuota koodia pitää muuttaa, että se erottaa postinumero ja postitoimipaikan yhdestä solusta 2 kahteen soluun? Arvojen välillä on välilyönti (00100 Helsinki).

    Kiitos!

    Sub PuraOsoitteet()
    Dim i As Long
    Dim Postinumero As Integer
    Dim solu As Range
    Dim vika As Long
    vika = Range("C65536").End(xlUp).Row
    For Each solu In Range("C1:C" & vika)
    For i = Len(solu) To 1 Step -1
    If IsNumeric(Mid(solu, i, 1)) Then
    Postinumero = Postinumero 1
    End If
    If Postinumero = 5 Then
    solu.Offset(0, 1) = Left(solu, i - 1)
    solu.Offset(0, 2).NumberFormat = "@"
    solu.Offset(0, 2) = Mid(solu, i, 5)
    solu.Offset(0, 3) = Mid(solu, i 6)
    Exit For
    End If
    Next
    Postinumero = 0
    Next
    End Sub

    Äänestä

Kiitos vastauksesta!

Sain toimimaan myös Split() -funktiolla:

Sub PuraOsoitteet()

erotus= Split(Range("C1").Value, " ")
postinumero= erotus(0)
postitoimipaikka = erotus(1)
Cells(1, 4) = postinumero
Cells(1, 5) = postitoimipaikka

End Sub

Äänestä

Kommentoi aloitusta


bibelot kirjoitti:

Minulla on osoitteita yhdellä sarakkeella (katuosoite postitoimipaikka). Ne pitäisi saada eroteltua niin, että yhdellä sarakkeella olisi katuosoite ja postitoimipaikka toisella.
Ongelmana on, että katuosoitteet ja ostitoimipaikat ovat eri pituisia joten niiden käsittely pituuden mukaan ei onnistu. Tai ainakaan minä en osaa.
Osaisiko joku neuvoa noviisia?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu