Jen tak z legrace.
Vzorec výše neřeší následující stavy:
a,b,c,d - vrací 4
a,b,,,c,d,e - vrací 7
a,b,,c, - vrací 5
a,b,c,d, - vrací 5
,a,b,c,d,,,e - vrací 8
tedy bere prázdnou hodnotu jako hodnotu. Pokud to nechcete (a mně to zajímalo), mělo by fungovat:
B - pomocný sloupec=KDYŽ(ZLEVA(A1;1)=",";"#NULL#";"")&DOSADIT(DOSADIT(A1;",,";",#NULL#,");",,";",#NULL#,")&KDYŽ(ZPRAVA(A1;1)=",";"#NULL#";"")C - výsledek=DÉLKA(B1)-DÉLKA(DOSADIT(B1;",";""))+1-((DÉLKA(B1)-DÉLKA(DOSADIT(B1;"#NULL#";"")))/6)
Popř. bez pomocného sloupce:=DÉLKA(KDYŽ(ZLEVA(A1;1)=",";"#NULL#";"")&DOSADIT(DOSADIT(A1;",,";",#NULL#,");",,";",#NULL#,")&KDYŽ(ZPRAVA(A1;1)=",";"#NULL#";""))-DÉLKA(DOSADIT(KDYŽ(ZLEVA(A1;1)=",";"#NULL#";"")&DOSADIT(DOSADIT(A1;",,";",#NULL#,");",,";",#NULL#,")&KDYŽ(ZPRAVA(A1;1)=",";"#NULL#";"");",";""))+1-((DÉLKA(KDYŽ(ZLEVA(A1;1)=",";"#NULL#";"")&DOSADIT(DOSADIT(A1;",,";",#NULL#,");",,";",#NULL#,")&KDYŽ(ZPRAVA(A1;1)=",";"#NULL#";""))-DÉLKA(DOSADIT(KDYŽ(ZLEVA(A1;1)=",";"#NULL#";"")&DOSADIT(DOSADIT(A1;",,";",#NULL#,");",,";",#NULL#,")&KDYŽ(ZPRAVA(A1;1)=",";"#NULL#";"");"#NULL#";"")))/6)
Vrací:
4
5
3
4
5
=DÉLKA(A1)-DÉLKA(DOSADIT(A1;",";""))+1
@elninoslov
V češtině to fungovat nebude. My totiž máme červen a červenec
Mno a protože miWorksheetfunction.Text(now(),"mmm")vrací Feb
aleWorksheetfunction.Text(now(),"[$-405]mmm")vrací 2
tak to tipuju na to, že pro některé jazyky prostě není dostupný seznam zkratek a pro některé ano.
Třeba pro maďary to vrací "febr." - v mém českém excelu.
Pak je asi nejbezpečnější použít něco jako=DEN(A1)&". "&ZVOLIT(MĚSÍC(A1);"led";"ún";"bře";"dub";"kvě";"čvn";"čvc";"srp";"zář";"říj";"lis";"pro")&". "&ROK(A1)
Protože maďarština svůj seznam má, pro tento konkrétní případ by to mohlo být takto (správné slovenské zkratky si upravte)=KDYŽ(HODNOTA.NA.TEXT(DATUM(1900;3;1);"hhhh")="március";HODNOTA.NA.TEXT(A1;"n. hhh éééé");DEN(A1)&". "&ZVOLIT(MĚSÍC(A1);"jan";"feb";"mar";"apr";"máj";"jún";"júl";"aug";"sep";"okt";"nov";"dec")&". "&ROK(A1))=IF(TEXT(DATE(1900;3;1);"hhhh")="március";TEXT(A1;"n. hhh éééé");DAY(A1)&". "&CHOOSE(MONTH(A1);"jan";"feb";"mar";"apr";"máj";"jún";"júl";"aug";"sep";"okt";"nov";"dec")&". "&YEAR(A1))=HA(SZÖVEG(DÁTUM(1900;3;1);"hhhh")="március";SZÖVEG(A1;"n. hhh éééé");NAP(A1)&". "&VÁLASZT(HÓNAP(A1);"jan";"feb";"mar";"apr";"máj";"jún";"júl";"aug";"sep";"okt";"nov";"dec")&". "&ÉV(A1))
Stejně se to chová u mne v českém excelu.=HODNOTA.NA.TEXT(DNES();"mmm")vrací hodnotu 2 (excel 2007). Teď nemám čas to zkoumat, nevzpomínám si, jestli jsem někdy zkrácený název měsíce použil. Pokud se s tím někdo setkal, také by mne to zajímalo.
@Hav-Ran
To je OK
Format má jiné formátovací znaky než Text.
https://msdn.microsoft.com/en-us/library/office/gg251755.aspx
Ikdyž, jak upozornil vovka, ta nápověda úplně nesedí.
Pokud je v té buňce datum, tak už tam nemusí být funkce DATUM. Takže snad takhle
=SZÖVEG(A3;HA(SZÖVEG(DÁTUM(1900;3;1);"hhhh")="március";"hhhh";"mmmm"))
Edit:
Ale pokud se maďarsky řekne (píše) leden stejně jako slovensky, musíte vybrat jiný měsíc ;)))
Co na to říct. Snad jen:
Definice kódu jazyka se v argumentu funkce vůbec neobjeví (popř. se dá přidat jako Optional). V jejím těle si můžu dělat co chci a uživatel to nemusí vědět a nemusí ho zajímat. Výhodou je, že používá stejné formátování jako ve funkci HODNOTA.NA.TEXT - tedy to co zná - pouze v anglické syntaxi. Nestane se tedy to, co jsem napsal výše (1635).
Worksheetfunction.Text(now(),"[$-405]mmmm")Worksheetfunction.Text(now(),"[$-" & hex(1029) & "]mmmm")
Provedl jsem průzkum bojem. Instalovaný jazyk aplikace Excel lze zjistit např. pomocí následující procedury:
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") => 2016
@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 ;))
Kuk nebyl pro vás.
Pro vás byl pojem pojmenovaná oblast (ctrl+f3). Pokud tam není externí odkaz, pak vám bez přílohy nikdo nepomůže.
@vovka
Nevím, co to znamená "dát zrušit propojení". O žádné podobné automatické službě nevím a mockrát by se opravdu hodila.
To je jediné na co reaguji. Říkal jste, že tam nic takového není...
@vovka
Ta volba tam je. Jsem na tabletu, takže hledejte ;)
Pravděpodobně bude propojení ještě někde jinde než na listu. Např. v pojmenovaných oblastech. To se musí ručně.
@vovka
Protože aktivní překladatel. Stejně jako české "rrrr" vs anglické "yyyy".
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.