Hledá se odborník na excel a grafy

203 nepřečtených
  • garretx

    Ahoj, potřeboval bych od nějakého znalce Excelu poradit. Jedná se mi o to, že nevím jak udělat jeden graf. Mám tyto vstupní hodnoty (obr 1) a potřebuji je zpracovat do grafu, který vypadá zhruba takto (obr 2). Problém je v tom, že nevím jak se vypořádat s tím, aby v jednom bode na vodorovné ose se zobrazovaly dvě různé hodnoty na svislé ose. Další omezující podmínka je, že nejde upravit vstupní tabulka tak, aby se data jednoduše poskládaly pod sebe (tím chci říct, že musí být zachovány tři sloupce :))

    Snad je můj dotaz srozumitelný.

    Předem děkuji ochotným znalcům excelu za odpovědi, moc mě tím pomůžete.

    • Ossis  

      Pravým kliknout na čáru → formát datové řady → možnosti řady → přepnout na vedlejší osu.

      • garretx  

        Zkoušel jsem, ale bohužel ta volba je neaktivní, takže tam nejde nic překliknout.

    • kali222  

      nechce se mi zakladat nove vlakno, tak si pricmrndnu tady.

      potrebuju pouze bodovy graf – bez spojnice (tu dam proste skryt :D). mam tam jen osu x a y. vzniknou mi tedy jednotlive body v souradnem systemu a ja bych potreboval, aby u tech bodu byl jeste popisek (jen jedno pismeno) a nejak mi to nejde udelat. cili, ze ten bod (treba bod se souradnicicemi x=5,y=-7 je bodem b atd…) poradite?

      • McBlacky  

        klikneš na libovolný bod a pak pravé a přidat popisky dat (nebo tak nějak)

        zobrazí se ti to co bys měl na Xku

      • Nikovlas  

        Jdou tam přidat popisky – nebo hodnoty nebo co. Rozhodně vím, že třeba u sloupsových grafů jsem si mohl nastavit, aby se u každýho sloupce (na vrcholu) zobrazila hodnota – no a tu přepíšeš na to, co tam chceš – třeba „B“.

    • Nikovlas  

      Asi bych si udělal vedle jinou tabulku, která by fungovala na základě odkazů na data z tyhle tabulky, ale s tím rozdílem, že by byly první 2 sloupce dohromady – tedy každé číslo by byla 2×. A pro první ze stejné dvojice ba byla určitá hodnota % a pro další by byla už jiná – ta samá hodnota by pak byla pro první číslo z následující dvojice…

      A graf bych dal jako bodový se spojnicí…

      Pokud chceš, aby to pak fungovalo nějak automaticky a dalo se to kopírovat a podobně, tak bych tu první tabulku udělal ob řádek, aby ta pomocná tabulka seděla a mohla se kopírovat na další řádky v případě potřeby. V tý hlavní tabulce bych pak jen sloučil buňky, aby to vypadalo normálně.

    • jIrI___  

      Měl bych taky jeden dotaz na excelovské odborníky :).

      Mám danou tabulku jako na prvním obrázku (tabulka 1) a potřebuju z ní udělat tabulku jako na druhém obrázku (tabulka 2) s tím, že když přepíšu údaj v tabulce 1, tak se to promítne do tabulky 2 tím způsobem, že to prvotní údaje v tabulce ponechá a nové údaje se vepíšou do dalšího řádku.

      Představte si to třeba tak, že mám kolo X, které se od kola Y liší v osazení jen vidlicí a já potřebuju mít v tabulce 2 u obou kol kompletní údaje, tj. všechno až na vidlici bude stejné.

      Věděl byste někdo, jestli tohle excel umí a jak na to? Díky za připomínky :)

      • AussigBiker  

        Zkus tohle: =„text“&CHAR(10)&A1

        Text v uvozovkach je text, ktery se nemeni, coz je predpokladam tvuj puvodni text. Nebo tam dej misto textu v uvozovkach cislo bundky. Znak & slucuje hodnu z bunek. CHAR(10) zalomi text na novy radek, ale musi byt nastaveno zalamovat text. A misto A1 tam dej cislo bunky, z ktery ma byt text na dalsim radku. Take treba: b1&char(10)&f6

        Edit: nepis tam ty lomitka: , to tam dodava bf.

        • AussigBiker  

          Tak nic, lomitka jsou videt jenom dokud jde prispevek editovat, takze tam vlastne nejsou :)

      • black.horse  

        jestli Tě chápu správně, tak řešením je =svyhledat() ale pak mi taky mi napadá, že sis vzal asi náročnější brigádu než na co stačíš:-D

        • jIrI___  

          To pujde, to pujde! :D

          Dík oběma za tipy.

        • jakub_kencl  

          Tam bude potřeba ještě podmínka „Když“ podle typu kola a řádky se budou muset jmenovat také dle typu kola. Jinak by to přepsalo původní údaje. Tedy jestli jsem to správně pochopil.

          Porovnávací interaktivní tabulky jsou sviňa ;-)

      • petrpoko1  

        a jakou máš představu, že se ti to bude aktualizovat? Tvůj požadavek „prvotní údaje ponechá a nové se vepíšou…“ jsem pochopil jako 2 možná řešení:

        1 – uděláš si tabulku kde ve sloupcích budeš mít jednotlivá kola a tu pak celou konvertuješ na data v řádcích

        (varianta mít tu tabulku co máš a pokaždé si ji nechat zalomit na nový řádek ručně) – funkce TRANSPOZICE

        2 – máš jenom ten jeden sloupec a pak je to zralé na nějaké makro, které ti po změně těch údajů (jak má excel vědět jestli budeš měnit jenom 1 nebo všechny buňky) zkopíruje danou tabulku do té druhé

        • jIrI___  

          Abych to vysvětlování trochu ulehčil,tak změním myšlenku :). V buňce A1 mám text, který chci zkopírovat do buňky X5. Takže do buňky X5 napíšu klasicky =A1.

          V dalším kroku potřebuju nějak smazat to propojení s buňkou A1 tak, aby se zachoval text (při přepsání textu v buňce A1 zůstane v buňce X5 původní text, tj. text před přepsáním). Jde to nějak?

          • bruco  

            X5 kopirovat a vlozit ako hodnoty.

          • black.horse  

            Buď mechanicky – kopírovat a vložit jako hodnoty, ale to by pro časté aktualizování byl opruz, v tom případě bude nejrychlejší napsat si jednoduché VBA makro a přenášet to jako .Value k daným buňkám.

            • bruco  

              To by slo, ale to jednoduche makro zabije kontrolou predchadzajucich zaznamov. :-( Aj ked rucne to asi tiez kontrolovat nebude.

              • black.horse  

                tak záleží jak chce, aby se to chovalo, naprogramovat se dá cokoliv, co má nějakou logiku chování a rozhodování…

    • ghostik  

      Ahoj mám problém v Excelu, potřebuju z tabulky udělat graf. Budou v něm dva průběhy. Umím udělat každý zvlášť ale né dohromady nevíte někdo jak na to?

      • lukas aka mitro  

        Musis proste v nastaveni grafu zadat co je „x“ a co „y“…nebo oznac celou datovou oblast, prvni sloupec nech jao „x“ a druhy a ctvrty jako „y“…

        • ghostik  

          Už sem našel chybu :) Měl jsem typ grafu spojnicový skládaný a pak to dělalo bordel. Takže vyřešeno

    • lukan  

      Zdarec, trošku se tady přiživím… Potrebuju v Excelu napsat vzorec pro výpočet délky VNITŘNÍCH úseček – viz obrázek, rozměry stran A a B se budou měnit, vnitřní obdélníky budou vždy 2000×1000mm… Zkoušel jsem vzorec ={[(A/1000)-1]×B}+{[(B/2000)-1]×A}. Tento vzorec mi však Excel nějak nebere :-( za A a B jsem samozřejmě dosadil souřadnice pole kde požadované hodnoty dosazuji. Díky moc za každý nápad!

      • bruco  

        Nerozumiem, co myslis tymi dlzkami vnutornych useciek.

        • lukan  

          Jsou to obdélníky 3000*4000 a 2000*3000 a uvnitr jsou úsečky – potrebuju délku těch vnitřních úseček (bez obvodových)

          • bruco  

            To znamena, ze pre prvy obrazok je tato dlzka 6000?

            • lukan  

              Presne tak… A pro druhý 11000.

              • bruco  

                =(ROUNDUP(A/1000;0)-1)×B+(ROUNDUP(B/2000;0)-1)×A

                • lukan  

                  =(ROUNDUP(B3/1000;­0)-1)×C3+(ROUNDUP(C3/2000;­0)-1)×B3

                  když si to takhle doplním (za A a B), tak mi to nefunguje :( svítí mi červeně vnitřní závorky :( nějaký nápad?

                  jinak díky moc za ochotu :-)

                  • bruco  

                    Tie × si vymenil za *?

                    • lukan  

                      aha, já jsem vůůůl :D

                      díky

                    • lukan  

                      =(ROUNDUP(B3/1000;­0)-1)C3+(ROUNDUP(C3/2000;­0)-1)B3

                      teď to mám takhle, ale v poli kde se mi má zobrazit výsledek vykakuje hláška „#NÁZEV?“ :(

                      • bruco  

                        Ked som to skusal nakopirovat z BF, tak mi tam za bodkociarku hadzalo –0. Skontroluj si syntax.

                        • lukan  

                          co je syntax prosímtě?

                          • bruco  

                            Musi to vyzerat takto:

                            =(ROUNDUP(B3/1000b­odkociarka0)-1)hviezdickaC3+(RO­UNDUP(C3/2000b­odkociarka0)-1)hviezdickaB3

                            • lukan  

                              supr funguje :-)

                              moc díky ;-)

                              • lukan  

                                jen to má jednu vadu na kráse… záleží na pořadí jak vepíšu rozměry- např. u obr.č.2 výsledek vyjde správně pouze když za B3 dosadím 3000 a za C3 dosadím 4000 – naopak vyjde špatný výsledek. To už bych chtěl ale asi moc, že?

                                • bruco  

                                  Predpokladal som, ze orientacia vnutornych obdlznikov je dana. Takze orientacia vnutornych obdlznikov je zhodna s vonkajsim obdlznikom?

                                  • lukan  

                                    No mohlo by to vypadat i takto… Třeba

                                    • bruco  

                                      A co teda rozhoduje o tom, ako su orientovane vnutorne obdlzniky?

                                      • lukan  

                                        jedna se o tabuli která je tvořena z plechu 2×1m a ty vnitřní „úsečky“ jsou délky výztuh na kterách budou ty jednotlivé plechy 2×1m přišroubovány…zá­leží na tvaru tabule, někdy je lepší orientovat obdélníky na výšku, někdy na délku…

    • lukan  

      Ještě bych potřeoval poradit jak zapsat vzorec „=((C3/1800)-1)*B17+B17“ tak, aby se mi výsledek (C3/1800) zaokrouhlil nahoru….např 2000/1000=1,1111 – aby se mi to zaokrouhlilo na 2. víte někdo?

      Díky :-)

    • lukan  

      Ještě bych potřeboval jednu radu

      Dám jednoduchý příklad:

      V tabulce mám pod sebou jednotlivé výpočty a jejich výsledky které se mi sčítají do celkové hodnoty. Ne však všechny hodnoty chci mít v konečném výsledku započítány. Dá se u každé hodnoty vytvořit nějaké zatržítko, které by určovalo, jaká hodnota má být v konečném výsledku započítáná?

      • bruco  

        Zatrzitko zrovna nie, lebo je to zbytocne zlozite, ale da sa to dosiahnut. Daj mail, poslem ti subor.

        • lukan  

          lukash.sima@gmail.com

          dík bruco :-)

        • zdenek  

          Ani s tím zatržítkem to není tak složíté. Najde ho ve formulářových prvcích a stav zatržítka propojí s libovolnou buňkou. S tou pak pracuje ve vzorci. Na vytvoření je to trochu složitější než místo zatržítka zapisovat do buněk třeba „X“, ale zase zaštnutí je vychlejší (jeden klik myší).

          • bruco  

            Jasne, presne ako pises, nie je to TAK zlozite, ale aj podla otazok, co mal vyssie, je to ZBYTOCNE zlozite. :-)

      • petrlos  

        toto jsem delal pomoci SUMIF, cesky neco jako SUMAKDYZ nebo tak nejak..

        do stejneho radku jako hodnota das do bunky vedle NECO, je jedno co… napr. „x“..

        pokud budu mit tabulku o 4 hodnotach a ty hodnoty budou v bunkach a1 az a4, pak bude znacka v b1 az b4..

        sumif se potom nastavi takto.. jednotlive parametry oddelit stredniky

        prvni parametr je oblast, v ktere se vyhodnoti podminka: tzn. napr. v oblasti b1 az b4 je rovno „x“ (nebo co si tam das..)

        druhy parametr je podminka.. ted si nejsem jisty, bud napsat bez zavorek <=„x“> nebo <„x“>

        treti parametr je oblast, ktera se bude scitat, kdyz bude splnena podminka.. tzn. A1 az A4..

        docela slusne je to vysvetleno tady: https://support.office.com/…1697a653039b

      • Deathwing  

        zadny slozity funkce nejsou potreba staci vysledek vynasobit jednickou pokud ho chces a nulou pokud ho nechces a jen poscitat ty vysledky

      • pocestny  

        Líbil se mi ten dotaz, tak jsem si říkal, že to zkusím – jednoduše, když říkáte.

        A šlo to celkem intuitivně.

        • lukas aka mitro  

          To co chces skryvat tam byt nemusi, ale trochu se nafouknou podminky pro soucet

          • pocestny  

            tam někdo výš psal že ‚jednoduše‘

            bez těch pomocných sloupců jsem to fakt nezkoušel

            • zdenek  

              Sloupec F být musí. I když bys ho mohl přesunout do D pod zatržítka a zneviditelnit, ale to je zbytečné. G je navíc, ale to neřeš. Sloupců je dost, tak není potřeba šetřit za každou cenu. Hlavně že to funguje a je to přehledné.

    • lukan  

      chlapi, ještě jedna maličkost, pro vás odborníky jistě žádný problém, ale mě se nedaří.....

      mám vzorec =(B3*C3)/2000000 a potřebuju aby se mi výsledek zaokrouhloval na CELÉ ČÍSLO NAHORU. jak na to prosím vás? :-)

    • lukan  

      Ještě další dotaz na kancelářské bajkery :-)

      Mám vzorce =(((B3/500)-1)+(B3/2000–1))*C3 a =(ROUNDUP(C3/500;0)-1)2500.

      Lze je nějak upravit, aby mi po dosazení hodnoty „nula“ za B3 a C3 vyšel výsledek „nula“?

      • bruco  

        =IF(OR(B3=0;C­3=0);0;(((B3/500)-1)+(B3/2000–1))*C3)

        =IF(OR(B3=0;C­3=0);0;(ROUNDUP(C3/500;0)-1)*2500)

        • lukan  

          kurde chlape ty seš odborník! kde ses takhle naučil s excelem? :-)

        • lukan  

          nějak se tomu nechce, něco zase dělám špatně…nemá být mezi if a or něco jiného než závorka?

          • bruco  

            Nie. Syntax je =if(podmienka; vyraz_ked_je_p­odmienka_splne­na; vyraz_ked_nie_je_pod­mienka_splnena).

    • lukan  

      zdravím, mám další dotaz ohledně excelu…

      jak napsat vzorec…když je hodnota v okýnku třeba A1 menší nebo rovna 1 – výsledek je 4, a když je hodnota v okýnku A1 větší než 1 – výsledek je 5.

      Díky všem odborníkům :-)

      • novas752  

        Takhle:

        =KDYŽ(A1<1;4;5)

        nebo

        =IF(A1<1;4;5)

        je to prostě tvar (podmínka;pla­tí;neplatí)

        • lukan  

          jo díky moc, je to jednoduché jak facka a já v tom hledal furt nějaké složitosti. dík!

    • lukan  

      zdar jak sviňa,

      rád bych pokračoval v excel školení:-)

      1.)PŘÍPAD Č.1

      V Listu1 mám jména a hodnoty…v druhém listu potřebuji, aby se mi zobrazovaly jména (+příslušná hodnota) u kterých je hodnota jiná než nula, nebo prázdné pole (když tam bude 0 nebo prázdné pole, příšlušné jméno by se nemělo zobrazovat).

      2.)PŘÍPAD Č.2

      v Listu2 mám jména, hodnoty a sloupec kde do Listu2 vybírám znakem „X“ poadované řádky…ty by se měly objevit v Listu2 (jméno+příslušná hodnota).

      Snad je můj dotaz srozumitelný, věřím že tahle úloha řešení má, ale za boha na něj přijít nemůžu, tak se obracím na vás :-)

      • lukan  

        jsem kus cypa…tenhle obrázek je správně

      • black.horse  
        1. kombinace =svyhledat() a =když() pokud neznáš, na syntax mrkni do nápovědy
        2. na dvojku bych si být Tebou asi spíše napsal jednoduchý makro (buď na tlačítko, ale asi lépe na událost worksheet change)
      • zdenek  

        Obojí by šlo jednoduše zkopírováním tabulky na druhý list a zapnutím filtru. V prvním případě filtr na sloupci hodnot – vypnout prázdné a 0. V druhém filtr na sloupci s X – vypnout prázdné.

        Zkopírováním nemyslím přes schránku jako hodnoty, ale jako odkazy:

        • označil levou horní buňku na Listu 2
        • „=“
        • přepnout na List 1
        • kliknout na levou horní buňku tabulky
        • na Listu 2 vybrat označenou buňku
        • chytit za pravý dolní okraj a zkopírovat na požadovaný počet sloupců a řádků

        Netuším, k čemu to petřebuješ. Třeba by stačilo krátkodobě zapínat filtry na Listu 1…

      • kliiima  

        Případ 2: pokud neumíš makro, když(svyhledat()=„x“;sv­yhledat();0) a nebo na jednom listu sloučit buňky a na druhým rozdelit

      • lukan  

        díky moc všem, ale zatím se mi to nijak nepodařilo vyřešit… jako nejschůdnější cesta pro mě mi přišlo řešení kliiimy Případ 2: pokud neumíš makro, když(svyhledat()=„x“;sv­yhledat();0) ale asi bych to potřeboval vysvětlit trochu nějak obšírněji.

        jinak nějaké makro a tak vím že existuje, ale to je asi tak vše co o tom vím :(

    • nitraq  

      Má excel nějakou funkci na přičítání měsíců k datu? Nebo jak to lze vyřešit?

      Ve sloupci A jsou datumy, ve sloupci B počty měsíců, ve sloupci C chci součet těchto dvou buněk vedle sebe. Když tedy bude v A1 např. 1.2.2017, v B1 2 (měsíce), tak v C1 bude 1.4.2017.

      • nitraq  

        Kdo se moc ptá, málo googlí:) Našel jsem, funkce EDATE.

        • hekynen  

          Ano, to jde použít taky, jen ale funkce nevrací datum, ale pořadové číslo dne, takže buňku/y je potřeba explicitně formátovat jako datum.

      • hekynen  

        =DATUM(ROK(A1);­MĚSÍC(A1)+B1;D­EN(A1))

        resp.

        =DATE(YEAR(A1);MON­TH(A1)+B1;DAY(A1))

    • mandak  

      Taky bych potřeboval help, zda někdo rychle neví:

      Potřeboval bych VBA skript. Mám dvě tabulky: tabulka A má např artiklove čísla, počet, jednotku atd. Pak mám druhou tabulku, kde jsou pouze artiklove čísla. Potřeboval bych do třetí tabulky vyfiltrovat hodnoty z první tabulky, ale jenom ty, které se shodují s artiklovymi čísly ve druhé tabulce. Nějaký nápad?

      • ˘Ö˘ Krab  

        Obojí seřadit podle #ART, použít funkci svyhledat, za #ART čísla druhé tabulky vypíše potřebné údaje z první.

      • JakeF  

        Kolik za něj nabídneš? :)

        Otázka je, jestli by ti ale opravdu nestačil ten VLOOKUP nebo INDEX/MATCH a pak přes filtr vybrat jen hodnoty, kde to nehází error.

      • hekynen  

        To by mělo jít v pohodě přes VLOOKUP (česky SVYHLEDAT).

        VLOOKUP(odkaz na sloupec s artiklem ve druhé tabulce; prvnitabulka!Slou­pecSArtiklem:Pos­ledniSloupecSez­namuHodnot; PořadovéČísloS­loupecSVýsled­kovouHodnotou­; FALSE)

        Příklady/návody třebas zde: http://office.lasakovi.com/…unkce-excel/

        • mandak  

          No mě se to právě přes VLookup nechce dělat, protože to potrebuju blbuvzdorny. Jako už mám zdrojak na VBA přes rozšířený filtr, ale nemůžu tam nějak namapovat, aby pokaždý bralo z první tabulky definovány počet řádků.tzn. pokud týden jedná má tabulka 50 řádku, počítat s 50, pokud druhý týden 400, tak počítat se 400. Prostě skript, který mě zavede na adresu např: sloupec J(ten je tam vždy) a řádek poslední vyplnenej.

          • mandak  

            Prostě u radku, kde se definuje range:A1:J489, potřebuju data A1:„poslední řádek ve sloupci J“.

            Snad je to pochopitelný :) já vim, že je to kravina, ale už nad tím půlhodiny badam a furt jsem v erroru

            • JakeF  

              Range(„J1“).Select

              Selection.End(xlDow­n).Select

              posledniHodnota = ActiveCell.Row

              Sheets(„xxx“)­.Range(„A1:J“ & posledniHodno­ta).AdvancedFil­ter …

              Asi… Píšu to z hlavy, nechce se mi to zkoušet.

              • mandak  

                Už jsem na to přišel, díky za nakopnutí, to jsem přesně potreboval. Yeeees.

          • JakeF  

            Pokud víš, že jsou všude vyplněný hodnoty, tak na poslední hodnotu v sloupci tě dostane „Selection.En­d(xlDown).Selec­t“, pak si můžeš přečíst parametr „.Row“ vybraný buňky do proměnný, odečíst hlavičku a máš počet hodnot. Případně ani neodečítat, pokud tu proměnnou používáš jako adresu řádku a začínáš loop od 2.

            Nebo to rovnou napsat do DO WHILE/UNTIL loopu, kterej pojede, dokud nenarazí na prázdnou buňku.

    • blackseal  

      Dobry vecer. Potrebujem zistit, ktora bunka (jej oznacenie) obsahuje maximalnu hodnotu z vybraneho rozsahu. Ide to vzorcom? Vopred vdaka 

      • JakeF  

        Jakože adresu buňky, která má nejvyšší hodnotu, třeba „C6“? No určitě by to šlo ve VBA napsat, předdefinovanýma funkcema mě způsob nenapadá.

        • blackseal  

          Presne tak. Ked som namatkovo preletel referencne funkcie, nic mi nedavalo zmysel.

          • plzakj  

            A co s tou adresou pak budes delat? Proc nejde pouzit hodnotu?

            • blackseal  

              Samozrejme, je to prkotina, v praci mam pristupy do viacerych systemov, okolo 30, hesla sa musia raz za cas menit a kedze mam svoje roky a priemernu pamat, pisem si do excelu user name, nove heslo a datum zmeny. A niekde hore som mal najnovsi datum – max a vedla som chcel mat referenciu na bunku, ktora to max obsahuje. Isteze, pri cca 30 riadkov je vyhladanie zrakom otazkou par sekund. Len som chcel vediet, ci to ide vzorcom.

              • nitraq  

                A co si prostě seřadit tabulku podle data s nejnovějším nahoře?

              • plzakj  

                Ctrl+F (nebo jaka je zkratka pro hledani v excelu)

              • Japhy  

                A připadá ti to z pohledu bezpečnosti ok? Když už si ta hesla musíš někam psát, použij nějakou osvědčenou aplikaci na správu hesel. Jinak stejná rada jako tu už zazněla – VBA funkce nebo nějaký filtrovatelný a seřazený seznam.

                • blackseal  

                  Mam to ulozene na konte, kde sa tiez musim dostat heslom (toto si naozaj neukladam), dokonca mam aj ten excel zaheslovany (ani heslo do excelu nemam v exceli), nerobim v NASA.

      • nitraq  

        Pokud ne VBA, tak kombinací MAX a VLOOKUP. Vedle každýho čísla si napíšeš textově označení buňky – C1, C2 atd., pak použít max a podle něj přes vlookup vyhledat textový označení buňky.

        • blackseal  

          Toto presne ma napadlo :). Ale hladal som elegantnejsie riesenie.

          • nitraq  

            Asi netřeba hledat elegantnější:) Čas strávený hledáním se ti nevrátí na rychlejším nebo elegantnějším řešení.

        • plzakj  

          Adresu bunky nemusi psat, to umi vratit fce Address, cesky nevim, asi “adresa” :-)

          • JakeF  

            No a jak jí vložíš ty parametry řádku a sloupce? :)

            • plzakj  

              Row(),Column() ;-)

              • JakeF  

                …který potřebujou jako argument tu adresu buňky, kterou se tím právě snažíš zjistit :)

                • plzakj  

                  PRD…

                  • JakeF  

                    …okay, NEBO svý vlastní buňky… Pořád nevidím způsob, jak tam jako parametr dát tu buňku s nejvyšší hodnotou.

                    • plzakj  

                      To netvrdim. Ja reagoval na toto “každýho čísla si napíšeš textově označení buňky – C1, C2 atd”. Neni potreba nic opisovat, staci natahnout vzorec a pouzit vlookup. Ale s ohledem na diskuzi vyse, ctrl+f nebo serazena tabulka jsou pro zvoleny ucel mnohem jednodussi reseni.

                      • JakeF  

                        Jo takhle, to samozřejmě jo… Já myslel, že ten VLOOKUP chceš dát do toho, aby to vyhodilo hodnotu jedním vzorcem.

                        Jinak když o tom tak přemýšlím, tak napsat tu funkci by bylo celkem primitivní. Range jako parametr, pak dva vnořený for loopy přes sloupce a přes řádky a v tom jeden IF, kterej by updatoval 2 kontrolní proměnný „adresa“ a „hodnota“, pokud je nová hodnota vyšší než aktuální. Na konci by to jen vysypalo hodnotu proměnný „adresa“.

        • plzakj  

          Jsem se nudil:

          Sloupec B hodnoty, Sloupec C adresy (fce “=ODKAZ(ŘÁDEK();SLO­UPEC())”)

          Adresa nejvyssi hodnoty v E3: “=VYHLEDAT(MAX(B2:B­6);B2:B6;C2:C6)”

          Pro zminovany usecase je jeste potreba zadavat datum ve spravnem tvaru. (Nebo prevest na cislo), aby bylo mozne hledat max/min.

          • blackseal  

            Dik, toto posobi najkompaktnejsie :).

          • JakeF  

            Jsi mě navedl na myšlenku, jak to udělat bez toho pomocnýho sloupce… Ale bude to fungovat jen pokud je datum ve správným formátu a především jsou všechny hodnoty v jednom sloupci. Přes víc sloupců už by to asi bez VBA opravdu nešlo.

            =ADDRESS(MATCH(MAX(B:B);­B:B;FALSE);2)

            • plzakj  

              Pekny. Rikal jsem si, ze by to nejak mohlo jit, ale uz jsem byl linej hledat vhodnou fci v helpu. Ta 2ka je cislo sloupce natvrdo (jen pro info ostatnim).

              Ted nastane druhy problem, jak najit bunku s adresou B:48576 :oD ctrl+f bude rychlejsi volba.

              • JakeF  

                Makrem by šlo jednoduše nastavit, ať se ti rovnou při změně nastaví i hypertextovej odkaz na cílovou buňku nebo si tam vedle přidat tlačítko.

    • lukan  

      zdravím všechny, jsem zpátky s dalším excelovským oříškem a prosím o radu místní odborníky :-)

      Rád bych si vytvořil rozevírací seznam, který bude fungovat následovně:

      např. když si na řádku 15 si navolím položku „b“ potřebuji aby se mi vedle ní rovněž objevilo příslušné číslo „2“. budu ale vždy vybírat jen z položek „a,b,c“.

      ví někdo jak na to?

      • lukan  

        nebo ještě takhle:

        počítám ceny různých výrobků. výrobek se skládá ze spousty položek. každá položka má svou cenu a různé použité množství v konkrétním výrobku.

        chci si navolit v jednom sloupci položky, které budou do konkrétního výrobku použity, v dalším sloupci ručně zadám množství a v dalším budu mít jejich pevně stanovenou cenu za jednotku a v dalším budu mít vynásobenou cenu za jednotku×množství (to už zvládám, jde mi jen o ten seznam) . snad je to jasné, dííííky.

        • plzakj  

          Myslim, ze excel na to neni vhodny sw. Spis formular v accessu s par relacnima tabulkama.

        • lukas aka mitro  

          Na to jednoznacne potrebujes SAP:)

        • Miki Gee  

          Ted na to nemám čas ale šel bych na to s funkcí KDYŽ tzn ze kdyz A něco tak B něco :D jsem ti pomohl co ?:D

        • lukan  

          už jsem to ke své spokojenosti vyřešil pomocí filtru a celkový součet pomocí příkazu SUBTOTAL :-)

          • Edwin  

            A já do teď nepochopil zadání :)

            • Japhy  

              Buď v klidu, já taky ne. Některé tyhle excelové matlaniny jsou čirá radost. Hlavně když je někdo na roky budovaný bastl pyšný a nechápe, že na začátku zvolil naprosto nevhodný nástroj…

              Mám u zákazníka jednoho člověka, který úplně šílenými způsoby kontroluje data z relační databáze. Než by věnoval jedno dvě odpoledne základům SQL, roky se pinoží s porovnáváním tabulek tak, že je zkopíruje z Accessu (kde jsou jako propojená tabulka), flákne do Excelu a potom kouzlí s řazením a funkcí EXACT (nevím jaký to má ekvivalent v češtině).

        • lukan  

          Ale mám tu další oříšek :D

          mám proměnnou hodnotu „X“,

          dále mám pevně stanovené hodnoty 150, 100, 60, 36 a 18… a potřebuji aby mi excel sám spočítal kolikrát musím použít jednotlivé hodnoty (150,100,60,36,18), aby byl jejich výsledný součet nebilžší vyšší možný proměnné hodnotě „X“.

          např proměnná hodnota je 432.

          tzn potřebuji

          150×2

          100×1

          36×1

          taky by to mělo asi obsahovat podmínku aby to nepočítalo např. 18×24, ale vždy co nejmenší počet použitých proměnných hodnot.

          • Edwin  

            Co když budeš mít tu proměnnou 431? Musí být vždy součtem součinů?

            • Edwin  

              Jinak je to řetězení fce IF dělení se zbytkem od nejvyššího čísla (dělitele) po nejnižší, přičemž vždy porovnáváš zbytek z předchozího dělení s následným dělitelem. Pakliže je 1 a víc, zapíše číslo, pakliže není, postupuje k dalšímu děliteli.

          • Deathwing  

            Jedna ze zakladnich veci co jsme delali na stredni.

            A1 je vstup, zbytek sloupce je celkova hodnota – hodnota v nasobku nejvetsi bankovky.

            Ve sloupci B jsou od nejvetsi jednotlive hodnoty

            C je hodnota / velikosti bankovky

            D zaokrouhleno dolu = pocet potrebnych kusu (B*D se pak odecte od puvodni castky)

            • lukan  

              to vypadá dobře, ale mám problém…udělal jsem vše podle tebe, ale počítá mí to 1×18 místo 1×36…a funkci FLOOR mám nějakou vylepšenou na FLOOR.MATH a chce to po mě i nějakou významnost a režim :(

              • Deathwing  

                vidim 32 do toho se nevejde 60, ani 36 a pak se chytne az 18, zbytek je 14.

                FLOOR FLOOR.MATH bude stejny, ty dalsi dve veci nevyplnis

    • lukan  

      Zdar, jsem tu zas s dalším excelovským dotazem :-)

      potřebuju aby mi do políčka „hustota materiálu“ skočila hodnota automaticky podle výše vybraného materiálu z rozevíracího seznamu – jak toho dosáhnout?

    • danis7  

      Zdar, přidám se z dotazem. Jaký použít vzorec pro výpočet času v konkrétních zónách TF. Abych to upřesnil. Mám tabulku (csv, export ze záznamu trasy), ve které mám jednom řádku čas a k tomu ve vedlejším sloupci tepová frekvence. Řádky jdou časově po sobě přibližně co 3 sekundy, t.j. co 3 sec. je řádek s časem a TF, počet řádků záleží na době trvání aktivity (0,5 hod až několik hod).

      A já bych potřeboval z této tabulky dostat dobu, kterou jsem strávil v Z1, Z2, Z3 … a v ideálním případě i graf.

      Díky

      • tonik666  

        časy jdou sčítat a odečítat, takže si do nového sloupce ke každému řádku dopočti délku trvání. Pak si do dalšího sloupce přiřaď dle tepovky pásmo Z1, Z2, Z3 (třeba pomocí IF a intervalů). A následně si pomocí Sumif nebo kontingenční tabulky udělej součet sloupce s délkou trvání podle Z1, Z2 a Z3 (3 vzorce sumif, jeden pro Z1, jeden pro Z2, Z3)

        • tonik666  

          Když jsem na to koukal, tak čas si budeš napřed muset vytáhnout z údaje o datu a času – ideálně pomocí funkce na čtení textu (např. Mid), která čte znaky stále ze stejné polohy. Pomocí Value to pak převedeš na číslo, abys s tím mohl počítat ačasy odečítat

          • volyn  
            1. Na druhou kartu si udelej tabulku kde budes mit v jednom sloupci Zonu TF a v druhem horni hranici
            2. Jak pise tonik666, musis vyzobat funkci CAST nebo MID datum a cas a udelat rozdil mezi radky ve vterinach napriklad. Tady chci podotknout,ze co vidim na tom obrazku tak ti aplikace dava jednou po 2s, jednou po5 5s a pak zas po 40s. Nevim me aplikace dava konstrantne co vterinu zaznam a tim by se ti ten vypocet dost zjednodusil. Proste bys na kazdem radku mel tu konstantu, v mem pripade (Wahoo Fitness) 1s.
            3. Funkci IIF si dopocitas podle aktualni TF v jake zone dany radek je
            4. Z toho vseho udelas jednoduchou kontingencku

            Pokud by ses s tim sral jeste v noci tak mi to posli a ja ti pomuzu

            • bruco  

              Ad 3. – jednoduchsie ako vnorene IF bude pouzit VLOOKUP s pribliznym vyhladavanim.

              • JakeF  

                A podle čeho by to našel? Zóny bude mít počítám určený jako hodnoty pro AP a ANP prahy… To by musel udělat tabulku po 1 tepu a k ní přiřazený pásmo. To si myslím, že ty vnořený IF jsou elegantnější.

                • bruco  

                  Dva stlpce, v prvom budu hranice zon, v druhom nazvy zon. Hranice zon budu uvedene tak, ze pre prvu zonu bede jej hranicna hodnota 0, dalsia zona bude mat uvedenu hornu hranicu predchadzajucej zony atd. Dolezite je, aby bol posledny parameter vlookupu 1, vedy vracia poslednu nizsiu hodnotu. Vyskusaj, uvidis. ;-)

                  • JakeF  

                    Jo takhle, to jsem nevěděl, že to přibližný vyhledávání jde takhle využít. Co jsem popisoval já by bylo na exact match, to je fakt.

            • danis7  

              Tohle je na mě už moc složité, počítal jsem s tím, že to půjde nějak lehce, protože dělat to s každým záznamem trasy je asi nesmysl :(

              Záznam trasy jsem dělal jen zkušebně, se simulací GPS, proto ty různé časové úseky. Venku při plném signálu GPS to dělá záznam po 3 sec

              Kdyby to někdo chtěl zkusit udělat, tak soubor je tady

              goo.gl/YKTa1Y

              • JakeF  

                Pokud máš stejnej formát vstupů, tak dobře napsaný VBA by to zvládlo a měl bys to pak už jen pokaždý na kliknutí. Teď ještě sehnat někoho, kdo by byl ochotnej ti to VBA jen tak z nudy napsat :).

              • Japhy  

                Na stejný časový úseky se obecně nedá spoléhat. Když je předpoklad že by to mohlo být někdy jinak, tak tomu určitě dřív nebo později taky určitě bude. Léta praxe. Já bych na to šel nějakým skriptovátkem (python, bash asi), ale zase nemůžeš brát člověka od fochu jako nezaujatého hledače řešení. Skript co by ten texťák procházel řádek po řádku, v proměnné si držel předchozí čas, celkový čas a poměr jednotlivých zón a hodnotou z každého dalšího řádku upočítal změnu v tom kterém pásmu. Otvírat to v Excelu? Voser. Jedině dávkový zpracování. Utilitka, na vstup poslat csv, na výstup poslat celkové časy a procenta strávená v jednotlivých zónách.

                Nebo se poohlídnout po hotovém řešení, zóny uměl myTourBook dokud jsem ho používal. Nějaký csv to naimportovat umí, HR zóny to má taky nastavitelný.

                http://mytourbook.sourceforge.net/…rted-formats

                http://mytourbook.sourceforge.net/…ences/people#…

                • Japhy  

                  Helemese, mně to furt leží na disku a funguje.

                • JakeF  

                  Otázka je, v čem má vstupy… Ale všechno co popisuješ uděláš v excelu přes VBA, včetně grafů. A rovnou si souhrnný data můžeš poslat i do druhýho excelu, kde si povedeš tréninkovej deník.

                  • danis7  

                    Trénink nahrávám telefonem pomocí app Locus spolu s spárovaným hrudním pásem. Výstup Locus umí v GPX, FIT, CSV, TCX, KML …

                    Celé to je proto, že jsem zatím nenašel aplikaci na telefon, která mi z výstupu z Locusu nebo ze Stravy vyhodnotí časy v zónách. Locusu se nechci vzdát, protože možnosti nahrávání tras, … jsou o kus dále oproti aplikacím typu Garmin connect, Polar flow … a ty zase neumí import k vyhodnocení :)

                    • JakeF  

                      CSV Excel nativně přečte… To VBA by šlo možná i celý nahrát, že bys vůbec nemusel na kód sáhnout. Ale trochu už to chce vědět co dělat.

              • tonik666  

                hele ty vzorce jsou copy paste. jednou napises a jen kopirujes. zkusim ti to nahodt

    • grafik  

      Na tohle je ideální vbs.

      Potřebuješ data zpracovat v cyklu, porovnat aktuální datum s následujícím (řádkem) a odečíst. Rozdíl v sec uložit do proměnné na základě intervalu Z. Celkový čas každé Z převedeš z sec na minuty. Dívám se, že Z nemáš definované.

      U posledního záznamu nemáš jak zjistit rozdíl času.

      (Omylem zařazeno do hlavní úrovně, reaguji na: danis7 22.1.2018 12:48)

      • tonik666  

        Není VBS zbytečně složité, když to lze udělat třemi až čtyřmi vzorci?

      • volyn  

        kdyz se trapi s takovym zakladem tak asi VBS nebude pro nej volba. A ano jeden zaztnam ztrati, treba 10s ze 2 hodin = serepes

      • JakeF  

        By mě zajímalo, jak to VBS do Excelu dostane :).

        • volyn  

          vba se prepsal

        • hekynen  

          Ale jo, dá se. ;-)

          • JakeF  

            Na výpočty a úpravy buněk?

            • hekynen  

              Ano, i na to. Přes OLE automation jde všechno. ;-)

              • JakeF  

                To neznám, já jedu automatizaci přes UiPath… Ale asi bych přes něj stejně spíš spustil to VBA :).

                • hekynen  

                  Tak jasně, že je to škrábání se levou nohou za pravým uchem a přes VBA je to lepší. :)

            • grafik  

              Vba je na tyto potřeby dokonalé, nejsem daleko od pravdy s tvrzením, že se v něm dá napsat docela solidní SW. Výpočty a formátování buňek jsou jen začátek. Dobře napsané funkce s ošetřením logických a běhových chyb zvládnou víc než naklikané vzorečky.

              • JakeF  

                Já vím, k čemu je VBA a co v něm jde… Tady šlo o to, že to je VBA a ne VBS.

              • Japhy  

                Jako programátor pod tímto tvrzením postrádám možnost vložit blijícího smajlíka.

                • lukas aka mitro  

                  Dneska je programator kazdy java lepic:)

                • hekynen  

                  Proč?

                  • Japhy  

                    Už jsi někdy dostal za úkol po nějakém příliš tvořivém uživateli za úkol udržovat v alespoň trochu heterogenním prostředí nějaký VBA bastl? Asi ne ;-) dokud si to ten uživatel matlá a spravuje sám, super. Problém je když se ten bastl dostane do obecného užívání a začne kolovat po firmě. Ideálně s nějakými těmi ODBC propojeními, ideálně na mixu x86 i x64 stanic s různou lokalizací a různými verzemi Office. Spravuji po exkolezích pár takových Excel a Access zprasenin.

                    • volyn  

                      tak jim proste napis neco lepsiho

                      • Japhy  

                        Hm, to je asi tak jako když někdo postaví přízemí z vepřovic a když se ten barák o pár desítek let vyžene o štok, někoho konečně napadne, že ty vepřovice nebyl úplně nejlepší nápad.

                        Jasně, postupem času (když najde zákazník volné finance a my kapacity) to migrujem do webových reportů, ale je to běh na dlouhou trať. Nejbolestivější je donutit uživatele přestat používat ty desítky let staré bastly.

                        • volyn  

                          vetsinou je za tim IT, ktere nedodava. Pak maji lidi potrebu bastlit. U nas ve firme tuhle starou bolest tezlikvidujem

                    • hekynen  

                      Vývojem (taky) ve VBA se živím 20+ let a neřekl bych, že to jsou nějaké VBA bastly. ;-)

                      • Japhy  

                        Dělat ve VBA převážnou většinu času a ne jen nárazově jednou za uherák, asi bych šel radši tancovat do gejklubu u tyče. :-D

                        • grafik  

                          Tak záleží jaký systém děláš. Nemusí to být taková pruda jak naznačuješ a záleží co koho baví. VBA klidně použiješ i v Corel-u pro nějaké globální zpracování makro dat do grafického (vektorového) výstupu, takže se nemusíme ohledně použitelnosti bavit pouze o Office. Podle mě je to zábavnější než PHP a frameworky. Osobně preferuji jakýkoliv programovací jazyk, kde je možné použít Debug a Breakpoint – zjednodušeně (i historicky v rámci platformy).

                        • hekynen  

                          Máš určitě pravdu, dělám jen bastl. :-)

                          • Japhy  

                            A to běží v Office?

                            V Excelu máme vlastní doplněk pro adhoc reporting nad OLAP databázemi. Vlastní funkce, vlastní VBA API. Když vidím z doslechu od developerů jaké neskutečné klacky pod nohy jim v průběhu let hází Microsoft (logicky, je to konkurence jejich BI řešením), jsem rád že si matlám ty svoje ETL a databáze. Nejde o samotný kód, dejme tomu že v tom jde napsat něco co má hlavu a patu (pokud to píše někdo kdo u toho přemýšlí), ale o platformu na které to běží. Teď zrovna řeším jedno VB.NET klikátko, které pro konverzi z xml do xls používá COM objekt Excelu. Na jednom PC to funguje, na druhém ne. Stejný OS, stejný Office. Příčina? Doprasená registrace a odregistrace knihoven při upgradu Office.

                            • hekynen  

                              Jo, běží to pod Access (data jsou na SQL; ale požere to i MDB, případně i jiné databáze, kupř. PostgreSQL), je to v podstatě mnou vytvořené prostředí pro vývoj aplikací:-), takže kupř. ten „registr smluv“ je otázka tzv. pár kliknutí. Umí to i takové věci, jako jsou automatické aktualizace v rámci sítě (na jednu stanici se nahraje nová verze a na ostatních se to samo zaktualizuje), jsou tam řešena přístupová a výkonná práva (zobrazit, editace, přidávání) atp. Pro ten segment trhu, pro který dělám(e), je to dostatečné (malé firmy, instalace do max 25 stanic).

                              A máš recht, že s těmi různými verzemi Acc je to někdy peklo, ale zatím se to vždycky nějak podařilo vyřešit (byť v jednom případě jsme místo Acc2010 runtime museli dát Acc2003 rt, protože ta stanice verzi 2010 odmítala).

                              Mimochodem, stále provozujeme i řešení pod Acc97 (přesně dle hesla „Když to funguje, tak do toho nerýpej“). ;-)

                              Ale plně uznávám, že pod vb.net/c# ty chujoviny s nefunčností, protože „něco“, taknějak nejsou, taky už mám zepár projektů v tomto prostředí za sebou. Ale zase jsou tam jiné problémy. Prostě všude je něco. :)

                        • pavlix  

                          VBA ve spojeni s Excelem je bozi, ja v tom zbastlil par funkcnich programku na miru, ktere se proste nedaji nikde sehnat (protoze je jeste nikdo nevyrobil) a nejsem programator, hodne rad a reseni urcitych procedur se da vygooglovat.

                          • volyn  

                            je to proste programovaci jazyk vhodny k udelani nejaky nastroju pro daneho uzivatele. Jakmile udelas nastroj a rozsiris ho mezi sirsi populaci, tak je to koleda o pruser. Zanest vsem aktualizace apod..

                            • pavlix  

                              Ano, to chapu, ja to vyuzivam jen pro sebe a stale tam neco upravuju a vylepsuju.

      • lukas aka mitro  

        Ty casove kroky si vytahnes nejakou fci pro diferenci, ne? Pochopitelne diferenci budes mit o jedu min, nez casovych bodu…

        Ja bych si napsal jednoduchy skriptik v matlabu:)))

Nová reakce na zakládající

Pro napsání příspěvku se prosím přihlaste nebo zaregistrujte.