Registrace  •  FAQ  •  Pravidla fóra  •  Uživatelské blogy  •  PCTuning.cz  •  Hledat  • Přihlášení
 • Informace o udělených trestech jsou v patřičném důležitém tématu, více viz Pravidla.

Právě je po 24. červenec 2017, 16:33

Zobrazit příspěvky bez odpovědiZobrazit aktivní témata



Čas je uváděn v UTC + 1 hodina (letní čas)


Odpovědět na téma  [ 4 příspěvků ] 
Autor Zpráva
 Předmět: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 08:11 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
Zdravím,

vstupní problém:
chtěl bych načíst textový soubor, který obsahuje čísla a jediný oddělovací znak je mezera. Textový soubor nemá jednotné formátování čísel (číslo v řádku 1 může být ve sloupečku 5 a číslo v řádku 2 odpovídající předchozímu číslu může být ve sloupečku 6 - to je způsobeno právě tím, že jediný oddělovač je mezera)

ukázka čísel v *.txt souboru:
Obrázek

Prvním úkolem je načíst *.txt soubor do excelu a pak pomocí maker upravit formátování dat a následně excel převést do CSV (středník)

formátování buněk v sešitu nastavím jako text a v dokumentu pro načtení jako externí reference nastavím všechny sloupečky jako text a po načtení textového dokumentu zruším odkaz na referenci.
Po načtení *.txt dokumentu dostanu:
Obrázek

dobré je, že se vše opravdu všechny čísla načtou jako text (obsah buňky je hned po načtení osazen na levé straně jako text)
trošku horší už je to, že na začátku některých čísel chybí nuly tedy "001" se převede jako "1" atd.

Potřeboval bych poradit, jak správně načíst *.txt soubor, tak aby se nevynechali u některých čísel nuly.

Díky mnohokrát.

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 08:39 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
přikládám ještě ukázku části textového souboru s čísly:

kdyby někdo nechtěl z nějakých důvodů stahovat *zip, tak možno si jen zkopírovat níže uvedená čísla do vlastního textového souboru:
Kód:
518 815 824 876 560 857 867 918 810 1 107 1 117 1 168
532 838 846 903 575 880 888 945 834 1 139 1 147 1 204
585 897 904 964 628 940 947 1 007 893 1 205 1 212 1 272
650 977 982 1 049 693 1 020 1 024 1 092 973 1 300 1 304 1 372
664 998 1 002 1 074 706 1 041 1 044 1 116 994 1 329 1 332 1 404
730 1 074 1 075 1 153 773 1 116 1 118 1 195 1 069 1 412 1 414 1 492
1 084 1 550 1 538 1 681 1 126 1 592 1 581 1 724 1 502 1 968 1 956 2 099
2 036 2 764 2 720 3 005 2 079 2 806 2 762 3 047 2 683 3 410 3 366 3 651


Nemáte oprávnění k prohlížení souborů přiložených k tomuto příspěvku.

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 09:33 
Začátečník
Začátečník
Obrázek uživatele

Založen: 03. červenec 2009
Bydliště: Brno
Nahoru
tohle by mohla být celkem dobrá poznámka, při načítání *.txt souboru používám typ souboru: Windows (ANSI). (zkusím i jiné typy souboru testovat)

_________________
c# Kozel zahradníkem


 Profil  
 Předmět: Re: excel: načtení dat z *.txt
PříspěvekZaslal v: pá 14. červenec 2017, 22:33 
Nováček
Nováček
Obrázek uživatele

Založen: 26. leden 2016
Nahoru
Chápu správně, že mezera je v souboru oddělovač čísel a zároveň oddělovač tisíců?
Naimportoval bych celý řádek vždy do jedné buňky a potom v makru si s celým řádkem pohrál, funkce Split ti rozdělí řádek na jednotlivá čísla a pak si je makrem zase spojíš, jak potřebuješ.
Bude potřeba určit nějaká pravidla, kdy je mezera oddělovač tisíců a kdy oddělovač čísel.
Například něco takového (použito na ukázce):
Kód:
Sub Zpracuj()
  Dim S, R As String
  Dim L() As String
  For i = 1 To 8
    S = Range("A1").Cells(i, 1)
    L = Split(S)
    R = L(0)
    For j = 1 To UBound(L)
      If Len(L(j - 1)) = 1 Then 'když předchozí číslo je délky 1, spoj ho s následujícím (je to pravděpodobně oddělovač tisíců)
        R = R + L(j)
      Else: R = R + ";" + L(j)
      End If
    Next j
    Range("A1").Cells(i, 2) = R
  Next i
End Sub


 Profil  
Zobrazit příspěvky za poslední:  Řadit podle  
Odpovědět na téma  [ 4 příspěvků ] 


Čas je uváděn v UTC + 1 hodina (letní čas)


Přejít do sekce:
  

Kdo je přihlášený

Uživatelé procházející si tuto sekci: Žádní registrovaní uživatelé a 3 anonymních


Nemůžete zakládat nová témata v této sekci
Nemůžete odpovídat na příspěvky v této sekci
Nemůžete upravovat své příspěvky v této sekci
Nemůžete mazat své příspěvky v této sekci
Nemůžete připojit přílohy v této sekci

 
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Český překlad - PCT fórum