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

#1 22. 5. 2015 21:34:24

filius
Člen
Registrace: 2. 4. 2014
Příspěvků: 19
Web

Odstranění duplicit ve sloupci – VYŘEŠENO

Zdravím,
prosím o radu: pokouším se odstranit duplicitní fráze podle tohoto návodu: http://www.openoffice.cz/photo_full/sta … odstraneni v takovémto souboru: http://www.imagehosting.cz/?v=duplicita.png.


Problém je v tom, že když mám v hlavním sloupci duplicitní fráze, které se ale odlišují tím, že ve vedlejších buňkách v rádku mají jiné hodnoty (viz obrázek), tak se mi u standardního filtru zkopírují opět všechny, jenže já tam potřebuji mít jen jednu stejnou frázi ve sloupic (třeba první „zvrchu"). Poradíte prosím, jak to ve filtru nastavit?

Editoval filius (13. 9. 2015 17:52:39)


Pracuji jako SEO konzultant a dělám návody o tom, jak využít Calc pro SEO.

Offline

#2 23. 5. 2015 07:36:47

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Tady se nabízí více řešení. Uvedl bych kontingeční tabulku na prvním místě. Ta dělá souhrny, což je přesně to co hledáte. Je ale dost jiných možností :
     Například zadat vzorec VlookUP. Ten vrátí vždy stejnou (první, nebo poslední) hodnotu. Podobných řešení je více a spočívají v tom, že tento seznam má také duplicity, ale už stejné. Jen tak mimochodem když do toho řešení filtrem nezahrnete cenu, ale jen názvy tak máte také vystaráno.
     Jinou cestou je řešení pomocí funkce RANK. Ta má 3 varianty. Ale já osobně bych vytvořil pomocný sloupec s dotazem na setříděný seznam :


     Dejme tomu, že název je ve sloupci "A" a názvy jsou setříděné nějak (vzestupně, nebo sestupně). Vložil bych sloupec mezi název (tedy "Klíčová fráze") a "Hledanost Seznam/měsíc". Do toho pomocného sloupce bych pak dal nejprve vzorec =IF(A1=A2;"";ROW()), nebo jeho variantu =IF(A1=A2;"";A1). Hned potom bych celý pomocný sloupec načetl do paměti vložil zpět jinak (jen hodnoty a text). Následně bych na tento sloupec použil filtr (testoval jste autofiltr ?).
     Tento systém vypisuje poslední stejnou frázi, nebo hodnotu. Takže když byste chtěl nejmenší údaj ze sloupce "Hledanost" tak byste musel seřadit "sestupně". Nejmenší hodnta by pak dostala signaturu. Pokud je seznam setříděn "vzestupně" signaturu dostane hodnota největší.


     Prostě těch řešení je opravdu hodně a jde jen o to, co si osvojíte jako postup. Ani se mi nechce o všech možnostech psát. Byla by z toho tak desítka normostran.


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 24. 5. 2015 18:37:24

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

do pomocného sloupce bych zapsal =IF(MATCH(A1;$A$1:$A$100;0)=ROW(A1);1;0) a roztáhnul do celého sloupce (zde řádky 1 až 100). Všechny jedinečné hodnoty a první hodnoty z duplicitních budou mít jedničku a další duplicitní hodnoty (kromě první) budou mít nulu - to pak už snadno vyfilturjete.


LibreOffice 5.2.2.2

Offline

#4 24. 5. 2015 18:49:29

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

No když by se to řešilo podle pana Trnky, tak je lepší vzorec =IF(MATCH(A1;$A$1:$A$100;0)=ROW(A1);1;""). V pomocném sloupci pak zůstanou jen ty hodnoty kde je jednička. Místo nul tam bude prázdný řádek.


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 21. 6. 2015 20:42:39

filius
Člen
Registrace: 2. 4. 2014
Příspěvků: 19
Web

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Děkuji všem za rady. Pokud bych použil kontingenční tabulky, postup by byl takový, že bych u první fráze, kterou bych chtěl jako jedinou ponechat, vložil nějaké označení prvku, a u dalších ne?

Editoval filius (21. 6. 2015 20:43:06)


Pracuji jako SEO konzultant a dělám návody o tom, jak využít Calc pro SEO.

Offline

#6 22. 6. 2015 05:20:14

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Záleží na konstrukci tabulky. Tabulka může dělat souhrny. Když to uděláte správně tak uděláte souhrn z jiného sloupce (například z názvu ap.). Dá se použít například GetPivotTable.
     Ten dříve uvedený vzorec můžete použít například také pro automatický (a jiný filtr), nebo ho upravit rozšířením o funkci RANK. Mohlo by to vypadat třeba takhle :
=IF(MATCH(A1;$A$1:$A$100;0)=ROW(A1);RANK(HledanáHodnota;Úsek;vzestupně/sestupně);""). Podobně lze použít funkce RANK.AVG(), nebo RANK.EQ().
     Tyto vzorce udělají z té jedničky číslo pořadí stejného parametru a pak můžete jak kontingenční tabulkou, tak nějakým filtrem přetřídit právě tenhle sloupec.


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

#7 22. 6. 2015 18:02:17

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Myslím, že tuto prkotinu řešíte zbytečně složitě. Označte duplicitní řádky a buď ctrl-c nebo filtrem je přehrajte jinam nebo automatickým filtrem vyberte duplicity a smažte je.

Pokud je těch řádků více (cca nad 1000-10000) a chcete duplicity smazat, tak k označení duplicit použijte vzorec od ludviktrnka a list setřiďte podle pomocného vzorce tak, aby mazané sloupce byly pohromadě - mazání je pak mnohem rychlejší.

Odstraňování duplicit pomocí KT v uvedeném kontextu je docela unikátní. Nicméně, pokud na tom trváte...

1) Označte duplicitní řádky v pomocném sloupci (vhodná je varianta 1/0 nebo pravda/nepravda
2) Vytvořte KT - do pole stránky vložte pomocný sloupec, do pole řádku první sloupce a do datového pole také první sloupec. Zvolte funkci počet pokud nebude zvolena automaticky. V možnostech zatrhněte zobrazovánání podrobností.
3) v KT v poli stránky nastavte filtr na unikátní hodnoty. (ve druhém sloupci by měly být samé "1")
4) dvojklik na buňku s počtem řádků v posledním řádku zobrazí v dalším listu řádky, ze kterých byla tabulka vytvořena.

