Gå til innhold

Tab delimited txt fil til Excel


austor

Anbefalte innlegg

Skrevet

Jeg har en *.txt fil med en masser av data, disse har 5 kolonner og 8900 rader. min case er at jeg skal ha første kolonne delt opp med et komma og resten med semikolon. Den nest siste kolonnen skal være delt opp med to semikolon.

 

Hvordan kan jeg gjøre dette? Det bør vel være en mulighet å endre disse en plass? Håper jeg.

 

Takker for all hjelp!

Videoannonse
Annonse
Skrevet

Skjønner jeg det riktig dersom *.txt filen ser noe ala dette ut:

felt1, felt2, felt3, felt4, felt5
data11;data12;data13;data14;data15
data21;data22;data23;data24;data25
osv...

Er det slik den er, eller er det slik du vil at den skal bli ?

 

Også vil du ha dette inn i et excel ark vha copy paste ?

Flere muligheter:

1. Marker først den første linjen, og kopier den. Velg der den skal inn i excelarket, og trykk paste. Du vil da kunne velge text-imoprt wizard, og kan velge seperator, som skal skille mellom celler (,) i dette tilfellet. Gjør så det samme med resten av filen, bare med annen separator.

 

2. Bruk en replace i f.eks notepad, og erstatt f.eks "," med ";". Kopier hele txt filen (ctrl-a) og lim inn i excel, og velg ";" som separator.

 

Mulig jeg har misforstått hele problemet.

Mener du kanskje at filen skal være slik:

felt1,felt2;felt3;felt4;;felt5

?

Skrevet

Hei Kakkle!

 

Takk for svar.

 

Filen er slik:

 

felt1;felt2;felt3;felt4;felt5

felt21;felt22;felt23;felt24;felt25

...

felt80001;felt80002;felt80003;felt80004;felt80005

 

Denne importerer jeg til Excel og får derfor opp disse separat i hver sin kolonne. Når jeg lagrer den i txt format igjen vil jeg ha den slik:

felt1,felt2;felt3;felt4;;felt5

felt21,felt22;felt23;felt24;;felt25

...

felt80001,felt80002;felt80003;felt80004;;felt80005

 

Her ser du forskjellen at felt 1 og 2 er separert med komma istedet for semikolon, mens felt 4 og 5 er separert med 2x semikolon.

Skrevet (endret)

Da misforsto jeg litt i det forrige innlegget mitt...

Eneste løsning her er å lage en macro i Visual Basic som gjør jobben for deg.

 

Her er en liten macrosnutt som skal gjøre det du trenger:

Basert på kode fra: http://www.cpearson.com/excel/imptext.htm#Export)

Public Sub ExportToTextFile()

Dim FName As String
Dim Sep As String
Dim WholeLine As String
Dim FNum As Integer
Dim RowNdx As Long
Dim ColNdx As Integer
Dim StartRow As Long
Dim EndRow As Long
Dim StartCol As Integer
Dim EndCol As Integer
Dim CellValue As String

FName = InputBox("Please enter text filename: ", "Save as text file")

Application.ScreenUpdating = False
On Error GoTo EndMacro:
FNum = FreeFile

With ActiveSheet.UsedRange
   StartRow = .Cells(1).Row
   StartCol = .Cells(1).Column
   EndRow = .Cells(.Cells.Count).Row
   EndCol = .Cells(.Cells.Count).Column
End With

Open FName For Output Access Write As #FNum
' Sep er separatoren som skal brukes mest
Sep = ";"
For RowNdx = StartRow To EndRow
   ' Legger inn første felt pluss komma etter dette
   WholeLine = Cells(RowNdx, StartCol).Text & ","
   For ColNdx = StartCol + 1 To EndCol - 1
       ' Her går den igjennom alle kollonnene, og sjekker verdien
       If Cells(RowNdx, ColNdx).Value = "" Then
           ' Dersom det er et tomt felt, kan du legge inn ønsket verdi her
           CellValue = " "
       Else
          CellValue = Cells(RowNdx, ColNdx).Text
       End If
       ' Her legges ";" inn som separator
       WholeLine = WholeLine & CellValue & Sep
   Next ColNdx
   ' Her vil det bli to; før siste felt, i og med at det er en; på slutten av nest siste felt
   
   WholeLine = WholeLine & ";" & Cells(RowNdx, EndCol).Text
   Print #FNum, WholeLine
Next RowNdx

EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #FNum

End Sub

Har testet det, og det virker som om det skal funke greit.

Håper dette løser det for deg. Du må skrive inn full path til hvor filen skal lagres i boksen som kommer opp... Evt så er det fort gjort å legge en default path inn i scriptet.

 

EDIT: Litt tekst og kommenterte scriptet litt.

Endret av kakkle

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...