Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Předmět Autor Datum
Slova jsou oddělena mezerou? =LEFT(A1;SEARCH(" ";A1)-1)
MaSo 15.09.2015 00:19
MaSo
Ano, ale problém je v tom, že některá slova jsou jednotlivá, někde jde o slovní spojení
Keyer 15.09.2015 00:26
Keyer
Pak je to neřešitelné, pokud není slovní spojení odděleno od překladu jinak, než mezerou... EDIT: V…
MaSo 15.09.2015 00:27
MaSo
=TRIM(RIGHT(SUBSTITUTE(A1;" ";REPT(" ";LEN(A1)));LEN(A1)))
MaSo 15.09.2015 00:31
MaSo
co to udělá?
Keyer 15.09.2015 00:46
Keyer
To, co potřebuješ...
MaSo 15.09.2015 00:51
MaSo
Já nevím úplně pŕesně co myslíš tím "poslední mezeru". Ty slova a slovní spojení, která je nutno odd…
Keyer 15.09.2015 00:53
Keyer
Tak sem napiš nějaký vzor - co v té buňce vlastně je a co chceš oddělit...
MaSo 15.09.2015 00:56
MaSo
Tak příklad obecně AAA - 111 BBB - 222 CCC DDD - 333 EEE - 444 FFF GGG HHH - 555 III - 666 JJJ KKK…
Keyer 15.09.2015 01:03
Keyer
A ta pomlčka tam je vždycky?
MaSo 15.09.2015 01:03
MaSo
Tady...
MaSo 15.09.2015 01:09
MaSo
A za předpokladu, že tam ta pomlčka nebude?
Keyer 15.09.2015 10:59
Keyer
tvůj příklad dat zjevně nebyl příkladem těch dat, že?
touchwood 15.09.2015 13:17
touchwood
Hľadanie poslednej medzery problém nerieši, keďže ako prvý výraz, tak ani nasledujúci výklad nie je…
robert13 15.09.2015 10:53
robert13
Pokud by to bylo všude oddělené pomlčkami, tak by moźná bylo nejlepší text do sloupců -> oddělovač…
Keyer 15.09.2015 11:04
Keyer
tak použi vzorec podľa zaslaného súboru. Dalo by sa trikom nahradiť prvý oddeľovač " - " niečím iným…
robert13 15.09.2015 11:19
robert13
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ů…
Keyer 15.09.2015 12:19
Keyer
Pokud nemáš jasně dané oddělovací pravidla, tak je to neřešitelné...
MaSo 15.09.2015 12:21
MaSo
Neviem, čo riešiš, zaslal som Ti súbor (10:53), kde máš vzorce, ktoré ošetria len prvý výskyt pomlčk…
robert13 15.09.2015 12:40
robert13
Ani tak však nie je všetko stratené... Dal by sa napr. spoznať reťazec, obsahujúci koncovku časovani…
robert13 15.09.2015 13:39
robert13
Aaaalebo dáš príkaz CTRL H a dáš nahradiť výraz "medzera pomlčka medzera" za znak, ktorý sa určite n…
robert13 15.09.2015 14:05
robert13
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 "po…
Keyer 15.09.2015 14:52
Keyer
Klikat to po jednom.....jsou to desetitisíce položek...
Keyer 15.09.2015 14:55
Keyer
jedine nejakým charakteristickým rozlíšením prípadov, kde to má nahradiť od tých, kde to nemá nahrad…
robert13 15.09.2015 15:21
robert13
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…
Keyer 16.09.2015 10:42
Keyer
Deláš si prdel? To máš v hned první moji odpovědi...
MaSo 16.09.2015 10:43
MaSo
nojo, ale jak ten vzorec použiju
Keyer 16.09.2015 10:44
Keyer
Tak na to nemám...:-)
MaSo 16.09.2015 10:45
MaSo
přes vložit funkci mi to nejde
Keyer 16.09.2015 10:48
Keyer
Třeba je to tím že MaSo poslal příklad z anglické verze excelu a ty máš českou?
MKc 16.09.2015 10:55
MKc
Ano mam českou
Keyer 16.09.2015 10:56
Keyer
No tak si ty funkce musíš přeložit do češtiny, že
MKc 16.09.2015 10:58
MKc
Já jsem nikdy takového funkce v Excelu nepoužíval... nevím přesně jak na to :)
Keyer 16.09.2015 10:59
Keyer
A tak by to chtělo přiložit REÁLNÝ vzorek toho souboru .. jak jsou dělané mezery, jaká tam jsou příp…
MKc 16.09.2015 11:04
MKc
Salve Hospes — „Vítej, hoste!“ salvo iure — bez porušení práva sanctimonia, ae f. — svatost, bezúhon…
Keyer 16.09.2015 11:06
Keyer
vždy první slovo zleva oddělit
Keyer 16.09.2015 11:32
Keyer
.. takže oddělovač je pomlčka?
MKc 16.09.2015 11:45
MKc
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 prv…
Keyer 16.09.2015 11:49
Keyer
Uveď příklad jak to chceš mít rozdělené pro řádky 1 a 4 ..
MKc 16.09.2015 11:55
MKc
Salve (konec buňky)Hospes — „Vítej, hoste!“ sanctimonialis (konec buňky), is f. — jeptiška prostě p…
Keyer 16.09.2015 12:02
Keyer
slovo, jehož význam je v onom slovníku popisován Že v tom slovníku není popisován význam slova cháp…
karel 16.09.2015 12:07
karel
Chci oddělit první slovo od zbytku, chápeš?
Keyer 16.09.2015 12:19
Keyer
To pak ten slovník ale jaksi ztrácí význam, ne?
MKc 16.09.2015 13:02
MKc
Chci to oddělit proto, že budu postupně přidávat nová slova a výrazy, a chci si takto ověřit, zda ta…
Keyer 16.09.2015 14:31
Keyer
Nejdříve oddělím slova, poté přidám do sloupce nová slova, potom vymažu duplikace
Keyer 16.09.2015 14:32
Keyer
Aha, takže už jsi se vrhnul na svůj vlastní "slovník". Asi Ti moc nevadí, že Excel na tyhle věci nen…
MachR55 16.09.2015 14:39
MachR55
Jenže ona ta poloźka nemusí být zcela duplicitní, protože popis dané slova se může lišit, nemusí být…
Keyer 16.09.2015 14:43
Keyer
Ale pokud mažeš v Excelu duplikace podle prvního slova (což jsem podle Tvýho popisu pochopil), pak t…
MachR55 16.09.2015 14:51
MachR55
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…
Keyer 16.09.2015 14:56
Keyer
Jak chceš popisovat význam slov, když to nejsou slova, ale celé výrazy? To rozdělení na první slovo…
karel 16.09.2015 15:01
karel
Ano je to tabulka. A každá buňka = 1 slovo/1 výraz + jeho popis MS Access sice moc nepoužívám, ale…
Keyer 16.09.2015 15:06
Keyer
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á…
MachR55 16.09.2015 15:01
MachR55
Tak jaké třeba? Ale musíš brát v potaz, že nejsem zrovna odborníkem... :) snažím se to dělat tak, ja…
Keyer 16.09.2015 15:07
Keyer
Radám se beze nekladou poslední
Keyer 16.09.2015 17:47
Keyer
Nevim jestli je MS Access lepší. Používám Excel. Všechno je v jednom sloupci a každá buňka obsahuje…
Keyer 16.09.2015 15:02
Keyer
::) a to sú ešte slabo vyvalené oči...
robert13 16.09.2015 14:11
robert13
Případ jen s mezerami řešil vzorec v úplně prvním příspěvku. Pokud tam máš i čárky, potřebuje jen "m…
MachR55 16.09.2015 12:04
MachR55
a nějak polopaticky prosím... jak ten vzorec aplikovat?
Keyer 16.09.2015 12:31
Keyer
Cože? :-? Co s tím chceš radit? Jednoduše: když máš ten text v buňce A1 (a dalších ve sloupci A), vl…
MachR55 16.09.2015 12:36
MachR55
To zkouším, ale nefunguje to pro ty buňky, ve který je hned za počátečním slova čárka viz slopce 3,…
Keyer 16.09.2015 12:49
Keyer
Tak děláš něco blbě, mě to samozřejmě funguje s mezerou i čárkou, zkoušel jsem to přesně na těch dat…
MachR55 16.09.2015 12:57
MachR55
nefunguje to tak, že u těch dotyčných buněk to zkopíruje text z první buňky (B1)
Keyer 16.09.2015 13:09
Keyer
.. snad nekopíruješ ten vzoreček ručně do každého řádku ... jinak by ti ty odkazy (pokud to ve vzorc…
MKc 16.09.2015 13:17
MKc
Ne, přetahuju to normálně šipkou v rohu buňky
Keyer 16.09.2015 13:19
Keyer
Salve Hospes — „Vítej, hoste!“---------- Salve salvo iure — bez porušení práva ---------- salvo sanc…
Keyer 16.09.2015 13:21
Keyer
Omlouvám se, při skládání toho "megavzorce" mi zam zůstalo v jednom místě "B1". Správné znění: =KDY…
MachR55 16.09.2015 13:35
MachR55
výborně, už to funguje jak má 8-)
Keyer 16.09.2015 13:38
Keyer
ještě jedna věc - jak to zrychleně přetáhnu až na konec?
Keyer 16.09.2015 13:40
Keyer
2x poklepej na ten úchyt v pravým dolním rohu, pomocí něhož ten vzorec roztahuješ do dalších buněk.…
MachR55 16.09.2015 13:54
MachR55
:-):-)
MKc 16.09.2015 10:52
MKc

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.

