Stránka 1 z 2

Chybný formát čísla v CSV

Napsal: 06 dub 2020 22:37
od Parek228
Zdravím všechny,

hledal jsem dlouho na internetu a jsem bezradný, tak doufám, že najdu pomoc zde.

Mám textový soubor s oddělovači Microsoft Excelu (.csv). Když ho otevřu normálně excelem, tak místo čísel mám tyhle divné čísla zmixované římskými číslicemi (viz. příloha). Potřeboval bych, aby se to zkonvertovalo na číslo. Snažil jsem se i v novém excelu vložit data z textu a měnil jsem tam z obecný na text, ale bez úspěchu.

Hlavně jsem tohle řešil asi před rokem a našel jsem nějaké video, ale bohužel si nevzpomenu, jak jsem to vyřešil a kde jsem našel to video.

Děkuji Vám za případnou pomoc.

Divná čísla.PNG
Divná čísla.PNG (8.25 KiB) Zobrazeno 2138 x

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 22:49
od Uziv00
Excel to přebírá jako datový formát. Takže formát buňky změň na číslo. A s formátem musí být zahrnuta i desetinná tečka (normálně máme čárku).

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 22:53
od Parek228
ITCrowd píše:Excel to přebírá jako datový formát. Takže formát buňky změň na číslo. A s formátem musí být zahrnuta i desetinná tečka (normálně máme čárku).


Otevřel jsem to v Excelu, buňky jsem změnil na číslo a změnil tečku na čárku a nepomohlo.

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 22:59
od Uziv00
To musíš ošéfovat někde během toho převodu.

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 23:12
od Parek228
Bohužel to nejde. Do přílohy dávám obrázek, jak to dělám, ale bohužel bez úspěchu. Přemýšlím, zda to nemůže být tím formátem UTF-8?

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 23:43
od sim20
Excel očekává desetinnou čárku.

Nevím kde se to v Exelu nastavuje, takže já bych to csv otevřel v Poznámkovém bloku a nahradil všechny tečky za čárky.
(Úpravy -> Nahradit -> Nahradit vše)

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 23:52
od atari
Dej sem to csv.

Re: Chybný formát čísla v CSV

Napsal: 06 dub 2020 23:53
od Parek228
Koukám, že když to CSV otevřu v poznámkovém bloku, tak i tam mám ty divné číslice. Ale co si tak pamatuji, tak jsem je měl i dříve a nějakým způsobem jsem to zkonvertoval.

Zkusil jsem tvojí radu a taky bohužel bez úspěchu.

Dodatečně přidáno po 10 minutách 29 vteřinách:
atari píše:Dej sem to csv.


Link na stažení: https://uloz.to/file/0P1w0XnpiUJ9/pc-help-rar

Re: Chybný formát čísla v CSV

Napsal: 07 dub 2020 01:37
od elninoslov
Na Vašom poslednom obrázku označte číselné stĺpce (prvý číselný, Shift + posledný číselný). Formát dajte Všeobecný. Je tam tlačítko Upřesnit a pod ním zmeňte oddeľovač tisícov na "," a oddeľovač desatín na "." a že znamienko mínus nieje na konci.

EDIT: Aha, pardon, je to už v tých CSV, veď to píšete. Takže zlý výstup z dotyčného SW.

Re: Chybný formát čísla v CSV

Napsal: 07 dub 2020 10:00
od Parek228
Zkoušel jsem a bohužel zase bez úspěchu.

No, ona mě štve jedna věc. Já jsem před nějakou dobou pracoval s těmito daty a převedl jsem je z CSV do excelu a opravil jsem tyto problémy (našel jsem nějaké video na youtube). Ale nemůžu si vzpomenout, jak jsem to vše spravil a kde najdu to video.

Co si tak matně pamatuji, tak jsem možná naexportoval data a potom jsem s nimi něco dělal nebo jsem je nahradil, fakt nevím.

Ale i tak děkuji za rady.

Re: Chybný formát čísla v CSV

Napsal: 07 dub 2020 11:13
od Zivan
Co zadat nazev toho zarizeni/programu, ze ktereho ty data jsou a k tomu neco jako "CSV format problem" do Googlu?

Re: Chybný formát čísla v CSV

Napsal: 07 dub 2020 11:24
od elninoslov
Makro na prevod:

Kód: Vybrat vše

Sub Prevod()
Dim R As Long, D(), S() As String, i As Long, x As Byte, n As Byte, CE As Long, COK As Long, bPrevod As Boolean, C As Double

    With ThisWorkbook.ActiveSheet
        R = .Cells(Rows.Count, 1).End(xlUp).Row - 9
        D = .Cells(10, 3).Resize(R, 20).Value2
        On Error Resume Next
        For i = 1 To R
            For x = 1 To 20
                If Not IsEmpty(D(i, x)) Then
                    If Not IsNumeric(D(i, x)) Then
                        S = Split(D(i, x), ".")
                        If UBound(S) = 1 Then
                            If Not IsNumeric(S(0)) Then S(0) = WorksheetFunction.Arabic(S(0))
                            If Not IsNumeric(S(1)) Then S(1) = WorksheetFunction.Arabic(S(1))
                            C = Val(S(0) & "." & S(1))
                            bPrevod = Err.Number = 0
                        Else
                            bPrevod = False
                        End If
                        If bPrevod Then D(i, x) = C: COK = COK + 1 Else: CE = CE + 1: Err.Clear
                    End If
                End If
            Next x
        Next i
        .Cells(10, 3).Resize(R, 20).Value2 = D
        MsgBox "Prevedených hodnôt : " & COK & vbNewLine & "Neprevedených hodnôt : " & CE
    End With
End Sub