Offline

#8 22. 6. 2015 18:48:45

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Mě to moc jednoduché nepřipadá. Autor porovnává dva různé zdroje a jde asi o to, že někdy musí porovnat stejné položky. Tedy ne vždy je možné považovat položku za duplicitní. Podle obrázku z prvního příspěvku je zřejmé, že některý zdroj asi nemá všechny údaje (cena ap.) a má také jiná čísla pro stejnou položku. To má důvod v tom, že zřejmě existují unikátní položky (neduplicitní) z obou zdrojů.
     Když uvádí, že hledá duplicity tak to může být také duplicita čísla měsíce, nebo dne. Obrázek je nejspíš jen ilustrační. Já bych podle obrázku spíš usoudil na potřebu zprůměrovat dvě duplicitní položky. Komerční servery například nabízí "nejlacinější" zboží - pak je logické, že se hledají nejmenší čísla - ale z mnohem většího počtu prodejců nežli ukazuje ilustrace.
     Na druhou stranu možná hledáme číslo nejmenšího objemu (například prodej v kusech). Ale to je otázka co opravdu chce autor sledovat.
     Podle příspěvku z 21.6.2015 to vypadá, že autor požaduje nějaký souhrn k té "nejmenší položce" z těch všech ostatních (duplicit), které by chtěl následně smazat. Takže ono nejde o prosté smazání duplicit. Právě proto uvádám řešení, které vyhovuje této potřebě. Ono to přímo souvisí s tím slučováním CSV souborů. Právě proto usuzuji, že chce vyhodnotit podklady za 700 dní z bůh ví kolika zdrojů. V žádném případě nepůjde o jednoduché smazání duplicit.


PS když se podíváte na autorovi příspěvky tak zřejmě pořád řeší stejný problém. Podle ukázky CSV souboru mají jednotlivé soubory řádově tisíce řádků. Když sloučí 10 souborů začne mít problémy nejen se vzorci, ale i s odezvou počítače. Pokud se nepletu tak potřebuje porovnat a vyhodnotit cca 2 miliony řádků - a to už je porce.

Editoval neutr (22. 6. 2015 18:57:31)


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 22. 6. 2015 20:59:18

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Co kdyby se k tomu vyjádřil tazatel.

Pokud se odstraňují duplicity v milionech řádků, tak calc je mimo mísu.
V ostatních případech (a je jedno jestli jsou data na jednim nebo více listech) to znamená nějak označit řádek, který chceme zachovat a buď vybrané řádky zkopírovat někam nebo ostatní řádky smazat.

Pokud se maže řádově desetitisíce a více řádků, je vhodné nepoužívat k označení funkce, které vždy prohlížení celý soubor - vhodné je soubor setřídit a porovnávat vždy dva řádka, pokud se hledají současně duplicity na jiném listu je vhodná konstrukce  =vlookup(a1; sloupec; 1; 1) = a1. Po označení vzorce převést na hodnotu a seřadit tak, aby ty mazané byly v jednom bloku.

Offline

#10 23. 6. 2015 05:40:16

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

