Avatar billede niraikolai Nybegynder
02. november 2011 - 15:22 Der er 4 kommentarer

Samle navne fra flere kolonner til 2 kolonner - Excel 2007

Samle navne fra flere kolonner til 2 kolonner - Excel 2007
Jeg har været i gang med at adskille en masse navne for at kunne Have fornavne og mellemnavne i 1 kolonne og kun 1 efternavn i den 2. kolonne. Alt dette er en del af en større makro lavet i VB.

Navnene er før noget bliver gjort adskilt af et mellemrum. Problemet er når jeg vil samle dem igen, da jeg ikke kan sig konkret hvor mange navne en person har i sit navn. Det er ikke noget problem at få alle navne på nær fornavn i 1 kolonne men når det er den anden vej rundt, bliver det svært.
Eks:
Nu

A         
Peter Griffin
Homer Jay Simpson
Stewart Gilligan Griffin Pewtersmith

Efter Adskillelse
A                B              C              D
Peter            Griffin
Homer            Jay            Simpson
Stewart          Gilligan      Griffin        Pewtersmith

Efter samling igen
A                                B
Peter                            Griffin       
Homer Jay                        Simpson
Stewart Gilligan Griffin        Pewtersmith

Pft Nicolai
Avatar billede stefanfuglsang Juniormester
02. november 2011 - 17:34 #1
Find positionen af det sidste mellemrum; split navnet i to kolonner ud fra denne position
s="Stewart Gilligan Griffin Pewtersmith"
position= InstrRev(s, " ")
s1=mid(s,1, position-1)
s2=mid(s,position+1,999)
Avatar billede niraikolai Nybegynder
02. november 2011 - 18:27 #2
er udgangspunktet her at navne ikke er opdelt endnu ? og kan denne laves så den tager hele kolonne A eksempelvis ? der er ca 300000 navne som skal opdeles :-)
Avatar billede stefanfuglsang Juniormester
02. november 2011 - 20:43 #3
Ovenstående viser ét eksempel, ud fra et ikke opdelt navn.
Navnet deles så s1="Stewart Gilligan Griffin" og s2="Pewtersmith"
Jeg har dog ikke afprøvet det.

Hvis du skal generalisere det, skal du altså for hver celle med navnet i udføre noget i stil med

s= cellens indhold

position= InstrRev(s, " ")
s1=mid(s,1, position-1)
s2=mid(s,position+1,999)

og skrive s1 og s2 i output-cellerne.

Bemærk at hvis der er blanktegn i slutningen af navne, skal disse fjernes før InstrRev kaldes.
Avatar billede finb Ekspert
03. november 2011 - 12:00 #4
læser med...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester