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

#1 11. 5. 2015 09:54:59

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

generování dat na nový řádek

Ahoj,
potřeboval bych vyřešit generování dat z jedné tabulku do druhé ve stejném souboru. V jedné tabulce se mi generují data na řádky a pokud se některá z nich shodují (např. podle stejného číselného kódu) potřebuji generovat řádky do další tabulky, čili každou položku na samostatný řádek. Řeším, že první položka ze zdrojové tabulky se vygeneruje na první řádek a další položka se vygeneruje na další a zde nevím jak vyřešit, že pokud první řádek není prázdný, tak data se budou generovat na nejbližší volný řádek. Jde to nějak bez makra?

Díky moc

Offline

#2 11. 5. 2015 10:10:03

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

Re: generování dat na nový řádek

Ano mělo by to jít bez makra, ale jen do určitého množství. Jak se to dostává přes několik stovek zápisů je to špatné.
     Chce to ale ukázku. Takhle si asi představu neuděláme.


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 11. 5. 2015 10:40:42

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

Re: generování dat na nový řádek

Dělám to vždy pomocí pomocného sloupce v základní tabulce. IF(vaše kriterium;max(A1:$A$1)+1;0) takto vytvoříte sloupec kde budete mít u každého vyhovujícího řádku postupně 1,2,3 ... a u nevyhovujích budou nuly. V tabulce do níž chcete data umisťovat dáte do pomocného sloupce MATCH(ROW(A1);zdrojovátabulka.$A$1:$A$100;0) - tím dostnete do sloupce výčet všech čísel vyhovujících řádků. Na každém řádku pak načetete data ze zdrojové tabulky pomocí INDEX(zdrojovátabulka;oDkaz na sloupec s MATCH;COLUMN())


LibreOffice 5.4.

Offline

#4 12. 5. 2015 08:57:36

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

Ahoj, vytvořil jsem přiklad: https://drive.google.com/file/d/0B1idr8 … sp=sharing
Jsou zde 2 tabulky a potřebuji na základě stejného vs vkládat data z tabulky 1 do tabulky 2 s tím, že se budou vkládat postupně na každý řádek (takto budu mít udělanou fakturu)

Offline

#5 12. 5. 2015 09:20:54

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

Re: generování dat na nový řádek

Bohu žel - nepovedlo se to stáhnout. Sice soubor přišel, ale nejde otevřít. Dejte to na uložto.cz, nebo leteckou poštu. Někde je chyba a já se docela děsím. Mám takhle postnuté rozšíření na Apache i Libre. Mě to stáhnout jde, ale jestli se to chová takhle tak tě pic.


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

#6 12. 5. 2015 10:08:43

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

tak ještě jednou http://www.uschovna.cz/zasilka/FBVWX2VYGBDZG4SX-WNU/ (pro jistotu jsem dali i printscreen)
Začalo mi nějak blbnou open office, nově vytvořené dokumenty nejdou otvírat nebo strašně dlouho trvá....

Offline

#7 12. 5. 2015 11:57:31

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

Re: generování dat na nový řádek

Zase to nejde otevřít. Otestujte si nainstalovat LibreOffice. Snad vystačíme s tím screenem. Kolik položek bude v těch seznamech?


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 12. 5. 2015 12:42:32

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

Re: generování dat na nový řádek

moc nechápu proč nechcete použít navržené řešení - je to přesně pro váš případ. Tabulka zde https://dl.dropboxusercontent.com/u/146 … abulka.ods (ale máte tam něco nabaleného, velikost neodpovídá - soubor zahoďte a začněte od znova)


tak zakopaný pes je v tom sloučeném sloupci (původně asi D u mě pak E) je to celý sloupec sloučený do jediné buňky - to je evidentně poněkud náročné řešení z hlediska velikosti souboru. Tkaže řešení: označit sloupec, opět kliknout na tlačítko sloučit buňky - tím se sloupec zase rozdělí na jednotlivé buňky a uložit - veliskot klesne z 770 kB na 11kB. Přeji hezký den :-)

Editoval ludviktrnka (12. 5. 2015 13:13:51)


LibreOffice 5.4.

Offline

#9 12. 5. 2015 14:54:14

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

tak ještě jednou přikládám tabulku, opravil jsem: http://www.uschovna.cz/zasilka/FBK58VB3SDL8TMT9-URG/

Offline

#10 12. 5. 2015 14:55:27

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

ludviktrnka napsal(a)

moc nechápu proč nechcete použít navržené řešení - je to přesně pro váš případ. Tabulka zde https://dl.dropboxusercontent.com/u/146 … abulka.ods (ale máte tam něco nabaleného, velikost neodpovídá - soubor zahoďte a začněte od znova)


tak zakopaný pes je v tom sloučeném sloupci (původně asi D u mě pak E) je to celý sloupec sloučený do jediné buňky - to je evidentně poněkud náročné řešení z hlediska velikosti souboru. Tkaže řešení: označit sloupec, opět kliknout na tlačítko sloučit buňky - tím se sloupec zase rozdělí na jednotlivé buňky a uložit - veliskot klesne z 770 kB na 11kB. Přeji hezký den :-)


Děkuji za upozornění, opravil jsem a přikládám. Navržené řešení je nějak složité. Potřebuji to nějak zjednodušit.

Offline

#11 12. 5. 2015 15:04:29

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

Re: generování dat na nový řádek

Nějak složité bude každé řešení. V původně uvedeném odkazu je zcela funkční řešení vašeho problému. Asi byste měl naznačit do jaké míry jste schopen tabulkový editor ovládat. To co jsem poslal v odkazu je v zásadě jednoduché řešení pomocí základních vzorců, dost pochybuji že bude něco o moc jednodušího.


LibreOffice 5.4.

Offline

#12 12. 5. 2015 15:05:49

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

ludviktrnka napsal(a)

Nějak složité bude každé řešení. V původně uvedeném odkazu je zcela funkční řešení vašeho problému. Asi byste měl naznačit do jaké míry jste schopen tabulkový editor ovládat. To co jsem poslal v odkazu je v zásadě jednoduché řešení pomocí základních vzorců, dost pochybuji že bude něco o moc jednodušího.

výsledky nefungují a tak moc nechápu odkud se co bere

Offline

#13 12. 5. 2015 15:20:03

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

Re: generování dat na nový řádek

tak nevím mě to funguje bezvadně. Zkusil jsem vyhodit funkci IFNA (nejsem si jist zda je ve starších verzích), ale pak už nevím co by tam mohlo být za problém. https://dl.dropboxusercontent.com/u/146 … abulka.ods


LibreOffice 5.4.

Offline

#14 12. 5. 2015 15:58:32

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

Re: generování dat na nový řádek

No on pan Trnka to napsal poměrně správně. Mne ale spíš zarazilo řazení podle první položky. To je poměrně nelogické. nemělo by to být náhodou podle nejmenší položky?.
     Proto jsem chtěl vidět tabulku : V jedné tabulce se mi generují data na řádky a pokud se některá z nich shodují (např. podle stejného číselného kódu) potřebuji generovat řádky do další tabulky.
-----Já z toho usuzuji, že pokud zde nejsou shodné položky nic se s původní tabulkou dělat nemá. nebo také možná to, že druhá tabulka vůbec být nemusí. A jestli ano tak se jen opíšou data, nebo se i seřadí například podle číselného kódu ap.
     Také je dost alarmující toto :(např. podle stejného číselného kódu). Co když nepůjde o čísla, ale o text? To by vyžadovalo jinou konstrukci i když podobnou.


     Takže když se nad tím zamyslím dostanu odpověď na dotaz : ?
1. Je druhá tabulka potřeba vždy, nebo jen tehdy když se ve zdrojové objeví shoda porovnávaného parametru?
2. Když tedy je důvod aby se vytvářela druhá tabulka vždy neměla by být upravena například tříděním? A když tak podle jakého kriteria (1., 2. a tak dál).
3. Pokud tedy existuje předpoklad ad2 nebyla by výhodnější kontingenční tabulka nežli systémy vzorců?
4. Když by bylo primárně důležité pořadí prvního výskytu stejné hodnoty tak by mohla být zdrojová tabulka vybavena skutečným pořadím (například datum a čas, nebo jen pořadí)? Zde bych hovořil o iniciačním pořadí, které by přepisovalo u stejných položek pořadí na nejnižší hodnotu. Tím by došlo ke snížení počtu pořadí.


     Prostě mne napadá, že některé případy možností lze řešit snadno přetříděním pomocí autofiltru. Stačí druhou tabulku nalinkovat z té první pomocí absolutních adres a přetřídit závislým autofiltrem.
     V případě potřeby je možné pomocí RANK (RANK.AVG, RANK.EQ) například ve sloupci "E" zadat data pro vyhledávání do druhé tabulky a vyhledávat pomocí SMAL, či jinak.


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

#15 12. 5. 2015 21:01:18

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

neutr napsal(a)

No on pan Trnka to napsal poměrně správně. Mne ale spíš zarazilo řazení podle první položky. To je poměrně nelogické. nemělo by to být náhodou podle nejmenší položky?.
     Proto jsem chtěl vidět tabulku : V jedné tabulce se mi generují data na řádky a pokud se některá z nich shodují (např. podle stejného číselného kódu) potřebuji generovat řádky do další tabulky.
-----Já z toho usuzuji, že pokud zde nejsou shodné položky nic se s původní tabulkou dělat nemá. nebo také možná to, že druhá tabulka vůbec být nemusí. A jestli ano tak se jen opíšou data, nebo se i seřadí například podle číselného kódu ap.
     Také je dost alarmující toto :(např. podle stejného číselného kódu). Co když nepůjde o čísla, ale o text? To by vyžadovalo jinou konstrukci i když podobnou.


     Takže když se nad tím zamyslím dostanu odpověď na dotaz : ?
1. Je druhá tabulka potřeba vždy, nebo jen tehdy když se ve zdrojové objeví shoda porovnávaného parametru?
2. Když tedy je důvod aby se vytvářela druhá tabulka vždy neměla by být upravena například tříděním? A když tak podle jakého kriteria (1., 2. a tak dál).
3. Pokud tedy existuje předpoklad ad2 nebyla by výhodnější kontingenční tabulka nežli systémy vzorců?
4. Když by bylo primárně důležité pořadí prvního výskytu stejné hodnoty tak by mohla být zdrojová tabulka vybavena skutečným pořadím (například datum a čas, nebo jen pořadí)? Zde bych hovořil o iniciačním pořadí, které by přepisovalo u stejných položek pořadí na nejnižší hodnotu. Tím by došlo ke snížení počtu pořadí.


     Prostě mne napadá, že některé případy možností lze řešit snadno přetříděním pomocí autofiltru. Stačí druhou tabulku nalinkovat z té první pomocí absolutních adres a přetřídit závislým autofiltrem.
     V případě potřeby je možné pomocí RANK (RANK.AVG, RANK.EQ) například ve sloupci "E" zadat data pro vyhledávání do druhé tabulky a vyhledávat pomocí SMAL, či jinak.


Je to tak, že první tabulka je přehled zakázek, kde k vybraným zakázkám přiřadím variabilní symbol a tyto řádky potřebuji generovat do druhé tabulky což bude faktura se stejným variabilním symbolem. Podle tohoto symbolu se právě budou příslušné řádky generovat z tabulky 1 do tabulky 2

Offline

#16 13. 5. 2015 06:37:17

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

Re: generování dat na nový řádek

Mohlo by to být takhle?
ÚPRAVA


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

#17 13. 5. 2015 07:03:38

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

Re: generování dat na nový řádek

... mě se to líbí :-). Řek' bych že je to spíše krapet složitější než jednoduší, ale kdyby nějak moc vadil ten první pomocný sloupec tak je to pěkné řešení. Ta podmínka posouzení celkového počtu výskytů IF($F$3>1,2,3,...;... by se zase dala celkem dobře zapsat IF($F$3>ROW(A1);... kvůli pohodlnému roztažení.


LibreOffice 5.4.

Offline

#18 13. 5. 2015 07:27:12

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

Re: generování dat na nový řádek

Já bych řekl, že to roztahování pomocí odkazu na řadu A1... je poměrně dobré když je soubor přímo na místě kde má být. Ovšem tady jde asi (jako i v jiných případech často) jen o simulaci skutečné podoby. Uživatel to pak vystříhne, nebo překopíruje jinam a je to rozhozené. Ten trik s ROW() používám často, ale zde to třeba zrovna vypadá, že soubor pro dodák (nebo fakturu) bude jinde. Nejspíš na jiném listu a bude jinak posunutý.
     Zkušenost mi říká, že i poměrně jednoznačné a výstižné popisy potřeb jsou ve skutečnosti nevhodné. Ono stačí velice málo a udělal bych jiné řešení. Proto z dotazu páčím ukázky. Už jsem mnohokrát něco udělal a autor zjistil, že chce něco jiného (jinak) než původně popisoval.
     V tomto případě by v listu 2 mělo být s podmínkou existence kopírována tabulka číslo 2 bez toho sloupce s řádky - jen s číslováním od jedné. Hlavičky by měly být jinak - už jako dodací list respektive faktura se jménem, účtem a dalšími generáliemi. Tedy v podstatě tisková sestava která se pošle jako PDF příloha emailu a pak se pošle jako tištěný dokument klasickou poštou. Takže když si to uživatel překopíruje, nebo vystříhne do jiného listu - kamkoliv - zůstane systém funkční.


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

