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

#1 20. 8. 2016 08:12:17

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Dobrý den, poprosil bych Vás o radu jak vyplívá z předmětu. Řekněme, že mám tři sloupce s určitým obsahem a já bych potřeboval třeba obsah buňky a1 vložit doprostřed textu v buňce a3. Uvedu příklad.

buňka A1 obsahuje slovo (1kg)
buňka B1 obsahuje slovo (10ml)
buňka C1 obsahuje větu (K výrobě dortu potřebujete hladkou mouku , dále potřebujete oleje. atd..)

No a já potřebuji, aby věta v buňce C1 pomocí dosazených hodnot vypadala takto: (K výrobě dortu potřebujete hladkou mouku 1kg, dále potřebujete 10ml oleje. atd..)

Jsem začátečník a tak děkuji za vaše rady. Možná ještě poprosím jakým stylem se ta funkce do té buňky C1 dosazuje. Díky moc!

Editoval czsars (20. 8. 2016 19:16:54)

Offline

#2 20. 8. 2016 09:45:35

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

v C1 bude ="K výrobě dortu potřebujete hladkou mouku "&A1&", dále potřebujete "&B1&" oleje. atd."

Případně lze využít funkci =CONCATENATE(A1;A2; ...) ale to není v tomto případě moc praktické.


LibreOffice 5.4.

Offline

#3 20. 8. 2016 09:59:13

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Super, moc děkuji, tohle jsem přesně potřeboval.

Offline

#4 20. 8. 2016 12:38:23

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Měl bych k tomu ještě jeden dotaz, jde vzít z té buňky C1 třeba jen prvních pět znaků? Samozřejmě za předpokladu, že by tam nebylo 1kg ale třeba věta (1kg pšeničné hladké mouky) a já bych potřeboval jen ten 1kg. Díky moc

Offline

#5 20. 8. 2016 13:14:53

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Levá část textu se uřízne pomocí LEFT() - uřízne z levé strany zadaný počet, MID() - uřízne znaky od od určitého x do určitého y znaku - a nakonec RIGHT() - uřízne počet znaků z pravé strany - tedy od konce.
- Například =LEFT(A1;3) ... vrátí první 3 znaky z buňky A1,
- Například =RIGHT(A1;3) ... vrátí poslední 3 znaky z buňky A1,
- Například =MID(A1;2;3) ... vrátí 3 znaky z buňky A1 počínaje znakem číslo 2.

Editoval neutr (20. 8. 2016 13:15:38)


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 20. 8. 2016 16:01:41

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Děkuju za odpověď ale poradil byste mi prosím, jak to zanést do toho výsledku resp ten vzorec do buňky C3 jak mi radil "ludviktrnka" a ještě poslední dotaz lze tekto selektovat i celá slova a ne jen počet znaků? Díky moc

Offline

#7 20. 8. 2016 16:20:48

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

=CONCATENATE(LEFT(A1;3);RIGHT(A2;3);MID(A3;2;3);  ...)
--------------------------------------------------------------
Ano lze ale vy asi máte na mysli konkrétní vyhledávání. To je trošku složitější, ale jde to. Popište lépe co myslíte tím celá slova. Podle toho mého návodu totiž musíte nejprve spočítat pozici na které stojí první a poslední znak slova. To se dá dohledat dotazem, ale musíte vědět jaké slovo chcete hledat.

Editoval neutr (20. 8. 2016 16:21:25)


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 20. 8. 2016 17:03:32

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Nevím, jak se zde vkládá příloha ale nahrál jsem jí na ftp zde http://powersavesystems.cz/muster.ods z toho snad pochopíte oč jde. Moc děkuji za ochotu

Offline

#9 20. 8. 2016 18:10:00

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Takhle

=IF(LEN(B3)>60;LEFT(B3;60);B3)&", " & B3 & ", " & C3 & ", "& D3 & ", "& E3

Výsledek vypadá následovně :
     Cenově dostupný televizor s technologiemi mnohem dražších pr, Cenově dostupný televizor s technologiemi mnohem dražších produktů. Disponuje rozlišením 1366 × 768 pixelů, úhlopříčkou celých 80 cm a technologií Digital Crystal Clear., LCD, 1920x1080, Černá
     Mrkněte na problém s tím tučným "pr" - tím se roztrhlo slovo (60. místo). Lze udělat i dotaz na poslední mezeru, ale to je docela makačka. Já bych použil makro.


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

#10 20. 8. 2016 18:27:55

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Nechybí tam někde závorka? Mě to nejak nefunguje a hlavně jsem potřeboval ty výsledky do dvou buněk, ten zkrácený popis do jedné a zbytek do druhé:-) Nerad otravuju ale jsem ryzí amatér, takže předem moc děkuji. jo a tozkrácené slovo nevadí.

Offline

#11 20. 8. 2016 18:34:58

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Závorka tam nechybí - jen jsem použil jiný vzorec pro sloučení. Závorky jsou jenom na funkci IF :-
=IF(LEN(B3)>60;LEFT(B3;60);B3)
Základ "vzrorce" je tohle :
= B3 & ", " & C3 & ", "& D3 & ", "& E3
     Je to ta druhá verze kterou uváděl pan Trnka - jen trošku upravená o ty mezery s čárkou.

To IF je tam jako ukázka jak se určí těch 60 znaků z B3, takže ve vzorci byl odkaz na B3 dvakrát. Což jsem myslel dobře ale nevysvětlil.
Omlouvám se.

Editoval neutr (20. 8. 2016 18:37:18)


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

#12 20. 8. 2016 18:40:12

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Vy se určitě neomlouvejte, to já jsem v calcu diletant:-) Stejně když to vložím do buňky dám enter, nefunguje to. Nešlo by prosím někam nasdílet ten ukázkový soubor s tou funkcí? Případně na mail pavel.janec@seznam.cz, budu moc vděčný.

Offline

#13 20. 8. 2016 19:03:02

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Já to postnout můžu, ale Vy máte nejspíš problém s formátem buňky. Podívejte se
1. FORMÁT > BUŇKY > KARTA ČÍSLA > sloupec vlevo musí být nastaven na "vše", nebo číslo. Vy tam máte nejspíš formát Boolean - logickou hodnotu 0/1. Tipnul bych si že od toho okamžiku jak jste roztrhl ten původní vzorec. Dělávají to neúplné vzorce logických funkcí.
2. Budete mít formát @ - tedy text. Také vím jak se to stalo. Musíte to VLOŽIT > JINAK dialog jako neformátovaný text. Podívejte se pak jaký tam máte formát. Když tam bude @ tak ten vzorec zabalte do vzorce =VALUE(ten vzorec). Dá se to řešit i jinak.


     Nejdříve tohle otestujte a dejte info.

Editoval neutr (20. 8. 2016 19:03:38)


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

#14 20. 8. 2016 19:16:42

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Máte pravdu je to formátem buňky, už to šlape jak má. Moc a moc díky!!!

Offline

#15 20. 8. 2016 20:18:10

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

dostávám se k tomu teď večer a nějak jsem nepochopil řešení v buňce H5. Tam bych si představoval vzorec zhruba takto: =LOWER(CONCATENATE(SUBSTITUTE(A3;" ";", ");", ";C3;", ";D3;", ";E3))
lower - udělá z velkých písmena malá
concatenate - spojí texty za sebou
substitute - nahradí mezeru za čárku s mezerou
(ale moc nechápu co dělal na začátku ten kuchařský recept ...)


LibreOffice 5.4.

Offline

#16 20. 8. 2016 20:58:29

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Byl to jen příklad pro jednodušší vysvětlení. a propo, tohle jsem přesně potřeboval v té buňce, pouze čárkou oddělená slova z jiné buňky jako klíčová slova. moc díky

Editoval czsars (20. 8. 2016 21:01:34)

Offline

#17 20. 8. 2016 21:06:48

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Nechci to dohnat do extrému ale přece jen je vidět, že jste odborníci. Lze tou poslední funkcí udělat to, že pokud se v načítané buňce nenachází žádný obsah aby to tam nedělalo dvě čárky za sebou?

Offline

#18 20. 8. 2016 21:26:08

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

lze toho hodně:-) třeba ak že za místo toho ", "&C3 dosadíte: IF(ISBLANK(C3);"";", "&C3) celé to pak bude =LOWER(CONCATENATE(SUBSTITUTE(A3;" ";", ");IF(ISBLANK(C3);"";", "&C3);IF(ISBLANK(D3);"";", "&D3);IF(ISBLANK(E3);"";", "&E3)))

a ještě trochu méně přehledně ale jednodušeji: =SUBSTITUTE(TRIM(CONCATENATE(A3;" ";C3;" ";D3;" ";E3));" ";", ")

nejdříve vše spojíme do jednoho textu s mezerami (concatenate)

potom odstraníme dvojité mezery (trim)

nakonec mezery nahradíme za čárku s mezerou (subsitute)

volitelně možno přidat úplně dopředu lower - malá písmena - jak máte ve vašem příkladu.

Editoval ludviktrnka (20. 8. 2016 21:44:08)


LibreOffice 5.4.

Offline

#19 20. 8. 2016 21:40:24

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Opravdu smekám, člověk se má pořád co učit. Moc děkuju!! Strašně mi to usnadnilo práci.

Offline

#20 20. 8. 2016 21:48:26

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

raději použijte tu funkci z EDITU =SUBSTITUTE(TRIM(CONCATENATE(A3;" ";C3;" ";D3;" ";E3));" ";", ") ta předchozá je zbytečně kostrbatá


LibreOffice 5.4.

Offline

#21 20. 8. 2016 22:40:30

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Ještě zítra potestuju ale ta původní mi naprosto vyhovuje.

Offline

#22 21. 8. 2016 09:00:48

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Použil jsem tedy nakonec poslední funkci SUBSTITUTE =SUBSTITUTE(TRIM(CONCATENATE(A3;" ";C3;" ";D3;" ";E3));" ";", "), nicméně zeptám se ještě snad na poslední věc. Lze načíst z buňky D3 pouze poslední slovo, případně první? Díky moc

Offline

#23 21. 8. 2016 09:03:48

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Mohou být v buňce D3 více než dvě slova? Resp. jaké zhruba data se tam dají očekávat a co se z nich má dostat. Je to důležité, pokud se má zpracovat univerzální řešení platné pro celý "sloupec" různých dat.

Univerzální vrácení posledního slova by mohlo být takto: MID(D3;SEARCH("\b[:alnum:]*$";D3);LEN(D3)-SEARCH("\b[:alnum:]*$";D3)+1), ale pokud by byla slova jen dvě mohlo by to být jednoduší.

Editoval ludviktrnka (21. 8. 2016 09:12:45)


LibreOffice 5.4.

Offline

#24 21. 8. 2016 09:13:16

czsars
Člen
Registrace: 22. 1. 2016
Příspěvků: 53

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Uvedu příklad  v D3, D4, D5 atd.. je posloupnost např: Potavinářaská příchuť jahoda, Potavinářaská příchuť meloun, Potavinářaská příchuť citron atd.. a já z toho potřebuji dostat pouze poslední slovo, čili jahoda, meloun, citron atd..

Offline

#25 21. 8. 2016 09:14:38

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

Re: Funkce dosazení obsahu buňky do textu v jiné buňce-VYŘEŠENÝ

Jo, tak viz výše. Vzorec doplňte místo původního D3 jinak vše stejné


=SUBSTITUTE(TRIM(CONCATENATE(A3;" ";C3;" ";RIGHT(D3;LEN(D3)-SEARCH("\b[:alnum:]*$";D3)+1);" ";E3));" ";", ")
... ještě jsem ten vorec trochu zjednodušil, stačí vlastně funkce RIGHT místo MID.


ještě jednoduší:
=SUBSTITUTE(TRIM(CONCATENATE(A3;" ";C3;" ";MID(D3;SEARCH("\b[:alnum:]*$";D3);30);" ";E3));" ";", ")
(beru posledních 30 znaků, nejdelší české slovo má právě 30 znaků, takže by to mělo vždy vyjít.) (Ovšem pokud byste uvažoval že budou slova třeba ve švédštině, je zapotřebí dosadit číslo 130, to je počet písmen nejdelšího švédského slova :-)

Editoval ludviktrnka (22. 8. 2016 12:50:27)


LibreOffice 5.4.

Offline

Zápatí