Oldal: 1 / 1

[Megoldva] Nevek kinyerése

Elküldve: 2020. április 6., hétfő 15:04
Szerző: Szergio
Sziasztok!
Adott egy Calc dokumentum, amelyben több száz név van. Sajnos gyakran úgy, hogy egy cellában akár harminc név is beírva (általában egymástól vesszővel elválasztva), ill. egy név több cellában is szerepelhet. (mellékelek egy egyszerűsített mintát)
Tudtok valami függvényt ajánlani, amivel esetleg kinyerhetnék egy névsort, hogy kik szerepelnek a táblázatban (hab a tortán, ha azt is lehetne, hogy hányszor)?

(ez onnan indult, hogy beírásra került több fényképalbumnak az anyaga: ki található az adott képeken: van csoportkép, egyéni kép stb. ... ebből lett ez a hatalmas kupac ... ahonnan most el kellene jutni oda, hogy kiről is van fénykép az albumokban)

Biztos, hogy ezt érdemes lett volna értelmesebben kezdeni az elejétől, de most ezzel a kupaccal kell(ene) valahogy megbirkózni :-(

Re: Nevek kinyerése

Elküldve: 2020. április 6., hétfő 15:35
Szerző: Zizi64
Ami el van cseszve, az el van cseszve, nincs mit tenni vele. Az elejétől meg kell csinálni rendesen. Ez az első és leghatározottabb véleményem.

Lehet utólag bűvészkedni, hogy .csv fájlként exportálod-importálod az adatokat, és akkor "vessző" adatelválasztó karaktert konfigurálva külön-külön cellába kerülnek a nevek. De az egyik sorban ennyi, a másikban megy annyi név lesz... Ezért az adathalmaz pont ugyanolyan kezelhetetlen marad, mint eredetileg volt.

Függvénnyel nem jó ezt megvalósítani, mert az látszólag "szétszedheti" a neveket, de az csak hivatkozás lesz, nem valóban szétszedett nevek. Az eredmény ugyanúgy kezelhetetlen marad.

Makró szubrutinnal is szétszedheted az adatokat, akkor valóban szétszedett adatokká válhatnak, és elvileg megvan a lehetőséged arra is, hogy akár egyetlen oszlopba konvertálhatod a sok nevet, amit aztán már leszűrhetsz, számolhatsz, stb... De ezt a makrót NEKED kell megírni. A StarBasic tartalmaz SPLIT utasítást:
https://help.libreoffice.org/Basic/Spli ... on_Runtime
Az eredményt (tömbként megkapott több darab szöveget) pedig beíratod egymás mellett/alatt lévő cellákba...

Re: Nevek kinyerése

Elküldve: 2020. április 6., hétfő 16:06
Szerző: Szergio
Köszönöm szépen! ... Nagyjából sejtettem, hogy az elejétől kellett volna ezt valahogy rendbe szedni.
Most mindenféle átalakítással (főleg a vesszők felhasználásával) eléggé mechanikus úton eljutottam oda, hogy van egy oszlopom, amelyikben - névsor szerint rendezve - van x Pistám, y Jóskám stb. ...

Arra van valami esélyem, hogy ezekből kapjak egy olyan sort, amiben csak egyszer szerepel a név (s esetleg egy másik oszlopban, hogy hány van belőle), anélkül, hogy minden egyes nevet végig kellene zongorázni?

Vagy "kalapáljam" ügyesem tovább?

Re: Nevek kinyerése

Elküldve: 2020. április 6., hétfő 17:55
Szerző: Zizi64
Nem tudod a szűrőt használni (ami képes lenne leszűrni az ismétlődéseket), mert nem egyetlen oszlopban (és sok-sok sorban) vannak a nevek. A kétdimenziós adathalmaz egyik oszlopa szerint leszűrve, a másik oszlopban már eleve "eltűnnek" bizonyos nevek, amiknek nem kéne eltűnni....
Tehát akár a COUNTA() szövegszámláló függvényt használod, akár a szűrést: nevenként kell "végigjátszanod", hogy "ebből mennyi; abból mennyi...")

De nem tudok neked olyan metódust mondani, ami vagy egy sorba, vagy egy oszlopba rendezné a neveket.
Hacsak nem - szintén egy .csv fájl állapoton keresztül nem cseréled le a sorvég karaktereket (Enter/Shift-Enter) adatelválasztó "vessző" karakterre egy primitív szövegszerkesztővel. Ekkor ezt importálva a Calcba: egyetlen sornyi adatod lesz, de a nevek külön cellákban fognak elhelyezkedni. (Hacsak nincs több neved, mint ahány oszlop lehet egy Calc fájlban, mert akkor ez a megoldás nem jó, vagy szakaszosan, darabonként kell elvégezni a konverziót, és aztán az eredményt összemásolni egy fájlba...

A sorokban lévő adatokat viszont lehet transzponálni oszloppá a Calc beépített tudásával.

Re: Nevek kinyerése

Elküldve: 2020. április 6., hétfő 19:02
Szerző: Szergio
Ez megvan ... Tehát most nekem minden egy oszlopban van (van közel ezer sorom), minden sorban egy-egy. Rendezve ezt a oszlopot kijön András, András, András, András, Benedek, Benedek stb. ...
S ebből tudok-e olyat, hogy: András, Benedek (esetleg olyat, hogy András 4 db, Benedek 2 db)?

Re: Nevek kinyerése

Elküldve: 2020. április 6., hétfő 21:42
Szerző: Zizi64
Megszámoltatni akkor tudod, ha megadod, hogy MIT számoljon meg. Ezt lehet statikusan, vagy dinamikusan megtenni.

Egyébként:
Szűresd le az adatokat egy másik munkalapra a Standard filterrel, ismétlődések nélkül.
Standard filter.png

Re: Nevek kinyerése

Elküldve: 2020. április 7., kedd 9:04
Szerző: Szergio
Köszönöm szépen!!!
Ez az irányított szűrés sokat segített az utolsó lépéshez!!
További jókat!