#19 13. 5. 2015 07:36:31

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

Re: generování dat na nový řádek

... jasný, důvody chápu - já osobně když přenáším vzorce z pokusných listů do finálních tak si přenesu vždy první řádek nebo první dva, upravím je pro novou polohu a znovu roztáhnu (nakopíruji) do požadované délky. Řešení s tvrdými čísly na každém řádku je sice pro méně zkušeného uživatele rychle pochopitelné (to jednoznačně uznávám), ale obtížné roztažení je podle mne docela závažný nedostatek. (Samozřejmě při vší úctě :-)


LibreOffice 5.4.

Offline

#20 27. 5. 2015 14:32:58

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

neutr napsal(a)

Já bych řekl, že to roztahování pomocí odkazu na řadu A1... je poměrně dobré když je soubor přímo na místě kde má být. Ovšem tady jde asi (jako i v jiných případech často) jen o simulaci skutečné podoby. Uživatel to pak vystříhne, nebo překopíruje jinam a je to rozhozené. Ten trik s ROW() používám často, ale zde to třeba zrovna vypadá, že soubor pro dodák (nebo fakturu) bude jinde. Nejspíš na jiném listu a bude jinak posunutý.
     Zkušenost mi říká, že i poměrně jednoznačné a výstižné popisy potřeb jsou ve skutečnosti nevhodné. Ono stačí velice málo a udělal bych jiné řešení. Proto z dotazu páčím ukázky. Už jsem mnohokrát něco udělal a autor zjistil, že chce něco jiného (jinak) než původně popisoval.
     V tomto případě by v listu 2 mělo být s podmínkou existence kopírována tabulka číslo 2 bez toho sloupce s řádky - jen s číslováním od jedné. Hlavičky by měly být jinak - už jako dodací list respektive faktura se jménem, účtem a dalšími generáliemi. Tedy v podstatě tisková sestava která se pošle jako PDF příloha emailu a pak se pošle jako tištěný dokument klasickou poštou. Takže když si to uživatel překopíruje, nebo vystříhne do jiného listu - kamkoliv - zůstane systém funkční.

Omlouvám se za pozdní odpověď, byl jsem teď pár dní mimo, zpět k témat. Tabulku jsem použil, vše je super, akorát jsem se dostal do slepé uličky u řádku F6, kde je vzorec: =IF(E6="";"";INDIRECT("B"&E6;1)) -> zde potřebuji u indirect dát tahat data z řádku jiného listu např. Souhrn.V  (list souhr a sloupec V), když to tam zadám tak nefunguje....

Offline

#21 27. 5. 2015 18:47:23

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

Re: generování dat na nový řádek

To by mělo vypadat pro část vzorce z jiného listu takto =INDIRECT("B"&Sheet1.E6;1). Tedy =IF(E6="";""; je v původním sešitu. Existuje na to návod :
A. Zkopírujte si někam do stajného listu (ve Vašem případě Sheet1) část vzorce INDIRECT("B"&E6;1). K tomu přiřaďte rovnítko : =INDIRECT("B"&E6;1)
B. Následně toto vystříhněte a vložte do správného listu. Já jsem to vložil do listu "Sheet2" a výsledek je právě =INDIRECT("B"&Sheet1.E6;1).
C. Nyní opět zkopírujeme vzorec bez toho rovnítka: dostaneme =IF(E6="";"";INDIRECT("B"&Sheet1.E6;1))


Celý vzorec v jiném listu : =IF(Sheet1.E6="";"";INDIRECT("B"&Sheet1.E6;1)). Ovšem správně mají být označením stránky vybavno i to "B" tedy =IF(Sheet1.E6="";"";INDIRECT("Sheet1.B"&Sheet1.E6;1))

Editoval neutr (27. 5. 2015 18:49:12)


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

#22 28. 5. 2015 07:56:23

ertezet
Člen
Registrace: 24. 9. 2010
Příspěvků: 35

Re: generování dat na nový řádek

tak se dostávám do slepé uličky:(( Nedělá zde někdo zakázkově makra...atp v openoffice. Zadání a podmínky bychom dojednali osobně...

Offline

#23 28. 5. 2015 09:30:58

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

Re: generování dat na nový řádek

Ano já čas od času něco udělám. Napsal jsem Vám na email


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í