Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel - import z textového souboru (více sloupců)

Ahoj,

mám textový soubor:

a1
b1
c1
d1
e1
f1
g1
h1
i1
j1
a2
b2
c2
d2
e2
f2
g2
h2
i2
j2
a3
b3
c3
d3
e3
f3
g3
h3
i3
j3

Když dám v Excelu import dat z textového souboru, tak bych potřeboval, aby se data objevily v deseti sloupcích a ne všechny v jednom. :( Pročet jsem různé návody pro excel, ale nepřišel jsem na to, jak to při importu udělat (nebo po něm). Můžemi někdo znalý excelu poradit jak na to? Děkuji.

Předmět Autor Datum
Po importe budeš mať v stĺpci A importované hodnoty. Do bunky C1 si napíšeš nasledovný vzorec, ktorý…
los 07.11.2014 19:28
los
Díky za radu. Ten vzorec jsem tedy použil, ale nefunguje mi to. (textový soubor nevytvářím já)
Thunder 07.11.2014 20:18
Thunder
No a čo konkrétne ti na ňom nefunguje? Pretože mne normálne že funguje.
los 07.11.2014 21:08
los
Viz obrázek. Ale už to není třeba řešit. Už mám fukční řešení.
Thunder 07.11.2014 21:30
Thunder
I když to není třeba řešit, jen ze zvědavosti: Jakou máš verzi Excelu? Má české nebo anglické vzorce…
host 07.11.2014 21:33
host
Českou. Píše to "Název".
Thunder 07.11.2014 21:45
Thunder
Tak v tom prípade odporúčam použiť českú verziu vzorca. poslední
los 07.11.2014 22:14
los
Stačí vyjsť myšou na ten výkričník a uvidíš dôvod, prečo ti to nefunguje. Edit: Ako prvé by som vysk…
los 07.11.2014 21:37
los
Uprav si pred importom do excelu zdrojový textový súbor... Narýchlo napísaný skript - uprav si názo…
pme 07.11.2014 20:23
pme
Tak ale toto je frajeřina. Funguje to perfektně. Hluboce smekám a dávám vyřešeno. :)
Thunder 07.11.2014 21:26
Thunder
Další způsob: naimportuj normálně text - bude 1 sloupec, více řádků. Vše vyber a zkopíruj (Ctrl-C).…
viva 07.11.2014 20:41
viva
To mi zase udělalo jenom jeden řádek. :(
Thunder 07.11.2014 21:27
Thunder

Po importe budeš mať v stĺpci A importované hodnoty. Do bunky C1 si napíšeš nasledovný vzorec, ktorý potom rozkopíruješ do tých desiatich stĺpcov:

=OFFSET($A$1;COLUMN(A:A)-1+(ROW(1:1)-1)*10;0)

Česky:

=POSUN($A$1;SLOUPEC(A:A)-1+(ŘÁDEK(1:1)-1)*10;0)

Ďalšia možnosť je vytvoriť si na to makro a ešte ďalšia možnosť je vytvárať ten textový súbor tak, aby si nepotreboval robiť takéto veci.

Uprav si pred importom do excelu zdrojový textový súbor...

Narýchlo napísaný skript - uprav si názov vstupného a výstupného súboru:

Set oReadObj  = CreateObject("Scripting.FileSystemObject")
Set oWriteObj = CreateObject("Scripting.FileSystemObject")

Set oRead = oReadObj.OpenTextFile("input.txt", 1)
Set oWrite = oWriteObj.CreateTextFile("output.txt", True)

Dim strLine
Dim intLineCounter

intLineCounter = 0

Do Until oRead.AtEndOfStream
    if intLineCounter <> 0 then
    strLine = (strLine + " " + oRead.ReadLine)
    else strLine = (strLine + ORead.ReadLine)
	end if
	
    intLineCounter = intLineCounter + 1
   
    if intLineCounter = 10 then 
      oWrite.WriteLine(strLine) 
      intLineCounter = 0
      strLine = ""
    end if

Loop

oWrite.Close() ' Close output file
oRead.Close()  ' Close input file

msgbox("Skript bol úspešne ukončený")

Vyššie uvedený skript si ulož do nejakého svojho súboru a daj mu príponu *.vbs. Následne spusti poklepaním na neho (ako *exe).

Zpět do poradny Odpovědět na původní otázku Nahoru