Neviem, čo riešiš, zaslal som Ti súbor (10:53), kde máš vzorce, ktoré ošetria len prvý výskyt pomlčky (resp reťazca: medzera pomlčka medzera")!
Máš to VYRIEŠENÉ !!!
Keď máš naznačené časovanie, predpokladám, že pred koncovkami máš pomlčku naviazanú na príponu bez medzery.
Tým je to vyriešené, keďže vzorec hľadá výskyt reťazca "medzera pomlčka medzera"
Pokiaľ máš prípony časovania oddeľované takým istým reťazcom, je to blbé. Tak sa to nerobí...

Ani tak však nie je všetko stratené...
Dal by sa napr. spoznať reťazec, obsahujúci koncovku časovania a v takom prípade by sa nahradil oddeľovač "medzera pomlčka medzera" reťazcom "medzera pomlčka", čím by prvý výskyt reťazca "medzera pomlčka medzera" bol skutočne tam, kde patrí, t.j. medzi výraz a jeho vysvetlivku.
Pokiaľ napr koncovka časovania má napr dve písmená, dá sa napísať funkcia, ktorá z každého výrazu " - xx " urobí výraz " -xx "(Prikladám, avšak naraz dôjde len k jednej náhrade - snáď z príkladu pochopíš)
Podobne sa môžu upraviť aj trojpísmenné koncovky a pod... až kým neostane oddeľovač " - " len tam, kde naozaj má byť.
Problém takéhoto riešenia je v tom, že pokiaľ sa na začiatku vysvetlivky tiež vyskytne takýto reťazec, tiež dôjde k náhrade, čo pokazí potrebu ponechani pôvodného oddeľovača na rozhraní medzi výrazom a vysvetlivkou...
Keďže neviem, aký máš štýl tabuľky a aké a koľko typov prípon tam môže byť, je možné že takýto spôsob by bol zdĺhavejší, než manuálna náhrada reťazcov "medzera pomlčka medzera" pred koncovkami. Okrem toho, aj v prípade manuálnej opravy si môžeš prepisovanie týchto reťazcov uľahčiť vyhľadávaním (CTRL-F) reťazca " - ?? " (medzera pomlčka otáznik otáznik medzera" a tam to manuálne opravíš.
Priame nahradzovanie pri vyhľadávaní neviem poradiť, lebo neviem, ako nahradiť zástupné znaky "??" pôvodnými znakmi. Pokiaľ niekto v tomto poradí, prejdeš síce manuálne celý stĺpec ale celá tvoja úloha sa zredukuje na odsúhlasenie alebo neodsúhlasenie zámeny, kým nedosiahneš stav, že oddeľovač "medzera pomlčka medzera" ostane len medzi výrazom a vysvetlivkou a potom použiješ vzorec z mojej prílohy z 10:53)

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ť"

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 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

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.

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.

Případ jen s mezerami řešil vzorec v úplně prvním příspěvku. Pokud tam máš i čárky, potřebuje jen "mírně" upravit. Přeloženo pro CZ Excel:

=KDYŽ(ZPRAVA(ZLEVA(A1;HLEDAT(" ";A1)-1);1)=","; ZLEVA(ZLEVA(A1;HLEDAT(" ";A1)-1);DÉLKA(B1)-1); ZLEVA(A1;HLEDAT(" ";A1)-1))

Cože? :-? Co s tím chceš radit?
Jednoduše: když máš ten text v buňce A1 (a dalších ve sloupci A), vložíš tento vzorec do buňky B1 a zkopíruješ do dalších buněk ve sloupci B.
Pokud máš ten text někde jinde, musíš vzorec upravit a místo A1 tam dát adresu buňky, kde ten text máš.

Tak děláš něco blbě, mě to samozřejmě funguje s mezerou i čárkou, zkoušel jsem to přesně na těch datech, co jsi sem dal. Dobré by bylo napsat, jak to nefunguje (blbý výsledek, chyba, ...), případě sem přímo ten soubor nahrát (předtím se ale musíš zde zaregistrovat).

Salve Hospes — „Vítej, hoste!“---------- Salve
salvo iure — bez porušení práva ---------- salvo
sanctimonia, ae f. — svatost, bezúhonnost ---------- Salve
sanctimonialis, is f. — jeptiška ---------- Salve
sanctum et gloriosum opus — svaté a slavné dílo ---------- sanctum
sapientia, ae f. — moudrost ---------- Salve
sartor lignorum — struhař, prknář ---------- sartor

Takhle to vypadá. Někde je to v pořádku, někde ne (tam, kde je čárka za poćátečním slovem).

Omlouvám se, při skládání toho "megavzorce" mi zam zůstalo v jednom místě "B1". Správné znění:

=KDYŽ(ZPRAVA(ZLEVA(A1;HLEDAT(" ";A1)-1);1)=","; ZLEVA(ZLEVA(A1;HLEDAT(" ";A1)-1);DÉLKA(ZLEVA(A1;HLEDAT(" ";A1)-1))-1); ZLEVA(A1;HLEDAT(" ";A1)-1))

Ale pokud bys hned napsal, že Ti Excel při kopírování vyhodil upozornění na cyklický odkaz, měl bych to samozřejmě opravený rychleji.

2x poklepej na ten úchyt v pravým dolním rohu, pomocí něhož ten vzorec roztahuješ do dalších buněk. Vyplní se všechny buňky v daném sloupci, až po první volnou buňku v levém sousedícím sloupci.

Já to dělám pomocí klávesnice takto (za předpokladu, že sloupec A obsahuje ty texty a v buňce B1 mám ten vzorec, který chci dostat do dalších buněk ve sloupci b):
1. postavím se na buňku B1 se vzorcem a stisknu CTRL+C.
2. stisknu <šipku vlevo> (dostanu se na buňku A1)
3. stisknu CTRL+<šipka dolů> (dostanu se na poslední obsazený řádek ve sloupci A)
4. stisknu <šipku vpravo> (dostanu se na poslední buňku ve sloupci B, do níž potřebuji dostat vzorec)
5. stisknu CTRL+SHIFT+<šipka nahoru> (označí se mi celá oblast sloupce B, kam chci ten vzorec zkopírovat)
6. stisknu CTRL+V (označená oblast se vyplní tím vzorcem).

Ty asi o Excelu nevíš vůbec nic, že? Tak doporučuji tenhle web.

Zpět do poradny Odpovědět na původní otázku Nahoru