PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelSortera information i kolumner/skapa ett registerSortera information i kolumner/skapa ett register
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-10-21 18:16
 
Hej, Har en stor lista med personuppgifter som jag skulle vilja ha hjälp med att strukturera upp med hjälp av Excel (2003). Som det ser ut just nu så har varje person 3 rader: 5. Exempel Exempelsson Exempelvägen 1 A, 111 11 Exempelstaden Fyller 20 år om 72 dagar, född den 1 januari 1993 6. Exempel2 Exempel2sson Exempelvägen 2 A, 111 11 Exempelstaden Fyller 20 år om 73 dagar, född den 2 januari 1993 Och så vidare med väldigt många personer. Jag skulle vilja ha lite tips på hur excel kan göra det mesta av städjobbet åt mig. Målet är att få all information i 5 olika kolumner enligt nedan: 19930101 - Exempel Exempelsson - Exempelvägen 1 A - 111 11 - Exempelstaden Alltså: 1. Siffran framför namnet måste bort, den är irrelevant 2. All information om födelsedag mm ska omformateras till första 6 siffror i personnumret 3. Personnummer, Namn, Adress, Postnummer, Stad ska alla ligga i varsin kolumn Är det någon som vet om detta är möjligt och kan hjälpa mig iaf med någon av utmaningarna?
Nytt inlägg
 2012-10-21 18:21
 
Ok provar igen...

Hej,

Har en stor lista med personuppgifter som jag skulle vilja ha hjälp med att strukturera upp med hjälp av Excel (2003). Som det ser ut just nu så har varje person 3 rader:

5. Exempel Exempelsson
Exempelvägen 1 A, 111 11 Exempelstaden
Fyller 20 år om 72 dagar, född den 1 januari 1993

6. Exempel2 Exempel2sson
Exempelvägen 2 A, 111 11 Exempelstaden
Fyller 20 år om 73 dagar, född den 2 januari 1993

Och så vidare med väldigt många personer. Jag skulle vilja ha lite tips på hur excel kan göra det mesta av städjobbet åt mig. Målet är att få all information i 5 olika kolumner enligt nedan:

19930101 - Exempel Exempelsson - Exempelvägen 1 A - 111 11 - Exempelstaden


Alltså:

1. Siffran framför namnet måste bort, den är irrelevant
2. All information om födelsedag mm ska omformateras till första 6 siffror i personnumret
3. Personnummer, Namn, Adress, Postnummer, Stad ska alla ligga i varsin kolumn

Är det någon som vet om detta är möjligt och kan hjälpa mig med iaf någon av utmaningarna?
Nytt inlägg
 2012-10-21 22:33
 
 Ändrad av Bengt-Kerstin  på 2013-02-22 00:33:47
Du behöver ett makro för att få posternas olika "fält" uppdelade på kolumner istället för rader. Du kan använda mitt exempel nedan. Det fungerar med de exempel du listat oven (förutsatt att de ligger i kolumn A).

När du väl har posterna uppdelade på kolumner kan du använda en formel för ta ut delar av texten. Formelexemplet nedan letar efter textstycket ", " i cell B1 och hämter all text därefter.
=EXTEXT(B1;HITTA(", ";B1)+2;LÄNGD(B1))

Texten nedan kopierar du och lägger in i en modul (öppna VBA editorn (alt+F11), högerklicka på VBAprojekt och välj infoga modul). Sen kör du makrot (alt+F8) i den arbetsbok där du har värdena

Public Sub Group_Info()
Dim strArrPerInfo() As String
Dim lngInc1 As Long
ReDim strArrPerInfo(2, 0)
strArrPerInfo(0, 0) = "Unallocated"

Do Until lngInc1 > 65535
If IsNumeric(Mid(ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value, 1, 1)) = True Then
If strArrPerInfo(0, 0) <> "Unallocated" Then
ReDim Preserve strArrPerInfo(2, UBound(strArrPerInfo, 2) + 1)
End If
strArrPerInfo(0, UBound(strArrPerInfo, 2)) = ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value
ElseIf InStr(1, ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value, "född den") > 0 Then
strArrPerInfo(2, UBound(strArrPerInfo, 2)) = ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value
ElseIf ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value <> "" Then
strArrPerInfo(1, UBound(strArrPerInfo, 2)) = ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).Value
End If
lngInc1 = lngInc1 + 1
Loop

Workbooks.Add lngInc1 = 0
Do Until lngInc1 > UBound(strArrPerInfo, 2)
ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 1).FormulaR1C1 = strArrPerInfo(0, lngInc1)
ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 2).FormulaR1C1 = strArrPerInfo(1, lngInc1)
ActiveWorkbook.ActiveSheet.Cells(lngInc1 + 1, 3).FormulaR1C1 = strArrPerInfo(2, lngInc1)
lngInc1 = lngInc1 + 1
Loop
Columns.AutoFit

End Sub
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelSortera information i kolumner/skapa ett registerSortera information i kolumner/skapa ett register

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter