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

#1 9. 11. 2012 13:29:15

Sievert
Člen
Registrace: 9. 11. 2012
Příspěvků: 4

Závislý seznam - Google spreedsheet

Zdravím lidičky,
už nevím jak dále, lámal jsem si s tím hlavu do do půl třetí do rána. Tak se obracím na Vás, snad tu budu nějaký chytrolín, který dokáže poradit.. Jedná se o SpreedSheet, avšak předpokládám, že i když se jedná o forum pro OpenOffice, funkce jsou u většiny tabulkových app stejné, nebo alespoň hodně podobné.

Problém se týká závislého seznamu v Google spreed sheet, jakmile přidám nový řádek do listu s názvem Validation, nad hodnoty Category, atd… přestane fungovat funkce v listu Source, zajišťující integritu mezi jednotlivými grups..

Funkce zajišťující spojení mezi sloupcem A a B:

=if(counta(Validation!$A:$A)<=1;ifError(1/0);filter($B$2:$B;A$2:$A=indirect(address(counta(Validation!$A:$A);1;1;true;"Validation"))))

pak je ještě totožná funkce mezi B a C...

Možnost náhledu na Spreedsheet a jeho editace:
Kopie dokumentu DropDownLists

Děkuji za jakoukoliv radu.

Offline

#2 9. 11. 2012 16:08:46

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

Re: Závislý seznam - Google spreedsheet

No ta složitá funkce se ptá, jestli je na listu Validation sl A - žádná, nebo 1 položka. Když je tak vyhodí error. Na error zase reaguje jiný vzorec a načítá z listu Source. Mně připadá, že to je něco kolem sportu - například výběr soupeřů. Jako takové to nemá hlavu ani patu. Dokonce by to mohl být špatný příklad, nebo špatný vtip. Tohle totiž samo chodit nebude, leda že by se sešit automaticky přepočítával - ale na základě čeho - to mne nenapadá. Dost dobře nepoznám, co je a co  není "chyba".
V listu Validation je vybírací seznam (sl A), který máte asi na mysli. Ten podle všeho má být asi jen bez vícenásobného výběru, ale vícenásobný výběr umožňuje. Totéž sloupec "B". Ve sloupci "C" už je jen jediná položka, takže tam se to nedá poplést.
Nedá se dovodit co to má dělat (a proto také těžko odhadnout co je chyba). Prozatím to vypadá, že se přidávají (manuálně?) jen položky do Source a na Validation jsou z toho utvořeny vybírací seznamy (ty jsou ze sloupce D - unikátní hodnoty - výběr jako autofiltr).
Tyhle funkce v Calcu nejsou a myslím, že nejsou ani v Excelu. Spreedsheet Google se dost liší v mnoha ohledech od desktopových tabulkáčů - tady Vám asi nikdo nepomůže. Téma sem nepatří i když Google měl mít podporu pro odf - ale nechodí to - tedy pokud vím. V minulosti tady uživatel lp něco dělal, ale to je vyjímka. Já za sebe říkám, že jsem užívání Google Docs zatratil.

Editoval neutr (9. 11. 2012 16:13:49)


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

Offline

#3 9. 11. 2012 16:35:31

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: Závislý seznam - Google spreedsheet

Výraz

=indirect(address(counta(Validation!$A:$A);1;1;true;"Validation"))

teoreticky počítá hodnotu poslední vyplněné buňky v sloupci Validation!$A:$A.
Bohužel, k tomu používá funkci counta (předpokládá, že ve sloupci A jsou hodnoty bez mezer).

Po přidání řádku mezi ostatní buňky je nutno buňku vyplnit.

ps. Není dobré používat (a upravovat) soubory, kterým nerozumím.

Editoval lp. (9. 11. 2012 16:37:12)

Offline

#4 9. 11. 2012 17:25:08

Sievert
Člen
Registrace: 9. 11. 2012
Příspěvků: 4

Re: Závislý seznam - Google spreedsheet

neutr:
Ano, přesně tak je to autofiltr, který filtruje dle manuálně zadaných hodnot do tabulky Source...

Příklad: mám skupinu 1 a v ní mám hodnoty A a B a tyto skupiny se dále dělí na A1; A2 pod A a na B1 a B2 pod B.. následovně mám seznam z kterého můžu vybrat skupinu 1 ( a další ) , při kliknutí na další sloupce dostanu na výběr A a B, při kliku na A dostanu v dalším sloupci možnost A1 a A2 ... vše fachá tak jak má s tím rozdílem, když v tabulce Validation přidám řádek nad.. tak se funkce přeruší... a já nemohu najít, kde je třeba co doplnit aby si zachovala svoji funkčnost...

v každém případě, děkuji, že se tím zabýváte...

Offline

#5 9. 11. 2012 17:37:06

Sievert
Člen
Registrace: 9. 11. 2012
Příspěvků: 4

Re: Závislý seznam - Google spreedsheet

lp.
s tím posledním nesouhlasím, jak se člověk může něco naučit než jinak, než bude studovat a experimentovat? smile

Offline

#6 10. 11. 2012 16:55:54

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: Závislý seznam - Google spreedsheet

Sievert napsal(a)

když v tabulce Validation přidám řádek nad.. tak se funkce přeruší... a já nemohu najít, kde je třeba co doplnit aby si zachovala svoji funkčnost...

v každém případě, děkuji, že se tím zabýváte...

Zkuste třeba číst co už bylo napáno. List source má generovat seznam pro ověřování/zadávání dat pro vyplnění posledního řádku na listu validace. Přitom předpokládá, že sloupec A v listu validace neobsahuje mezery.  Pokud tam mezery jsou, tak vybere pro roletku ve sloupci B špatné hodnoty (důsledek použití funkce counta).

Dále seznamy pro roletky ve sloupcích B a C jsou pro všechny buňky stejné (nastavené podle poslední hodnoty ve sloupci), tak že pokud buňky není na posledním řádku, tak nenabízí správné hodnoty.

Zkuste si někde v listu source vyhodnotit výše uvedený výraz

=address(counta(Validation!$A:$A);1;1;true;"Validation")

a sledujte, jakou adresu vrací v závislosti na počtu prvků a počtu mezer ve sloupci A listu validace.

Předpokládám, že nyní už je jasné, že funkce se po přidání řádku nepřeruší, ale že pokud vypočtená adresa ukazuje na prázdnou buňku, tak podmínky filtru nesplňuje žádný řádek.

Pokud k tomu přistupujete v rámci studia, tento případ je spíše nepovedený, i když pro určitý konkrétní účel (vyplňují se řádky shora dolů a zpět se nic neopravuje) může vyhovovat.

Offline

#7 12. 11. 2012 10:32:23

Sievert
Člen
Registrace: 9. 11. 2012
Příspěvků: 4

Re: Závislý seznam - Google spreedsheet

jasný smile Děkuji!!!

použil jsem zkrátka nevhodnou funkci... existuje nějaká alternativa k tomuto? umím udělat závislý seznam na základě chráněných rozsahů, ale toto nelze aplikovat na příklad, který jsem uváděl v mém předchozím příspěvku... pokud, nějaký takový typ máte, budu Vám vděčný. Děkuji

Offline

#8 12. 11. 2012 23:14:37

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: Závislý seznam - Google spreedsheet

Bohužel, google doc moc neznám, a ani se mi nelíbí, poptejte se jinde.
Pro dynamické rozsahy existuje na internetu dost návodů.

Pro nalezení hodnoty poslední vyplněné buňky v seznamu v calcu lze použít např. 

=VLOOKUP("žžžž";A1:A100;1;1)

kde "žžžž" nahraďte nějakým řetězcem podle jazyka a způsobu třídění v aplikaci (řetězec se musí při třídění zařadit na konec seznamu).

Obecnější je použití maticových vzorců. Třeba:

=INDEX(A1:A100;MAX(IF(ISBLANK(A1:A100);0;ROW(A1:A100))))

(uložit jako matici)

možná v google jsou i jiné možnosti.

Editoval lp. (12. 11. 2012 23:15:06)

Offline

Zápatí