Favicon Svetmobilne.cz  Svět mobilně Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 7 z 7

Téma: Excel: Vyhledání posledního výskytu

  1. #1
    Nováček
    Registrace
    Sep 2009
    Příspěvků
    4

    Dobrý den,
    potřeboval bych poradit s vytvořením funkce v excelu. Mám tabulku o třech sloupcích.

    - V prvním sloupci (A) je datum dne. Data jdou chronologicky za sebou, ale mohou se vyskytnout i několikrát po sobě. Například 3x bude datum 12.3.2009, potom 5x 15.3.2009, 2x 16.3.2009 atd.

    - Ve druhém sloupci (B) je čas - hodina toho daného dne, ale tento sloupec mě v této chvíli nezajímá.

    - Ve třetím sloupci (C) je údaj "Dveře1" nebo "Dveře2". Tyto údaje se mohou vyskytnout jakkoliv - může být, že jeden den se vyskytnou oba, druhý den jen třeba jeden údaj atp.

    Je to tabulka zaznamenávající průchod dveřmi, čas průchodu a které dveře to byly. Tato tabulka se pořád aktualizuje a může mít až 5024 řádků s údaji. Já bych potřeboval, aby se mi v jiné buňce (např. D1) objevilo, že v poslední den záznamu se otevřely dveře1, dveře2 nebo oboje dveře. Nic víc nepotřebuju. Jde mi jen o poslední den a jaké dveře to byly. Jakou funkci bych měl použít? Díky za řešení.
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SHW
    Registrace
    May 2006
    Příspěvků
    4,042

    Jo, tak
    pozvyhledat, dnes - vyhledá pozici prvního řádku s dnešním datem
    svyhledat, nepřímý.odkaz - vyhledat v oblasti hodnot s dnešním datem (viz fce výše)
    pomocí nepřímý.odkaz, jestli byly otevřené dveře1 respektive dveře2

    tak a teď už je to dobře

    PS: Pokud Ti to takhle nestačí, tak se ještě ozvy :-)
    Naposledy upraveno uživatelem Logout: 17-09-2009 v 13:00
    Odpovídat lze po přihlášení



  3. #3
    Nováček
    Registrace
    Sep 2009
    Příspěvků
    4

    Citace Původně odesláno od Logout Zobrazit příspěvek
    Jo, tak
    pozvyhledat, dnes - vyhledá pozici prvního řádku s dnešním datem
    svyhledat, nepřímý.odkaz - vyhledat v oblasti hodnot s dnešním datem (viz fce výše)
    pomocí nepřímý.odkaz, jestli byly otevřené dveře1 respektive dveře2

    tak a teď už je to dobře

    PS: Pokud Ti to takhle nestačí, tak se ještě ozvy :-)
    Díky moc za rychlou odpověď, ale já jsem úplný excel-začátečník a hlavně samouk a moc mi to nepomohlo. Jedna věc je ta, že se nemusí vždy jednat o dnešní datum - je možné, že poslední průchod dveřmi se uskutečnil např. před třemi dny.
    A další věc je ta, že nevím, jak použít uvedené funkce. Tápu nad tím už několik dní a tak nějak jsem si metodou pokus/omyl a pomocí offline nápovědy v excelu zjistil, že bych měl použít fce pozvyhledat a svyhledat, ale na funkci nepřímý.odkaz jsem vůbec nedošel. Každopádně jsem to podle Tvých rad všelijak zkoušel, ale nepochopil jsem ani přesně k čemu Nepřímý.odkaz vlastně slouží a jak tu výslednou celou funkci poskládat. Omlouvám se a pokud bys byl tak hodný a věnoval mi ještě několik chvil, byl bych vděčný...
    Odpovídat lze po přihlášení

  4. #4
    Starousedlík SHW
    Registrace
    May 2006
    Příspěvků
    4,042

    Tak jo:
    myšlenka: najdu, jestli v poslednim dni se vyskytuje řetězec dveře1, respektive dveře2.
    Abych to moh udělat, potřebuju najít oblastm, kde je poslední den, třeba takhle:
    - poslední den je MAX(A1:A98).

    Já potřebuju najít, odkud mám začít hledat, tzn. první výskyt tohoto dne. Jelikož fce vždycky hledaj poslední výskyt, tak radši budu hledat "předposlední den" MAX(A:A)-1, tzn:

    POZVYHLEDAT(MAX(A:A)-1;A:A;1)
    - to mi vrátí poslední ignorovaný řádek.

    Pak potřebuju nějak vybudovat prohledávanou oblast. Nepřímý odkaz by to uměl asi taky, ještě jednoduší je užít fci posun

    POSUN( sloupec C; posuň o počet ignorovaných řádků ; se sloupci nehejbej = 0 ; výška oblasti - viz dále; šířka oblasti = 1)

    Výška prohledávaný oblasti má dvě možnosti, buď tam prsotě střelim nějaký číslo (např. denně může bejt max 500 otevření, tak tam hodim pětset, nebo tam můžu dát maximum, co jde, tzn max řádků (65535) - začátek. Tzn todle:

    POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1)

    No a v týdletý oblasti dam vyhledat dveře1 nebo 2, a to přesný výskyt:

    =SVYHLEDAT("Dveře1";POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1);1;NEPRAVDA)
    =SVYHLEDAT("Dveře1";POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1);1;NEPRAVDA)

    pokud to najde (vrátí ndveře 1 resp. 2), tak byly otevřený, pokud nenajde (#N/A), nebyly.
    Odpovídat lze po přihlášení

  5. #5
    Nováček
    Registrace
    Sep 2009
    Příspěvků
    4

    Citace Původně odesláno od Logout Zobrazit příspěvek
    Tak jo:
    myšlenka: najdu, jestli v poslednim dni se vyskytuje řetězec dveře1, respektive dveře2.
    Abych to moh udělat, potřebuju najít oblastm, kde je poslední den, třeba takhle:
    - poslední den je MAX(A1:A98).

    Já potřebuju najít, odkud mám začít hledat, tzn. první výskyt tohoto dne. Jelikož fce vždycky hledaj poslední výskyt, tak radši budu hledat "předposlední den" MAX(A:A)-1, tzn:

    POZVYHLEDAT(MAX(A:A)-1;A:A;1)
    - to mi vrátí poslední ignorovaný řádek.

    Pak potřebuju nějak vybudovat prohledávanou oblast. Nepřímý odkaz by to uměl asi taky, ještě jednoduší je užít fci posun

    POSUN( sloupec C; posuň o počet ignorovaných řádků ; se sloupci nehejbej = 0 ; výška oblasti - viz dále; šířka oblasti = 1)

    Výška prohledávaný oblasti má dvě možnosti, buď tam prsotě střelim nějaký číslo (např. denně může bejt max 500 otevření, tak tam hodim pětset, nebo tam můžu dát maximum, co jde, tzn max řádků (65535) - začátek. Tzn todle:

    POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1)

    No a v týdletý oblasti dam vyhledat dveře1 nebo 2, a to přesný výskyt:

    =SVYHLEDAT("Dveře1";POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1);1;NEPRAVDA)
    =SVYHLEDAT("Dveře1";POSUN(C1;POZVYHLEDAT(MAX(A:A)-1;A:A;1);0;65535-POZVYHLEDAT(MAX(A:A)-1;A:A;1);1);1;NEPRAVDA)

    pokud to najde (vrátí ndveře 1 resp. 2), tak byly otevřený, pokud nenajde (#N/A), nebyly.
    Mockrát děkuju, velice jsi mi pomohl. Dávám děkovné body, protože lépší vysvětlení si neumím představit a je pro mě důležité to zároveň i pochopit. Díky. A ještě bych tě využil, když vidím, že jsi odborník. Myslíš, že by šlo taky udělat aby mi to vypsalo, který poslední den byly otevřeny dveře1 a dveře2? Jakože že třeba naposledy byly dveře1 otevřeny třeba 13.6. a dveře2 17.6.?
    Naposledy upraveno uživatelem matio: 18-09-2009 v 18:15
    Odpovídat lze po přihlášení

  6. #6
    Nováček
    Registrace
    Sep 2009
    Příspěvků
    4

    Ta druhá věc by teda už nešla?
    Odpovídat lze po přihlášení

  7. #7
    Starousedlík SHW
    Registrace
    May 2006
    Příspěvků
    4,042

    =MAX(KDYŽ(C1:C65535="Dveře1";A1:A65535;0))
    ale musíš to zadat jako array formula (maticovej vzorec) stiskem ctrl+shift+enter


    vyber takový řádky z A1:A65535, kde v odpovídajícím poli C1:C65535 je dveře1 a
    z nich vyber maximum...
    Odpovídat lze po přihlášení



Podobná témata

  1. Microsoft Office: EXCEL
    Od boek v sekci Kancelářské balíky
    Reakcí: 1
    Poslední příspěvek: 09-09-2014, 22:40
  2. Vyhledání telefonu přes internet
    Od souteh v sekci Volná témata
    Reakcí: 3
    Poslední příspěvek: 15-04-2011, 21:37
  3. EXcel príkaz
    Od Chester v sekci Software denní potřeby
    Reakcí: 4
    Poslední příspěvek: 17-03-2010, 14:18
  4. Microsoft Office: Excel: problém s 0
    Od Liqid v sekci Kancelářské balíky
    Reakcí: 3
    Poslední příspěvek: 20-07-2009, 08:16
  5. Reakcí: 6
    Poslední příspěvek: 19-03-2009, 23:34