
Excel - hromadné oddělení prvních slov v buňce daného sloupce do předešlého sloupce
Nevím, jestli to Excel umí, ale zeptám se.
Mám v Excelu obsáhlý slovník. Všechno je v jednom sloupci. Chci, aby se první slovo v každé buňce (čili slovo, jehož význam je v onom slovníku popisován) oddělilo od zbytku textu v oné buňce. Čili aby se vytvořily dva sloupce. První sloupec - vždy jedno slovo. Druhý sloupec - popis významu onoho slova.
Nějaké možnosti? Jde o tisíce položek v onom sloupci.
Hľadanie poslednej medzery problém nerieši, keďže ako prvý výraz, tak ani nasledujúci výklad nie je jednoslovný.
POKIAĽ je však medzi prvým a druhým (vysvetľujúcim) výrazom jednoznačný oddeľovač (z Tvojho príkladu dedukujem, že máš všade pomlčky, na ktoré sa pýtal aj MaSo), možno ich od seba oddeliť alebo vhodným vzorcom (prvá časť je oddelená v mieste výskytu oddeľujúceho znaku a druhá časť je daná zvyškom dĺžky celého výrazu po oddelení prvej časti).
Samozrejme je potom potrebné prelepiť vzorce svojimi hodnotami. Následne môžeš prvý stĺpce vypustiť (označíš prvý stĺpec a CTRL - -)
Druhá možnosť je použitie nástroja "Údaje-Text na stĺpce":
Označíš celý stĺpec a zvolíš tento nástroj, ktorý má svojho sprievodcu. Postupne zodpovieš charakteristiku výrazu (časti sú od seba oddelené oddeľovačom " - ") a nastavíš typ oddeľovača ("iné" a zadáš pomlčku. Tu je problémik v tom, že sa nedá nastaviť viacznakový oddeľovač aký by sme potrebovali, t.j. " - ", čiže vrátane medzier) Sprievodca Ti ukáže ukážku výsledku a nasleduje ešte formátovanie novovzniknuvších stĺpcov, jednotlivo pre každý stĺpec (môžeš nechať všeobecne alebo prenastaviť na text. Dokončiť. (Takýmto spôsobom môže vzniknúť x nových stĺpcov, ktoré sú výsledkom výskytu oddeľovačom v rozdeľovanom výraze. Z toho vyplýva, že vo zvyšnej (vysvetľujúcej časti) by sa oddeľovač (pomlčka) nemal vyskytovať!
Tu nie sú žiadne vzorce.
Treba si však uvedomiť, že výrazy v prvom stĺpci majú za sebou vždy medzeru (tú ktorá bola pred pomlčkou, kde bol obsah rozdelený) a výrazy v druhom stĺpci majú pred sebou vždy medzeru (nasledujúcu po oddeľovacej pomlčke). Pokiaľ by Ti to vadilo, použi funkciu TRIM (myslím že po česky "Pročistit"), kde sa odoberú všetky nadbytočné medzery.
Prikladám upravený súbor, ktorý poskytol MaSo, kde červenou je výsledok MaSo-vej funkcie a za ním mojej.
Pokud by to bylo všude oddělené pomlčkami, tak by moźná bylo nejlepší
text do sloupců -> oddělovač -> pomlčka
problém ale je, tak ta pomlčka může být v jednom řádku (buňce) vícekrát, takže by se to někde oddělilo v pořádku, a někde by se to rozhodilo do několika sloupců
tak použi vzorec podľa zaslaného súboru.
Dalo by sa trikom nahradiť prvý oddeľovač " - " niečím iným a jednoznačným, ale to by znamenalo vzorce a týmpádom sa vzorcom nevyhneš.
Takže to rovno porieš tým vzorcom hneď.
Ďalšia možnosť je makro ale uvažovať týmto smerom je zbytočné, keďže funkcia Ti to porieši, bez potreby znalosti VBA.
P.S. Prehliadol som Tvoju poznámku "a keď tam tá pomlčka nebude?"
Neviem si predstaviť, že by si oba výrazy zlieval dohromady...
V tom prípade tam budeš mať nejaký iný oddeľovač, napr 3 medzery a pod. Potom upravíš vzorec namiesto hľadania reťazca " - " (medzera pomlčka medzera) dáš hľadať reťazec " " (tri medzery)... Všetko ostatné vo vzorcoch ostane tak ako je.
No ona tam ta pomlčka je, ale někdy je v dané buňce víckrát než jednou. Jak to například u slovníků bývá, když je pomlčkami naznačeno časování slovesa.
Aaaalebo dáš príkaz CTRL H a dáš nahradiť výraz "medzera pomlčka medzera" za znak, ktorý sa určite nikde nevyskytne, napr. "§" ale len v miestach medzi výrazom a vysvetlivkou. A potom použiješ nástroj Text na stĺpce a dáš rozdeliť v mieste výskytu §. A je to!
Nevýhoda - musíš manuálne prejsť všetky nájdené prípady, ale zas Ti stačí odklikávať len "nahradiť" alebo "nenahradiť"
Ale jak udělám, aby se mi to přes CTRL+H nahradilo jen tam, kde potřebuju? A ne i tam, kde je ta "pomlčka" jakoby navíc? (čili kde neodděluje slovo/sousloví od významové části
jedine nejakým charakteristickým rozlíšením prípadov, kde to má nahradiť od tých, kde to nemá nahradiť.
Tak ako písal MaSo, musíš mať jednoznačný oddeľovač. Inak Ťa čaká manuálna práca, ktorú si aspoň čiastočne môžeš zľahčiť
To by sme potom ale vedeli vyriešiť i vzorcom a nemusel by si manuálne...
Fakt tam nenájdeš niečo charakteristické, čo by sa dalo využiť na rozlíšenie tej prvej časti od vysvetlivky?
Veď urob nejaký úryvok a prilož...
A když to tedy budu chtít oddělit vždy na první mezeře (na konci prvního slova zleva), tak to udělám jak?
Deláš si prdel? To máš v hned první moji odpovědi...
nojo, ale jak ten vzorec použiju
Tak na to nemám...
přes vložit funkci mi to nejde
Třeba je to tím že MaSo poslal příklad z anglické verze excelu a ty máš českou?
Ano mam českou
A tak by to chtělo přiložit REÁLNÝ vzorek toho souboru .. jak jsou dělané mezery, jaká tam jsou případná slovní spojení. Že jsi napsal
AAA - 111
BBB - 222
CCC DDD - 333
to fakt moc nepomůže, když reálně to vypadá jinak. To opravdu nemůžeš vložit ten excel třeba jen ořezaný na pár řádků?
Salve Hospes — „Vítej, hoste!“
salvo iure — bez porušení práva
sanctimonia, ae f. — svatost, bezúhonnost
sanctimonialis, is f. — jeptiška
sanctum et gloriosum opus — svaté a slavné dílo
sapientia, ae f. — moudrost
sartor lignorum — struhař, prknář
oddělit první slovo
vždy první slovo zleva oddělit
.. takže oddělovač je pomlčka?
Přes pomlčku to lze snadno oddělit přes "text do slopců" - to umím.
Chtěl bych ale oddělit vždy první slovo zleva. Problém je (jak vidíš), že někdy je za prvním slovem zleva mezera, někdo např čárka atd.
Chci tedy oddělit první slovo zleva u všech buněk v celém sloupci.
Uveď příklad jak to chceš mít rozdělené pro řádky 1 a 4 ..
Salve (konec buňky)Hospes — „Vítej, hoste!“
sanctimonialis (konec buňky), is f. — jeptiška
prostě první slovo zleva oddělit vždy
To pak ten slovník ale jaksi ztrácí význam, ne?
Chci to oddělit proto, že budu postupně přidávat nová slova a výrazy, a chci si takto ověřit, zda tam daná slova již nejsou.
Nejdříve oddělím slova, poté přidám do sloupce nová slova, potom vymažu duplikace
Aha, takže už jsi se vrhnul na svůj vlastní "slovník".
Asi Ti moc nevadí, že Excel na tyhle věci není zrovna ideální a asi nevíš, že třeba v databázi (stačí i MS Access) bys tohle hlídání duplikátů měl zautomatizovaný do té míry, že by Ti to vůbec nepovolilo založit duplicitní pložku...
Jenže ona ta poloźka nemusí být zcela duplicitní, protože popis dané slova se může lišit, nemusí být doslovně stejný.
Ale pokud mažeš v Excelu duplikace podle prvního slova (což jsem podle Tvýho popisu pochopil), pak teda na zbytku nezáleží.
Samozřejmě vhodným návrhem databáze se dá ošetřit spousta věcí, třeba i ty alternativní popisy.
Je to trochu jinak. Mám určítý základ (seznam slov), kde je význam slov popsán. A já postupně přidávám do tohoto základu další a další slova. A abych zjistil, jestli už tam dané slovo není, použiji první slovo každé buňky (slovo, jehoź význam je v dané buňce popisován) a tomu přidám seznam nových slov, která chci přidat. A aby tam jedno slovo nebylo vícekrát, použiji vymazání duplikací. Potom uź nemusím řešit, zda se popis významu daného slova drobně liší nebo ne.
Však si to dělej jak chceš, jen jsem Tě chtěl upozornit i na jiný možnosti, který jsou - dle mýho názoru - na tuhle práci vhodnější (stejně jsem z toho popisu moc nepobral...).
Tak jaké třeba? Ale musíš brát v potaz, že nejsem zrovna odborníkem... :) snažím se to dělat tak, jak to umím, aby to bylo pro dané účely funkční
Radám se beze nekladou