< návrat zpět

MS Excel


Téma: príkazy v inom jazyku rss

Zaslal/a 3.2.2016 9:25

Ahojte,

vo firme mam maďarský a doma slovenský excel.
Mám funkciu =HODNOTA.NA.TEXT(DATUM(nastavenia!$A$2;nastavenia!B2;1);"mmm")

Potreboval by som aby táto funkcia fungovala v slov. i maď. exceli.
Príkaz HODNOTA.NA.TEXT a DATUM sa automaticky zmení ale formát dátumu nie "mmm".

Prikladám súbor, ďakujem.

Příloha: rar29803_tabulka.rar (85kB, staženo 20x)
Zaslat odpověď >

Strana:  1 2 3   další »
icon #029806
eLCHa
Máte slovenský a maďarský excel. Teď jste v jakém?

Přílohu nestahuji, ale zeptám se.
Slovensky=TEXT(DATE(1900;1;1);"mmmm")vrací "január"?
A jaký je ekvivalent řetězce "mmmm" v maďarském excelu?citovat
icon #029807
eLCHa
Abyste rozuměl - mohlo by jít použít něco takového:=TEXT(DATE(Vase_Datum);IF(TEXT(DATE(1900;1;1);"mmmm")="január";"mmmm";"Madarsky_Ekvivalent"))citovat
#029816
avatar
Až na několik výjimek platí, že si Excel vzorce na listu pamatuje v nativní podobě anglicky a navíc v notaci R1C1. Z toho plyne drobné kouzlo, že když do listu v českém Excelu vložím české vzorce, Maďarovi se v jeho Excelu moje vzorce zobrazí maďarsky. A obráceně. Komplikace přinášejí zrovna např. formátové literály, do kterých se mohou promítnout lokalizační rozdíly. Je ale pro mne překvapivé, že zrovna řetězec "mmm" maďarský Excel nebere.citovat
icon #029819
eLCHa
@vovka
Protože aktivní překladatel. Stejně jako české "rrrr" vs anglické "yyyy".citovat
#029821
Hav-Ran
"Mesiac" maďarsky "Hónap" takže "hhhh" 2
Rok Mesiac Deň = év hónap napcitovat
#029825
avatar
Na aktivní překladatele bych vzal klacek a hnal bych je od Excelu! V takovém případě bych zkusil na to jít od lesa:
Když mohu použít VBA (což zřejmě tazatel může), naplnil bych vzorce do buněk přes Range.Formula s anglickým formátováním a doufal bych, že Excel z toho dokáže udělat čitelnou FormulaLocal podle konkrétní lokalizace Excelu. Ruku do ohně bych za Excel v tomto případě ale nedal.
Určitě by ale mělo zabrat, kdybych funkci Text s anglickým formátováním vložil do UDF (do uživatelsky definované funkce) a tu pak použil do vzorce na listu. Tohle podle mne projít musí a musí to počítat v každé lokalizaci!citovat
#029833
avatar
Provedl jsem průzkum bojem. Instalovaný jazyk aplikace Excel lze zjistit např. pomocí následující procedury:
Sub X()
Dim objLangSet
Set objLangSet = Application.LanguageSettings
MsgBox objLangSet.LanguageID(msoLanguageIDInstall)
' nápověda - MsoAppLanguageID Enumeration
' CZ - 1029; SK - 1051; HU - 1038
End Sub
Pro potřeby mezinárodního zobrazení jména měsíce v rámci kalendářního data by ale měla stačit následující UDF:
Function DatM(Dat As Date) As String
DatM = Format(Dat, "d/mmmm yyyy")
End Function
Už na úrovni VBA mi tato funkce ukazuje české znění měsíců. Z toho soudím, že v maďarském Excelu to budou maďarské měsíce (obecně znění podle lokalizace). Použití na listu je velmi prosté:
= DatM(B3)
pro 13.5.2016 v buňce B3 se mi zobrazí "13. květen 2016"
To potvrzuje moji úvahu z předchozího příspěvku. Pro dynamické chování UDF je dobré ji doplnit o příkaz Application.Volatile. Naopak není pravda to, co tvrdí nápověda pro funkci VBA Format o náhradních řetězcích "aaaa" pro lokální podobu dne v týdnu a "oooo" pro lokální podobu měsíce. Tyto náhradní řetězce jsou v mém Excelu nefunkční.citovat
icon #029834
eLCHa
@vovka
Pokud budu dělat vzorec pro celý svět, tak možná UDF. Pokud vím, že jsou to 2 konkrétní jazyky, tak je to zbytečné.

Ale zaujalo mne toto
Naopak není pravda to, co tvrdí nápověda pro funkci VBA Format o náhradních řetězcích "aaaa" pro lokální podobu dne v týdnu a "oooo" pro lokální podobu měsíce. Tyto náhradní řetězce jsou v mém Excelu nefunkční.

Excel 2007 - VBA HElp a nic takového tam nemám...

Edit:
Už to vidím ;))citovat
icon #029835
eLCHa
A jen dodám. Pokud bych šel do UDF, tak pro list bych asi raději použil (podle situace) funkci listu TEXT() než VBA Format().
Japato protože by nebyl takový zmatek ve formátování - pro uživatele schůdnější.

TEXT(NOW(),"y") => 16
TEXT(NOW(),"yy") => 16
TEXT(NOW(),"yyy") => 2016
TEXT(NOW(),"yyyy") => 2016

Format(Now(),"y") => 35
Format(Now(),"yy") => 16
Format(Now(),"yyy") => 1635
Format(Now(),"yyyy") => 2016citovat
#029836
avatar
@elCHa:
váš nevraživý vztah k UDF znám - viz polemiku kolem zaokrouhlování. Já naopak pokládám UDF za kulturní způsob řešení pro situace, když vzorec nelze prakticky sestavit, případně když vzorec začne růst nad rozumné meze délky a srozumitelnosti. Jde spíš o věc vkusu, než o racionální postoj. Vzdávat se dopředu použitelných věcí mi nepřipadá rozumné. Pověru o pomalosti UDF já nevyznávám.citovat

Strana:  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje