Visa fullständig version : Excel! Söka teckensträng från höger
Jag har problem.
Ponera att man har en lista med adresser där gata, postnummer och ort alla står i samma cell. Man vill sedan dela upp detta lite snyggt i 3 olika celler.
Exempel: Vattugatan 36 22590 Södra Sandby
exempel2: Stora kungsgatan 36b 44590 Karlskrona
Det man vill göra är alltså att söka från höger, hitta postitionen första SIFFRAN från höger. Detta borde även vara den sista siffran i cellen eftersom orter inte innehåller siffron. Eller om man kan söka från vänster och hitta en serie av 5 siffror i följd, vilket inte kan vara något annat än postnummer.
Därefter kan man extexta() eller HÖGER() för att få ut postnummer, ort och gata.
Förslag?
Reverse (http://www.ozgrid.com/forum/showthread.php?t=36398) sedan Right verkar det som.
Reverse vänder på hela strängen? Kan iofs vara användbart. Men Right är väl samma som höger(), och returnerar ett bestämt antal tecken från höger. Problemet är ju att veta hur många som ska returneras.
Reverse, find, left. Menade jag. Fast ja, om du inte vet hur många kan det bli klurigt.
Postat via en mobil enhet
Jens.Andersson
2012-04-18, 10:17
Vet inte om det funkar men en tanke:
Reversa texten så du har "<ort> <postnummer> <gata>", det gör ingenting om texten är baklänges
Använd =extext(cell, 1, Search(" ", cell, 1)) får att få ut orten
Jag kallar nu "Search(" ", cell, 1)" för x för att göra det mindre plottrigt
Använd =extext(cell, x, Search(" ", cell, x+1)) får att få ut postnummret
Och för att få ut gatan: extext(<icke reverserade strängen>, 1, <längden av strängen> - <Search(" ", cell, x+1) på den reverserade strängen>)
Vet inte om det funkar, är inte så haj på excel, bara en tanke.
Problemet där är att man tar information fram till första mellanslaget, om orten innehållet ett mallanslag blir första delen i orten (eftersom man reverserat) postnummer...
Men jag tror jag kan lösa det genom att vända på strängen, sen kolla om tecknet efter första mellanslaget är numeriskt, annars ta 5 siffror efter nästa mellanslag.
Mitt problem just nu är dock VB. Det funkar jättebra att göra Reversefunktionen med infoga modul. Så länge arket är öppet går den att använda i andra ark om jag bara hänvisar till arket i vilket jag skapade formeln . När jag sedan stänger arket med formeln och öppnar igen får jag bara #NAMN? Allt ser rätt ut under Moduler men av någon anledning har den glömt bort hur man använder min formel. Vad kan vara fel?
NVM, hade inaktiverat macron...
Jag tog den långa vägen kan man säga, om någon är intresserad av lösningen. Gjorde först VB-scriptet som vänder på en cell, reverse(), och började sedan leta efter en eller två mellanslag och kolla om efterföljande var en siffra. Därefter var det bara att extexta och reversera igen.
Exemplet kan vara:
jägarstigen 4 12345 södra Lund
jägarstigen 4 b 12345 Lund
Postnumret:
=OM(ÄRFEL(TEXTNUM(EXTEXT(formlerVB.xlsm!Reverse(B2 4);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1;1))>0)=FALSKT;formlerVB.xlsm!Reverse(EXTEXT(formlerVB. xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1;5));formlerVB.xlsm !Reverse(EXTEXT(formlerVB.xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1)+1;5)))
Orten:
=OM(ÄRFEL(TEXTNUM(EXTEXT(formlerVB.xlsm!Reverse(B2 4);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1;1))>0)=FALSKT;formlerVB.xlsm!Reverse(VÄNSTER(formlerVB .xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))));formlerVB.xlsm!Rev erse(EXTEXT(formlerVB.xlsm!Reverse(B24);1;HITTA(" ";formlerVB.xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1))))
Gatuadress:
=OM(ÄRFEL(TEXTNUM(EXTEXT(formlerVB.xlsm!Reverse(B2 4);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1;1))>0)=FALSKT;formlerVB.xlsm!Reverse(EXTEXT(formlerVB. xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))+6;25));formlerVB.xls m!Reverse(EXTEXT(formlerVB.xlsm!Reverse(B24);HITTA (" ";formlerVB.xlsm!Reverse(B24);HITTA(" ";formlerVB.xlsm!Reverse(B24))+1)+6;25)))
The_RobRoy
2012-04-18, 15:26
Text to columns --> separera på mellanslag.
Text to columns --> separera på mellanslag.
Eftersom det är olika antal mellanslag i cellerna kommer inte alla postnummer hamna i samma kolumn om man gör så.
vBulletin® v3.8.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.