Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 7. 4. 2015 20:39:36

maic
Člen
Registrace: 7. 4. 2015
Příspěvků: 3

Seznam do dvou listů

Zdravím lidičky,
potřeboval bych od Vás poradit.

Mám vytvořený sešit a na jeho první listu je seznam lidí ve tvaru:

1. | JMENO | A
2. | JMENO | A
3. | JMENO | B

první sloupec je pouze pořadové číslo, druhý sloupec jméno a třetí sloupec je značka týmu. A já bych potřeboval tento seznam vykreslit ve dvou nových listech daného sešitu tak aby jeden list byl seznam, který jsem zmínil vejš. Druhý list by obsah všechny co mají ve třetím sloupci "A" a třetí co mají ve třetím sloupci "B".

Šlo by nějak udělat takovejto výpis dat tak aby se v nových listech zobrazovali v určité tabulce?

Děkuji Vám předem za odpověď,
Michael

Offline

#2 7. 4. 2015 21:32:01

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Seznam do dvou listů

Šlo by to například pomocí VLOOKUP. Je tam problém s tím, že by se mělo vyhledávat podle sloupce C a vložit údaje z A a B. VlookUp hledá v levém sloupci a vrátí údaj ze zvoleného sloupce vpravo.
     VlookUp ale není jediná možnost. Jde to i jednoduše pomocí IF. Dotaz na každý řádek - něco jako
= IF('list1'.C1 = "A";'list1'.B1;""). pro skupinu A (list2)
= IF('list1'.C1 = "B";'list1'.B1;""). pro skupinu B (list3)
     Možností je ještě víc, ale jde o to kolik údajů je v listu1 a zda chcete získat vzorcem hned seřazený seznam skupiny A, B (bez mezer).
     Nejlepší je samozřejmě makro, které není nijak náročné a dá se pro tento případ i dobře nahrát pomocí záznamníku.

Editoval neutr (7. 4. 2015 21:34:32)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 7. 4. 2015 21:42:43

maic
Člen
Registrace: 7. 4. 2015
Příspěvků: 3

Re: Seznam do dvou listů

Mno makra v LibreOffice calc jsem ještě nedělal a nemohu nijak přijít na to jak tohle udělat. Seznam se může časem rozšiřovat o počet řádků a samozřejmě i možná o počet sloupců. Každopádně sloupec C zůstane vždy zásadním. Pomohlo by mi třeba kdyby šlo udělat výpis tabulky podle toho jestli řádek obsahuje "A" nebo "B" ve sloupci "C" a následně by mi dle toho vypsal do nového listu pouze "A" nebo "B" samozřejmě bez mezer.

Jedná se vlastně o seznam zaměstnanců a jejich zařazení do týmů "A" a týmu "B" a proto potřebuji každý list pro nový tým s novou tabulkou.

Co se týče PHP či jiných jazyků to bych zvádl udělat bez problému, ale potřebuji aby to fungovalo v LibreOffice jelikož do prvního sešitu budou časem vkládat další záznami nebo je upravovat i jiní lidé.

Děkuji za pomoc.

Offline

#4 8. 4. 2015 06:30:05

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Seznam do dvou listů

Udělejte vzor sešitu s několika příklady. Jde spíš o hlavičky (začátek seznamů na listech), nebo to co by se v budoucnu mohlo vyskytovat (další sloupce ap.). Také by to chtělo určit buňku, která bude oznamovat, že seznam není aktualizovaný (při zápisu nové položky ap.).
      U řešení vzorcem je důležité, zda bude seznam na 1. listu setříděný a podle čeho. Dále například názvy listů. Také je důležité zda to má být systém, kterému porozumí a bude umět upravovat běžný uživatel (například dílčí nápověda : přidejte položku do listu2...), nebo to má být komfortní řešení na tlačítko, či dokonce řešení pro sdílený dokument - více naráz přihlášených uživatelů do jediného listu (sešitu).
      Snad se mi povede utrhnout chvíli a udělat podle vzoru několik příkladů řešení. Jde o 2-3 případy řešení vzorcem, 2-3 případy makrem a kontingenční tabulkou. Oni se podobné dotazy objevují dost často. Nejspíš byste našel nejaké řešení v archivu : Tato stránka, karta "Hledat" - zadat správný termín pro vyhledávání a vybrat Calc.


      PS:- Makra se v LibreOffice musí povolit aby chodila. Jde o nabídku Nástroje > Možnosti > LibreOffice > Zabezpečení > Zabezpečení maker > Karta důvěryhodné zdroje > Důvěryhodné umístění - (přidat). Zabezpečení se doporučuje nastavit na střední. Vybraný adresář pro spouštění maker může být i celý disk, ale doporučuji jen Dokumenty, nebo speciální foldr.
      Pro možnost nahrávání maker záznamníkem : Nástroje > Možnosti > LibreOffice > Pokročilé > Volitelné (nestabilní) možnosti > Zaškrtnout "Povolit záznam maker" (také můžete povolit experimentální funkce).
      Nakonec restartovat LibreOffice Calc, zavolat Nástroje > Makra > Zaznamenat makro. S tím byste se měl naučit pracovat. Pomáhá to hlavně při podobných automatizacích úloh. Nahrajete postup, uložíte a otestujete, jestli to dělá co má. Ovšem tak snadné to také není. Často to dělá něco jiného. Umět nahrát makro je sice uživatelská znalost, ale musíte znát co ještě jde nahrát a jak, a co už se nahrát nepodaří. Často to chce manuální zásah do kódu - a to je podle mne dobrý začátek k tomu naučit se programovat.

