Autor Zpráva
Robbie
Profil *
Tvořím tabulku s pracovními hodinami a potřeboval bych, jak přiřadit př. písmenu D - jako dovolená číslo 12 - jako 12ct hodin, tak abych do tabulky napsal D a na konci tabulky se mi počítaly hodiny. Děkuji mnohokrát
Robbie
Profil *
...myslel jsem přiřazení číselné hodnoty písmenu.
Mastodont
Profil
Budeš potřebovat vlastní funkci, která ty hodnoty sečte.
Function VlastniSuma(bunky As Range)
    Dim soucet As Date, bunka As Range
    For Each bunka In bunky
        If bunka.Value = "D" Then
            soucet = soucet + TimeValue("12:00:00")
        Else
            soucet = soucet + TimeValue(bunka.Text)
        End If
    Next
    
    VlastniSuma = soucet
End Function
_es
Profil
Mastodont:
Určite sa to dá spraviť vzorcom, makra na to nie sú dobré - sú mnohonásobne pomalšie a keď sa to použije na viac buniek, tak hrozí "zasekávanie" Excelu.
Robbie:
Napíš nejaký vzorový riadok s bunkami, čo má byť vstup a čo výsledok.
Mistr
Profil
Robbie:
Než dodáš popis, o nějž Tě žádal kolega _es, navedu Tě upozorněním na excelovské funkce například KDYŽ či SVYHLEDAT nebo VVYHLEDAT. Možná je využiješ.
Mastodont
Profil
_es:
Kolik buněk představuje tvoje "více buněk"?
_es
Profil
Mastodont:
Viac buniek je vtedy, keď nastane to zasekávanie :-)
Teda na horšom PC je "viac" menej.
Hlavne, keď Excel niekedy preratúva aj bunky, ktorých vstupné údaje zmenené neboli, napríklad pri zapnutom automatickom filtri.
Ak majú ten súbor používať ďalší, tak nastávajú ďalšie problémy s predvolene zakázanými makrami, ktoré je treba najprv povoliť.
Axamith
Profil
Robbie: Pokud se bude jednat o výpočty zahrnující řádově desítky, možná stovky buněk, tak bych si s tím hlavu nelámal. Kdysi jsem psal aplikaci, která obsahovala cca 750 000 vzorců a podmínek. A nebyly to krátké vzorce o několika málo proměnných. Samotný soubor pouze se vzorci ( bez dat ) měl téměř 20 MB a bylo na tom vidět zasekávání, o kterém píše _es. Je to ale řešitelné tak, že v nastavení přepneš automatické výpočty na ruční, nasypeš do tabulek data a pak to necháš celé spočítat naráz. Nemáš sice on-line výsledky okamžitě, jak měníš hodnoty v buňkách, ale neseká se při složitých a rozsáhlých výpočtech.
Mastodont
Profil
_es:
Nikdy jsem žádné "zasekávání" v Excelu nezažil, a jednalo se i o tisíce řádků. Chce to ovšem dodržovat určitá pravidla, například vypínat ScreenUpdating a automatické přepočítávání, jak píše Axamith.
_es
Profil
Axamith, Mastodont:
Myslel som hlavne to, že aj zložitý vzorec býva obvykle oveľa rýchlejší, než jednoduchá funkcia definovaná vo VBA.
A k tomu treba prirátať ďalšie nevýhody makier VBA.
Takže makrami treba robiť až to, čo sa nedá cez vzorce.
Ostatné veci sú dosť mimo témy.
Mastodont
Profil
aj zložitý vzorec býva obvykle oveľa rýchlejší
To bývá, ale podle Robbieho zadání by to chtělo nejlépe maticový vzorec a to je pro začátečníky dost náročné, proto jsem doporučil makro.
robbie
Profil *
vzor soubor sem dal sem: http://ulozto.cz/4020732/vzor-dokumentu.bmp

jde mi hlavně o vzorec, který přiřadí písmenu číselnou hodnotu a potom o vzorec, který v každém dni ve spodní tabulce pozná, kolikrát
byla ta či ona směna použita. Duju pokud někdo nastíní nějaké řešení. .
_es
Profil
Nechce sa mi to celé, tak len hlavný postup, názvy sú zo slovenského Excelu, nechcelo sa mi hľadať tie české divoké názvy.
Tie jednotlivé označenia smien si daj do dvoch stĺpcov, môžeš použiť nejaké skryté stĺpce alebo riadky:
X   |   0|
D   |  12|
O   |10,5|
atď
Ak je ten zoznam v rozsahu X1:Y10, tak potom číselnú hodnotu zo znaku v bunke D5 získaš zo vzorca:
=VLOOKUP(D5;$X$1:$Y$10;2;0)

Vzorce zkopíruješ, skryješ potom riadky alebo stĺpce.
Spočítaš to funkciou SUM.
Tie spodné tabuľky vyrátaš cez funkciu COUNTIF.
robbie
Profil *
vzor soubor sem dal sem: http://ulozto.cz/4020732/vzor-dokumentu.bmp

jde mi hlavně o vzorec, který přiřadí písmenu číselnou hodnotu a potom o vzorec, který v každém dni ve spodní tabulce pozná, kolikrát
byla ta či ona směna použita. Duju pokud někdo nastíní nějaké řešení. .
_es
Profil
robbie:
Je na tom mojom popise niečo nezrozumiteľné?
Obidve veci tam máš riešené, len si musíš vyrobiť nejaké nové hodnoty v bunkách, ktoré potom skryješ.
Tie české názvy funkcií si snáď nájsť vieš.
robbie
Profil *
...kde se dají takovéto věci naučit, předpokládám, že asi z nějaké literatury o Excelu, že? R.
robbie
Profil *
..zapoměl sem poděkovat, všem, co mi napsali a poradili. Ještě jednou díky. R.
_es
Profil
robbie:
...kde se dají takovéto věci naučit, předpokládám, že asi z nějaké literatury o Excelu, že? R.

Aj z literatúry, no veľa vecí sa dá nájsť v pomoci Excelu. Treba nájsť na disku správne *.chm súbory.
Možno ich treba doplniť pri inštalácii/preinšatalácii. V MS Office 2003 to je súbor XLMAIN11.CHM.
Tomu "pomocníkovi", dostupnému cez F1, som nejako neprišiel na chuť.
robbie
Profil *
..vyřešeno pomocí funkce SVYHLEDAT a COUNTIF. Děkuji

Vaše odpověď

Mohlo by se hodit

Zvažte, zda se neobrátit na specializované fórum, toto se zabývá především webovou problematikou.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0