pro lp.:
     Souhlasím - autor by se měl vyjádřit k celé problematice. Na druhou stranu chápu, že problém řeší už od dubna 2014. V té době věděl asi jen málo o tom jak řešit. Věděl jen co chce. Ze 6-ti témat, které vytvořil jako dotazy se 5 týká právě přímo tohoto problému. Ten 6. s tímto souvisí zřejmě také ale nepřímo. Dotazy vznikaly tak jak si postupně vytvářel názor na postup řešení.
     Není divu, že se snaží problém specifikovat ve zjednodušené verzi. Vytvoří modelový příklad který ale nevystihuje komplexní problém. Tohle dělá většina tazatelů. Určitě máme s tímto postupem zkušenosti. Když potom (obecně) tazatel dostane uspokojivou odpověď na dotaz tak zjistí, že potřebuje ještě něco jiného.
     Já v tom nic špatného nevidím. Málokdy umí tazatel vystihnout potřebu přesným dotazem. Proto i v poměrně jednoznačných případech požaduji ukázku. Z té se pak snažím odhadnout skutečnou potřebu. A to nemluvím o případech kdy tazatel nechce, nebo nemůže sdělit čeho se problém týká.
     Také jde o to, že jen málokdo se bez problému přiznává, že něco neumí, nebo že se spletl, nepochopil meritum problému nebo odpovědi.


     Já to vidím tak, že nyní už autor má názor jak na to, ale naráží na problém objemů dat. Máte pravdu že přímým sloučením cesta přes 1,048 milionu řádků nevede. Také si myslím, že na doraz plný Calc bude zlobit. Pobere možná ještě prostý text, ale ne vzorce. A pokud vezme i vzorce pochybuji, že by se na výsledky dalo spoléhat.


     Řešení ale existuje. Problém se musí řešit jako relace X:Y pro soubory i jednotlivé řádky v nich. Takže v rámci vzorců je to relace dvojic z celku 700 souborů = 244650 porovnání. Při tom se musí "sloučit a odfiltrovat (smazat)" položky které obsahuje základní soubor 1:Y. Je možné, že při tom některé soubory z celku 700 zcela zaniknou.
     Takže například po prvním porovnání (1:699) zanikne polovina z celku 700 (vznikne soubor 1 který obsahuje unikátně všechny své položky), ale relace další bude také ještě objemná 1:350 (vznikne soubor číslo 2). Další soubory také budou vznikat a budou také vždy o dost menší nežli předchozí. Dejme tomu, že jich bude 10. (Také je možné zbylé položky přidat k souboru čéslo 1 a pracovat jen s tímto souborem.)
     Těchto 10 souborů už asi půjde sloučit do jednoho (pokud nebude existovat přes milion různých druhů zboží). Ovšem já ještě pochybuji, že vystačí jediné kumulování objemů. Taková práce se vyplatí dělat jen v případě, že statistiku vypracujeme celou. Tedy podle mne bude potřeba aby bylo kumulováno více parametrů. Počet prodaných za položku + cena. Ve výsledku pak bude celkový počet s průměrnou cenou a rozsahem ceny od - do. Soustředit taková data vyžaduje také například improvizovat ve vzorci přepočet na existující průměr, pokud je uveden jen počet a ne jednotková cena. Takže potom bude existovat nejméně kumulace počtu a celkové ceny za tento počet, minimální a maximální cena. Také nesmíme zapomenout, že o peníze jde vždy až v první řadě.
     Proto si myslím, že to vůbec není jednoduché. Jen autor vše zjednodušil. Představte si, že by to celé takto vybalil v souhrnu. První na co by se lidé ptali možná i "nahlas" - "k čemu to potřebuješ" a "co z toho budeš mít" : - )

Editoval neutr (23. 6. 2015 05:57:33)


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

#11 23. 6. 2015 08:49:36

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Asi tak:  Calc na odstraňování duplicit v milionech datových vět není.

Pokud se opravdu jedná o takové objemy dat, tak doporučuji přesunout diskusi třeba do části base.

Pokud jde o objemy do milionu, pak bych to také řešil jinde, ale calc to při rozumném přístupu zvládne. Nejjednodušší možnosti jsem naznačil výše.

Nezmínil jsem jednu věc - i vzorce jsou programem a je třeba je ladit. Tj. zkoušet nejprve na menším objemu data a ten postupně navyšovat. Kromě správnosti sledovat i odezvu. Např. odezvu milionu funkcí rank na milionu řádků si netroufnu odhadnout (hodiny? dny? ...?).

Mimo to. Nechápu odpor k utilitám v systému. Např. spojení více souborů ve win zvládne obyčejné
copy. K odstranění duplicit použiji utilitu sort a uniq (poslední je v linuxu, jsou porty do win). Celé to trvá (čistil jsem cca 10 mil. řádků) cca 2 min.

Offline

#12 23. 6. 2015 10:18:43

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

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

pro lp.
Ano to je pravda. Pokud by autor použil nástroj CSV Validator CSV Validator - pod  Mozilla Public Licence version 2.0., tak je to ještě snadnější. Slučoval jsem v něm (starší verze tuším 1.0.0) 14 milionů řádků a bez problému.
     Jenže já se domnívám že autor požaduje právě tu těžbu dat kterou podle Vašeho návodu ani pomocí CSV Validátoru nezíská. Ale on se jistě vyjádří.


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

#13 13. 9. 2015 17:52:20

filius
Člen
Registrace: 2. 4. 2014
Příspěvků: 19
Web

Re: Odstranění duplicit ve sloupci – VYŘEŠENO

Dobrý den,
děkuji Vám za rady. Vyřešeno – nakonec to bylo jednoduché, použil jsem tento postup: https://www.youtube.com/watch?v=7rZcnBDzfRA


Pracuji jako SEO konzultant a dělám návody o tom, jak využít Calc pro SEO.

Offline

Zápatí