Editoval neutr (8. 4. 2015 06:53:59)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 8. 4. 2015 07:03:22

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 697

Re: Seznam do dvou listů

Výpis dělám vždy pouze dvěma způsoby - nejednoduší ale graficky ne zcela vyhovující je kontingenční tabulka. Druhý způsob je pomocí pomocného sloupce, kde se na základě podmínky vypíše pořadové člíslo vyhovujícího řádku např. ve sloupci A bude: =IF(C2="A";MAX($A$1:A1)+1;0) - takže ve sloupci A se u všech řádků obsahujících znak A ve sloupci C vypíše 1,2,3... atd. následně na příslušném listu vyhledávám VLOOKUP(ROW();list1.$A$2:$C$500;3;0) - podle čísla řádku se vypíše údaj ze zdrojové tabulky, pokud potřebuji posun oproti reálnému řádku tak lze jednoduše odečíst konstantu ROW()-číslo nebo prostě ROW(A1). Pokud má současně fungovat více výpisů pak musí být i více pomocných sloupců. Pokud by nutně musel být pomocný sloupec vpravo, pak lze při výpisu postupovat přes funkce MATCH(podobně jak vlookup) zase v nějakém pomocném sloupci na listu s výpisem a INDEX(list1.$A$1:$C$500;odkaz na výsledek match;číslo sloupce) pro výpis příslušných údajů. Většinou tento systém používám tak že výpisová tabulka je jen jedna a mění se kriterium - zde "A" a "B" - již v tom pomocném sloupci na listu1 pomocí nějakého odkazu =IF(C2=list2.$A$1;MAX($A$1:A1)+1;0)

Editoval ludviktrnka (8. 4. 2015 07:33:10)


LibreOffice 5.4.

Offline

#6 8. 4. 2015 16:33:02

maic
Člen
Registrace: 7. 4. 2015
Příspěvků: 3

Re: Seznam do dvou listů

neutr napsal(a)

Udělejte vzor sešitu s několika příklady. Jde spíš o hlavičky (začátek seznamů na listech), nebo to co by se v budoucnu mohlo vyskytovat (další sloupce ap.). Také by to chtělo určit buňku, která bude oznamovat, že seznam není aktualizovaný (při zápisu nové položky ap.).
      U řešení vzorcem je důležité, zda bude seznam na 1. listu setříděný a podle čeho. Dále například názvy listů. Také je důležité zda to má být systém, kterému porozumí a bude umět upravovat běžný uživatel (například dílčí nápověda : přidejte položku do listu2...), nebo to má být komfortní řešení na tlačítko, či dokonce řešení pro sdílený dokument - více naráz přihlášených uživatelů do jediného listu (sešitu).
      Snad se mi povede utrhnout chvíli a udělat podle vzoru několik příkladů řešení. Jde o 2-3 případy řešení vzorcem, 2-3 případy makrem a kontingenční tabulkou. Oni se podobné dotazy objevují dost často. Nejspíš byste našel nejaké řešení v archivu : Tato stránka, karta "Hledat" - zadat správný termín pro vyhledávání a vybrat Calc.


      PS:- Makra se v LibreOffice musí povolit aby chodila. Jde o nabídku Nástroje > Možnosti > LibreOffice > Zabezpečení > Zabezpečení maker > Karta důvěryhodné zdroje > Důvěryhodné umístění - (přidat). Zabezpečení se doporučuje nastavit na střední. Vybraný adresář pro spouštění maker může být i celý disk, ale doporučuji jen Dokumenty, nebo speciální foldr.
      Pro možnost nahrávání maker záznamníkem : Nástroje > Možnosti > LibreOffice > Pokročilé > Volitelné (nestabilní) možnosti > Zaškrtnout "Povolit záznam maker" (také můžete povolit experimentální funkce).
      Nakonec restartovat LibreOffice Calc, zavolat Nástroje > Makra > Zaznamenat makro. S tím byste se měl naučit pracovat. Pomáhá to hlavně při podobných automatizacích úloh. Nahrajete postup, uložíte a otestujete, jestli to dělá co má. Ovšem tak snadné to také není. Často to dělá něco jiného. Umět nahrát makro je sice uživatelská znalost, ale musíte znát co ještě jde nahrát a jak, a co už se nahrát nepodaří. Často to chce manuální zásah do kódu - a to je podle mne dobrý začátek k tomu naučit se programovat.



