Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno fce v excelu

Dobrý večer přátelé,
tvořím tabulku v MS Excel a narazil jsem na možná poněkud banální problém. Snažím se odkázat buňku v listu 2 na buňku v listu 1, ve kterém je text a číslo (Čtvrtek 1.1.) a rád bych zpět dostal hodnotu 1.1.2000. Prosím poraďte mi funkci, která toto zajistí.
Předem děkuji za reakce.

Předmět Autor Datum
A preco nie 1980 alebo 2040? Jak ma funkce vediet ze chces zrovna 2000?
MM.. 29.08.2017 22:44
MM..
A to je další věc, jak defaultně dosadím za vzorec pevný text (např. 2017)? Jde mi čistě o to, jak d…
jimi71 29.08.2017 23:13
jimi71
Obecne =TEXT(date,format) V tomto konkretnim pripade =TEXT(A1, "dd.mm.yyyy") Coz ale nevysvetluje,…
Dwane Dibbley 30.08.2017 05:47
Dwane Dibbley
Treba si uvedomiť, že bunka môže mať len jeden formát. Čiže "Čtvrtek mm.dd" je nezmysel (naviac mm.d…
robert13 30.08.2017 07:13
robert13
Takto - do B1 zapiš vzorec: =DATUM(2017; DOSADIT(ČÁST(ČÁST(A1;HLEDAT(" ";A1)+1;10);HLEDAT(".";ČÁST(… poslední
Machr55 30.08.2017 07:44
Machr55

Treba si uvedomiť, že bunka môže mať len jeden formát. Čiže "Čtvrtek mm.dd" je nezmysel (naviac mm.dd by muselo byť 01.01. a nie 1.1.). Pokiaľ je bunka formátovaná ako text, tak žiadne mm.dd neplatí. Ono to len vyzerá ako dátum, ale je to text. Ak z toho chceš získať dátum, musíš "dátumovú časť" odtrhnúť v mieste oddeľovača (medzera), pridať k nej rok (ako sa tu viackrát píše, nikto nevie, odkiaľ má Excel vedieť, o aký rok má ísť) a vzniknutý reťazec skonvertovať na dátum.

Napr. ak máš ten "Čtvrtek 1.1." v bunke A1 Hárka1, tak do cieľovej bunky iného hárka musíš zapísať vzorec, ktorý vykoná všetko, čo som uviedol:

=DATEVALUE(CONCATENATE(RIGHT(Hárok1!A1;LEN(Hárok1!A1)-FIND(" ";Hárok1!A1));YEAR(TODAY())))
a túto bunku formátovať na dd.mm.yyyy

Česká verzia:

=DATUMHODN(CONCATENATE(ZPRAVA(Hárok1!A1;DÉLKA(Hárok1!A1)-NAJÍT(" ";Hárok1!A1));ROK(DNES())))
a bunku formátovať na dd.mm.rrrr

P.S. Ako rok sa dosadí rok odvodený z aktuálneho dátumu.
Samozrejme, všetky odkazy Hárok1!A1 si musíš napísať v tvare, v akom ho máš vo svojej verzii Excelu (List1!A1 ?).

Takto - do B1 zapiš vzorec:

=DATUM(2017; DOSADIT(ČÁST(ČÁST(A1;HLEDAT(" ";A1)+1;10);HLEDAT(".";ČÁST(A1;HLEDAT(" ";A1)+1;10))+1;10);".";""); ČÁST(ČÁST(A1;HLEDAT(" ";A1)+1;10);1;HLEDAT(".";ČÁST(A1;HLEDAT(" ";A1)+1;10))-1))

A jak jsem k tomu došel? Vezmu to postupně.
1. Z buňky A1 musím vzít jen datumovou část; předpokládám, že text v A1 je ve tvaru "<text> <datumová_část>", tj. obě části jsou odděleny mezerou a přitom jde o první mezeru v tom řetězci (čili nemůžeš mít v A1 text třeba ve tvaru "První čtvrtek v měsíci 5.2."). Do C1 tak zapíšu vzorec:

=ČÁST(A1;HLEDAT(" ";A1)+1;10)

2. Teď z toho potřebuje dostat první číslo - tj. vezmu jen část řetězce po první tečku. Do D1 zapíšu vzorec:

=ČÁST(C1;1;HLEDAT(".";C1)-1)

3. A podobně druhé číslo - část od první tečky. Takže do E1 napíšu:

=ČÁST(C1;HLEDAT(".";C1)+1;10)

4. Ještě potřebuju odfiltrovat tečku v té druhé číslici, do F1 napíšu:

=DOSADIT(E1;".";"")

5. Mezivýsledky použiju ve finálním vzorci, rok 2017 doplním ručně - v B1 tak bude:

=DATUM(2017;F1;D1)

6. No teď jen zpětně dosadím, abych se nemusel odkazovat na ty pomocné buňky a vznikne z toho ten první "megavzorec".

Možná to jde jednodušeji, ale je to funkční. Ten rok 2017 můžeš mít zapsaný v některé buňce, pak v tom vzorci místo 2017 napíšeš odkaz na tu buňku.

Zpět do poradny Odpovědět na původní otázku Nahoru