Excel vs prevod čísiel na text.

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

harley1
nováček
Příspěvky: 13
Registrován: září 07
Pohlaví: Nespecifikováno
Stav:
Offline

Excel vs prevod čísiel na text.

Příspěvekod harley1 » 14 zář 2009 19:46

Zaujímalo by ma, či sa dajú nejakým spôsobom, prevádzať číselné hodnoty na textové vyjadrenie?

Napr. 1300 tisíctristo

Reklama
Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel vs prevod čísiel na text.

Příspěvekod mike007 » 14 zář 2009 20:12

Je to možné. Excelová funkce ale na to neexistuje. Je potřeba si napsat vlastní. Podívej se na tuto stránku. Tam najdeš kompletní funkci, která to dokáže. Bude jen potřeba si převést názvy čísel z angličtiny do slovenštiny.
Přílohy
pc-help_3738.xls
ukázka
(34.5 KiB) Staženo 37 x
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel vs prevod čísiel na text.

Příspěvekod navstevnik » 14 zář 2009 21:33

Preklad nazvu cislic neni slozity, komplikovanejsi je pojmenovani radu - jeden tisic, dva, tri, ctyri tisice, pet, sest,.., devet tisic; milion, miliony, milionu.
Nize je funkce pouzitelna v Excelu, Accesu i Wordu - prevod so sloveciny je trivialni:

Kód: Vybrat vše

Option Explicit

Function Slovy1(Cis) As String ' bez mezer mezi slovy
Dim StrCis As String
Dim LenCis As Byte, Rad As Integer, Ofs As Byte
Dim Pol As Byte, pom As String, pom1 As String, pom2 As String
Dim Jedn As Variant, Des1 As Variant, Des As Variant, Sta As Variant
Dim JednTM As Variant, Tis As Variant, Mil As Variant
'
  If Not IsNumeric(Cis) Then Slovy1 = "Hodnota není číslo!": Exit Function
  If Cis > 999999999 Then Slovy1 = "Hodnota>999 999 999!": Exit Function
'
  Jedn = Array("", "jedna", "dvě", "tři", "čtyři", _
    "pět", "šest", "sedm", "osm", "devět")
  Des1 = Array("deset", "jedenáct", "dvanáct", "třináct", "čtrnáct", _
    "patnáct", "šestnáct", "sedmnáct", "osmnáct", "devatenáct")
  Des = Array("", "", "dvacet", "třicet", "čtyřicet", "padesát", _
    "šedesát", "sedmdesát", "osmdesát", "devadesát")
  Sta = Array("", "jednosto", "dvasta", "třista", "čtyřista", _
    "pětset", "šestset", "sedmset", "osmset", "devětset")
  Tis = Array("tisíc", "tisíc", "tisíce", "tisíce", "tisíce", _
    "tisíc", "tisíc", "tisíc", "tisíc", "tisíc")
  JednTM = Array("", "jeden", "dva", "tři", "čtyři", _
    "pět", "šest", "sedm", "osm", "devět")
  Mil = Array("milionů", "milion", "miliony", "miliony", "miliony", _
  "milionů", "milionů", "milionů", "milionů", "milionů")
'
'
  StrCis = CStr(Format(Cis, "0.00"))
  Pol = InStr(StrCis, ",") - 1 ' poloha radu jednotek v cisle
  Rad = 0 ' rad cislice v cisle
  Slovy1 = ""
  Do
    pom = Mid(StrCis, Pol, 1)
    If Pol > 1 Then ' hodnota vyssiho radu nez aktualni
      pom1 = Mid(StrCis, Pol - 1, 1)
    Else ' hodnota pro nejvyssi aktualni rad
      pom1 = "0"
    End If
'
    Select Case Rad
      Case 0
        pom2 = IIf(pom1 <> 1, Jedn(pom), Des1(pom)): Ofs = IIf(pom1 <> 1, 1, 2)
      Case 1
        pom2 = Des(pom): Ofs = 1
      Case 2
        pom2 = Sta(pom): Ofs = 1
      Case 3
        pom2 = IIf(pom1 <> 1, JednTM(pom), Des1(pom)): Ofs = IIf(pom1 <> 1, 1, 2)
        If Pol > 3 Then ' kdyz zustavaji jeste >3 cislice
          If Mid(StrCis, Pol - 2, 3) <> "000" Then
            pom2 = pom2 & IIf(pom1 <> 1, Tis(pom), "tisíc") ' a jsou i tisice -> vlozeni slova tisic
          Else
            Ofs = 3 ' preskoci na rad 6 - miliony
          End If
        Else ' kdyz zustava jeste <3 cislice -> vlozeni slova tisic
          pom2 = pom2 & IIf(pom1 <> 1, Tis(pom), "tisíc")
        End If
      Case 4
        pom2 = Des(pom): Ofs = 1
      Case 5
        pom2 = Sta(pom): Ofs = 1
      Case 6
        pom2 = IIf(pom1 <> 1, JednTM(pom) & Mil(pom), Des1(pom) & "milionù"): Ofs = IIf(pom1 <> 1, 1, 2)
      Case 7
        pom2 = Des(pom): Ofs = 1
      Case 8
        pom2 = Sta(pom): Ofs = 1
    End Select
'
    Slovy1 = pom2 & Slovy1
    Pol = Pol - Ofs: Rad = Rad + Ofs
'
  Loop While Pol > 0
  Slovy1 = Trim(Slovy1) ' & " " & Right(StrCis, 2) ' pridani destinne casti
End Function

harley1
nováček
Příspěvky: 13
Registrován: září 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel vs prevod čísiel na text.

Příspěvekod harley1 » 15 zář 2009 19:07

Tu som objavil jedno makro na prevádzanie čísiel na textové vyjadrenie. Je to v Slovenskom jazyku...
Přílohy
Funkcia_Slovom_3.xls
(53 KiB) Staženo 73 x


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • excel text na konec více řádků najednou Příloha(y)
    od Myerina » 03 led 2024 11:51 » v Kancelářské balíky
    5
    1016
    od Zivan Zobrazit poslední příspěvek
    04 led 2024 09:42
  • PDF spatny text Příloha(y)
    od eipa » 18 pro 2023 15:14 » v Vše ostatní (sw)
    3
    1255
    od Grander Zobrazit poslední příspěvek
    19 pro 2023 11:00
  • W11-Otvírají se všechny text soubory
    od supfor » 06 bře 2024 20:24 » v Windows 11, 10, 8...
    4
    930
    od supfor Zobrazit poslední příspěvek
    15 bře 2024 20:41
  • Program: klávesová zkratka->napíše se text
    od pikaso.andreas » 18 črc 2023 14:12 » v Vše ostatní (sw)
    3
    1677
    od X Zobrazit poslední příspěvek
    19 črc 2023 18:28
  • Převod DVD do mkv, avi...
    od petrmet » 24 lis 2023 14:12 » v Multimédia (filmy, hudba, CDs/DVDs)
    23
    5045
    od petr22 Zobrazit poslední příspěvek
    25 lis 2023 19:59

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 37 hostů