Zdravím,
zde zasílám příklad jak by to cca mělo vypadat. Šlo by to takto nějak sprovoznit?

http://uloz.to/xZs4YsfV/team-list-ods

Děkuji předem za odpověď,
Michael

Offline

#7 9. 4. 2015 11:49:21

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Seznam do dvou listů

Tak jsem něco málo sesmolil. Neměl bych mít extra potíže. Dělám také věci poměrně často hned napoprvé. Ale všera se mi nedařilo. Vyskytl se neočekávaný problém se vzorci. Vím, že se nějak měnila syntaxe, ale to co jsem zjistil je asi chyba LO. Nelze zapsat adresu úseku pomocí složeného textu. Když je to napsáno bez skládání (např A3:B100) tak je vše OK. Jakmile napíšu "A"& A2+2 & ":B100", nebo i složeninu z funkcí ADRRESS ap. tak nic nefunguje. Dříve byly problémy jen s několika vzorci, ale to se dalo obejít pomocí MATCH, ADDRESS ap. Nyní takto nepostavím ani úsek pro SUM.
     Takže jsem něco udělal, ale visí to na absolutních adresách, které je nutno ve výsledku setřídit aby byly pod sebou. Možná existuje nějaký trik pro tvorbu složených úseků, ale nyní ho neznám.
Vzorce
Nahrávaná makra
Psaná makra
     Nahraná makra jsou prakticky bez úpravy a mohou obsahovat zbytečnosti. Měl jsem tam jedinou chybu - deklaraci s argumentem tuším 24 kterou jsem smazal. Pak tam jsou jen propojky na další makra a zápis funkce PRINT která oznamuje konec a že můžete přímo skočit do kódu makra.
     Nahrál jsem první makro Krok1 (ten smaže staré záznamy) a pak krok2 což je vlastní makro které kopíruje - (zadařilo se mi asi na třetí pokus s jednou chybou - tu jsem opravil). Další 2 makra jsem jen upravil v parametrech a názvech listů (jde to rychle - najdi a nahraď..)
     Psané makro je asi nejsnadnějším řešením (nejméně pracné), ale vynechal jsem tvorbu hlaviček - ty zůstávájí při aktualizaci beze změny. Mažou se jen řádky zápisů.



     Je mi jasné, že to bude vyžadovat další vzorce pro vyhodnocení - kolik jaké družstvo, možná kdo byl nejlepší mezi družstvy, muži, ženami a podobně. Vzorce se dají napsat jak v nahrávaných makrech, tak v psaných. To problém není.
     Když zase budu moct, tak udělám kontingenřní tabulku, pokud se jí někdo neujme. Já bych se raději podíval co s těmi vzorci.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 9. 4. 2015 13:42:01

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 697

Re: Seznam do dvou listů

Mám pocit, že jdem s kanónem na komára, zkuste toto https://dl.dropboxusercontent.com/u/146 … ist_LT.ods


LibreOffice 5.4.

Offline

#9 10. 4. 2015 11:21:55

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Seznam do dvou listů

Tak jsem asi našel cestičku. Funkce INDIRECT to stále umí načíst ve formě vzorce, ale je to asi jediný případ. Problém je asi v tom nově zabudovaném OpenCL, které zaručeně hapruje.
      Mezitím jsem dodělal řešení s pomocnámi sloupci (podobné jako udělal pan Trnka). V sešitech Team(A,B,C) se pomocí vzorců automaticky řadí zápisy za sebou. Vzorce jsou jen do řádků 100, ale jsou nastaveny až na 999 položek. Takže když překročíte řádek 100 musíte kopírovat všechny vzorce řádku (Ax:Fx) na všech listech Teamů a řádky z prvních 3 sloupců na listu "Emploees" (jsou skryté). Zobrazené zápisy mají orámování podmíněným formátem. Soubor je tady : Vzorce2.
      Otestuji řešení se skládanými adresami. To také vyžaduje pomocný sloupec, ale stačí v listech Teamů. Na listu "Emploees" není nic takového potřeba potřeba.

Editoval neutr (10. 4. 2015 11:23:21)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí