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

#1 14. 10. 2014 12:00:01

kamowski
Člen
Registrace: 29. 3. 2013
Příspěvků: 19

posledná neprázdna bunka - VYRIEŠENÝ

ahojte
možno je to úplne triviálna zaležitosť ale akosi sa mi nedarí
---
v stĺpci A1:A10 je text (formát som nemenil, takže je tam "Všetko")
nie každá bunka je vyplnená, niektoré sú prázdne
v bunke B1 potrebujem zobraziť text z poslednej vyplnenej bunky v stĺpci A

viete mi s tým prosím poradiť?
ďakujem

Editoval kamowski (15. 10. 2014 06:53:54)

Offline

#2 14. 10. 2014 13:33:05

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

=IF(A10<>"";A10;IF(A9<>"";A9;IF(A8<>"";A8;IF(A7<>"";A7;IF(A6<>"";A6;IF(A5<>"";A5;IF(A4<>"";A4;IF(A3<>"";A3;IF(A2<>"";A2;A1)))))))))

Tento vzorec zadejte do B1


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 14. 10. 2014 17:09:43

kamowski
Člen
Registrace: 29. 3. 2013
Příspěvků: 19

Re: posledná neprázdna bunka - VYRIEŠENÝ

ďakujem za riešenie
popravde je tých buniek v stĺpci A trochu viac ale pohrám sa s tým
žiadnu funkciu som nenašiel alebo neviem ako to hľadať
správne naformulovať otázku je niekedy problém smile

Offline

#4 14. 10. 2014 17:49:59

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

Vzorce jsou limitovány velikostí. Nevím jistě kolik buněk lze do vzorce dostat, aby ještě fungoval. Já bych to řešil zřejmě makrem, ale šlo by to i jiným typem vzorců - například MATCH, nebo VLOOKUP, ale byla by to asi krkolomná konstrukce. Možná by šlo vytvořit maticicový vzorec.
      Poradit si ale můžete například nekolika pomocnými bu%nka - a s tím vzorcem, co jsem Vám poslal :
- například B1 Hodnotí A1:A10
- B2 hodnotí A11:A20 až například ...
- B9 A90:A100.
      Jenom by se přidala podmínka například pro předposlední sektor (B8) IF(COUNTA(B91:B100)="";IF... to co jsem Vám poslal.
      V C1 například vyhodnotíme B1:B10.


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

#5 14. 10. 2014 22:53:24

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

Normálně použij funkci VLOOKUP :

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

Jestli potřebuješ poslední číslo, tak je to podobné:

=VLOOKUP(1,797E+308;A1:A100000;1;1)

by mělo stačit.

Editoval lp. (14. 10. 2014 23:23:14)

Offline

#6 15. 10. 2014 06:27:10

kamowski
Člen
Registrace: 29. 3. 2013
Příspěvků: 19

Re: posledná neprázdna bunka - VYRIEŠENÝ

to lp:
tak takýto zápis som ešte nevidel big_smile (zrejme je toho viac, čo som nevidel big_smile )
ale funguje s textom aj s číslom, super
to by bolo vhodné doplniť k tomuto článku do sekcie vyhľadávanie:
http://www.openoffice.cz/navody/funkce-v-calcu

Offline

#7 15. 10. 2014 07:33:51

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

to lp: Taky mě to vyhledávání zaujalo :-). Ale kupodivu nefunguje pokud se ve sloupci A vyskytne číslo, pak by se mohlo postupovat pomocí matice =MAX(IF(ISTEXT(A1:A1000);ROW(A1:A1000);0)) - zjistí číslo řádku a druhý vzorec třeba =INDEX(A1:B1000;B1;1) by ukázal ten hledaný text (možná by to šlo nějak spojit dohromady)


LibreOffice 5.2.2.2

Offline

#8 15. 10. 2014 10:55:06

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

No to vyhledávání se týká neprázdných buněk. Dá se to ošetřit dotazem na uvozovky, nebo správně funkcí ISBLANK - ta je buď true (je prázdná - buňka), nebo false (není prázdná).
     Bohužel například pro VLOOKUP je v nápovědě LO návod (LOOKUP - klikačka práce s prázdnými buňkami) kde jsou příklady s ISBLANK [ISTEXT ap. - ale opačně ISBLANK(VLOOKUP(...))], ale mně po překopírování spadne LO.
     Tento typ chování vyhledávacích funkcí je novinka a ještě jsem to nezkoumal. Takže nevím jestli to funguje a pokud ano tak jestli také v AOO ap. :-(
     Trik který ukazuje lp. spočívá v tom, že použije poslední písmena abecedy, nebo číslo, které je horní limitou. Tím se stane, že funkce vrátí poslední nalezenou hodnotu. Když by se použilo třeba místo "žžžžžžžž" "a" tak to vrátí první výraz z nalezeným "a" nejspíš někde na začátku. Tolik "ž" ale najít v běžném textu nelze takže algoritmus použije poslední porovnávanou hodnotu.
     Problém je to, že se musí testovat text i čísla (prázdná buňka). Takže by se měly zřejmě obě funkce spojit pomocí IF nebo jinak aby to vrátilo obsah vždy když tam něco je. K tomu by měly být také dotazy na ISERROR. Konstrukce pak může být IF(Iserror(Vlookup-text)=false;Iserror(Vlookup-text) & IF(Iserror(Vlookup-číslo)=false;Iserror(Vlookup-číslo). Může to bžt ale i jinak propojeno. prostě složitá konstrukce i když jednotlivé dotazy složité nejsou.
     Jde o to, že když tam budou oba druhy proměnných, tak poslední může být číslo, ale první ve vzorci je text. Ten něco najde a vyplivne chybně jiný nežli poslední záznam.

Editoval neutr (15. 10. 2014 11:12:14)


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

#9 15. 10. 2014 11:08:33

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

ludviktrnka napsal(a)

Ale kupodivu nefunguje pokud se ve sloupci A vyskytne číslo

V čem to zkoušíte + jaké je nastavení výpočtů ?

Maticově to jde samozřejmě také, ale zápis je pomalejší a časově je to minimálně o řád pomalejší. Tj. jeden vzorec nevadí, při větším počtu to už může být problém.

Lze zkusit třeba LOOKUP nebo maticově MATCH.




Tak jsem zkusil LO (4.2.3.3) a tam opravdu to nefunguje. Zkoušel jsme dál a problémy jsou i když text obsahuje číslo zejména na začátku. Vypadá to na chybu v LO.

Dál jsem testoval i některé maticové varianty s hledáním, závěr: v AOO něco chodí, v LO ne.


Takže v LO je zřejmě bezpečnou variantou maticový vzorec (INDEX(pole;if(istext(....)




Je to jasné, v vlookup v LO 4.2.3.3 je chyba:


Pole		Pole < „zzzz"		Výsledek hledání
aaa		PRAVDA	          '=VLOOKUP("zzzz";A1:A1000;1;1):	aaa
1		PRAVDA		
1aaa		PRAVDA		
5aaa		PRAVDA		
6aaa		PRAVDA		
111		PRAVDA		
1bbb		PRAVDA		

Při smíšeném typu klíčů funkce hledá chybně.

Editoval lp. (15. 10. 2014 12:10:25)

Offline

#10 16. 10. 2014 07:32:26

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

Re: posledná neprázdna bunka - VYRIEŠENÝ

No jo, zkoušel jsem to v LO 4.3.1.2. Nenapadlo mne že to je chyba LO a v AOO to bude fungovat, myslel jsem že to bude obecná záležitost. Chtěl jsem si jen vyzkoušet to hledání "žžžžž", jinak nemám až tak ambice to řešit, nenapadá mne žádné praktické využití. Horší by bylo kdyby VLookup v LO obecně špatně vyhledával nejen podobnosti ale i přesnou shodu ve sloupci s textem a čísly - to by mohl být někdy docela problém.

To neutr: jo funkce ISBLANK je samozřejmě přesnější, ISTEXT byl takový rychlý nápad jak nastalou situaci vyřešit.

Editoval ludviktrnka (16. 10. 2014 09:21:48)


LibreOffice 5.2.2.2

Offline

#11 17. 10. 2014 14:04:42

kamowski
Člen
Registrace: 29. 3. 2013
Příspěvků: 19

Re: posledná neprázdna bunka - VYRIEŠENÝ

neutr napsal(a)

Jde o to, že když tam budou oba druhy proměnných, tak poslední může být číslo, ale první ve vzorci je text. Ten něco najde a vyplivne chybně jiný nežli poslední záznam.

v príklade, pre ktorý som hľadal pomoc mám v stĺpci iba text, tak mi to riešenie s "žžžž..." vyhovuje a aby som zamedzil práve takýmto problémom s rôznymi dátami, použil som "validáciu dát" na podnet z tohoto vlákna:
http://forum.openoffice.cz/viewtopic.php?id=3804

Offline

Zápatí