[Megoldva] Cella összevonás probléma

Táblázatkezelő
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

[Megoldva] Cella összevonás probléma

Hozzászólás Szerző: cortech »

A problémámat az alábbi mintával mutatom be.

Kiinduló táblázat két oszloppal:

alma Jonathan
alma Idared
alma Gold
alma Gála
alma Starking
körte Bosc kobak
körte Vilmos
körte Clapp kedveltje
körte Piros Vilmos
körte Bohusné
cseresznye Szomolyai
cseresznye Germersdorfi óriás
cseresznye Sunbrust
cseresznye Carmen
cseresznye Bigarreau Burlat

Átalakított táblázat, szintén két oszloppal.

alma Jonathan, Idared, Gold, Gála, Starking
körte Bosc kobak, Vilmos, Clapp kedveltje, Piros Vilmos, Bohusné
cseresznye Szomolyai, Germersdorfi óriás, Sunbrust, Carmen, Bigarreau Burlat

Próbáltam már mindenhogy (Libre, Excel), de nem tudtam megoldani.
Van esetleg valakinek ötlete, hogy hogyan lehetne ezt az "összevonást" automatizálni.
Kb. 1500 sorom van, és hosszú idő lenne egyesével összevonni...
Előre is köszönök minden ötletet!
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Konkrét .ods mintafájlokat töltsél fel, abból minden kiderül a tesztelő számára. Szövegesen képtelenség minden körülmény leírni, és lehet, hogy a megoldás/a probléma gyökere éppen az általad le nem írt részben van...

A fájlméret limit 128 KiB ezen a fórumon.
Az Új hozzászólás gombra kattints (ne a Gyors válasz-ra), és akkor a szerkesztőablak alatt megtalálod a fájlcsatolási lehetőséget.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Átalakított táblázat, szintén két oszloppal.

Kód: Egész kijelölése

alma | Jonathan, Idared, Gold, Gála, Starking
körte | Bosc kobak, Vilmos, Clapp kedveltje, Piros Vilmos, Bohusné
cseresznye | Szomolyai, Germersdorfi óriás, Sunbrust, Carmen, Bigarreau Burlat
Mihez kezdesz az egyetlen cellába összegyűlő hosszú szöveggel? Azért kérdem, mert hátha a főfeladatot máshogy is meg lehet oldani...

Makróként megírt cellafüggvénnyel egyébként viszonylag könnyen összefűzhető az azonos "első oszlop-tartalommal" bíró, második oszlopbeli cellák tartalma...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

A mellékelt fájl tartalmazza az általam most megírt ConcatIf() függvény makrókódját. A makró futását engedélyezned kell, és előtte "Közepesre" kell állítanod a Makróbiztonságot.
ConcatIf_sample.ods
(14.12 KiB) Letöltve 201 alkalommal.
De itt van külön is a kód:

Kód: Egész kijelölése

REM  *****  BASIC  *****
Option Explicit

Function ConcatIf(Condition as string, MyRange as Array, Separator as string)
 Dim Result as string
 Dim iRow as Integer
 
 
	'LoadXray
	'Xray MyRange
	Result = ""
	if NOT IsArray(MyRange) Then
      Result = "Hibás átadott tartomány"
    else
    	if UBound(MyRange, 2) <> 2 then
    		Result = "Nem kétoszlopos az átadott tartomány"
		else
			for iRow = LBound(MyRange, 1) To UBound(MyRange, 1)
				If MyRange(iRow, 1) = Condition then
					If Result = "" then 
						Result = Result + MyRange(iRow,2)
					else
						Result = Result + Separator + MyRange(iRow,2)
					end if
				end if	
        	next
        end if
     end If
	
ConcatIf = Result
End function
Az Xray egy objektumvizsgáló kiterjesztés. Makróíráshoz elengedhetetlen a használata, ha nem tudsz mindent fejből a kezelt objektumokról. (és lehetetlen MINDENT tudni...) A másik hasonló eszköz az MRI.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

Köszönöm, hogy ilyen gyorsan segítségem akadt! :super:

Kipróbáltam a küldött mintát, de ezt a hibát kaptam: "Hiba történt a BASIC-program futattása közben. A változó nincs definiálva."

ConcatIf-el próbálkoztam én is régebben, de beletört a bicskám. :(

Feltöltöttem egy minta ods-t, hogy mit szeretnék elérni.
A problémát nem definiáltam pontosan, elnézést érte. A lényeget a mellékelt ods mutatja.
A 5-ös csoportokban van 1-1 önálló rekord véletlenszerűen, amit meg szeretnék tartani.

Nagyon köszönöm mégegyszer előre is, nagyon sokat segítene!
Csatolmányok
gyumolcslista2.ods
(11.32 KiB) Letöltve 183 alkalommal.
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

Közben megnéztem a kapott makrót.
Ezt dobja:

Kód: Egész kijelölése

REM  *****  BASIC  *****
Option Explicit

Function ConcatIf(Condition as string, MyRange as Array, Separator as string)
 Dim Result as string
 Dim iRow as Integer
 
 
	LoadXray
	'Xray MyRange
	Result = ""
	if NOT IsArray(MyRange) Then
      Result = "Hibás átadott tartomány"
    else
    	if UBound(MyRange, 2) <> 2 then
    		Result = "Nem kétoszlopos az átadott tartomány"
		else
			for iRow = LBound(MyRange, 1) To UBound(MyRange, 1)
				If MyRange(iRow, 1) = Condition then
					If Result = "" then 
						Result = Result + MyRange(iRow,2)
					else
						Result = Result + Separator + MyRange(iRow,2)
					end if
				end if	
        	next
        end if
     end If
	
ConcatIf = Result
End function]
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Töröld, vagy rem-eld ki az Xray-ra vonatkozó sorokat (a betöltést és a vizsgálatot):

LoadXray
'Xray MyRange

mert nálad - gondolom - még nincs feltelepítve ez a nagyon hasznos eszköz, így hiába próbálom meg betölteni és használni. (Benne felejtettem a kódban.) Ráadásul a LoadXray is egy saját szubrutin neve, ami nem a mellékelt fájlban van benne, hanem nálam a Saját makrók Standard könyvtárában...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Az új mintádban nincsenek elválasztó karakterek a kigyűjtött neveknél, pedig vannak több szóból álló nevű fajták. Ez így nem zavaró?
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Tábla1: névvel rendelkező tartomány (sárgával jelölve: ezt bátran bővítheted a táblán BELÜLI sor beszúrásával)
Navigátor: Range names/Tartománynév
Ekkor nem kell folyton átírnod a másik lap képleteiben a tartomány hivatkozás koordinátáit, ha bővíted a tartományt, mert mindig a tartomány neve fog benne szerepelni...
gyumolcslista2_KT.ods
(17.26 KiB) Letöltve 199 alkalommal.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

Felraktam az Xray-r is és az MRI-t is.
Kivettem amit ki kell és működik!, de ....
Mellékelek egy újabb ods-t, most nevekkel. Az ötös csoportok véletlenül jönnek, nincs benne rendszer. A sorszám viszont folyamatosan emelkedik, csak ahol öt név van, ott ötször van sorszám. Én egy sorszámhoz szeretném az embereket rakni. Valmikor 10-30 sor után jön egy-egy ötös csoport, amikor mindenkinek ugyanaz az a száma. :crazy:
Csatolmányok
neveklista.ods
(11.97 KiB) Letöltve 180 alkalommal.
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Az utóbbi fájloddal pont ugyanúgy működik a makró.

Ha bővül a számsor, csak húzd lentebb az utolsó sort a kigyűjtött tartományban.

Vagy te a számok kigyűjtését is automatizálni akarod?
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

Nagyon köszönöm ezt is, de még mindig nem kerek :-|, elnézést a sok fakszniért...
A számokat is szeretném automatikusan kigyűjteni, de úgy, hogy adott számhoz csak az adott öt név kerüljön, tehát vagy 1 szám 1 név, vagy 1 szám 5 név.
Tehát nem az a cél, hogy egy adott számhoz gyűljenek a nevek korlátlanul.
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

Tehát ha egy 5-ös számcsoport után más szám jön, akkor ha a későbbiekben megint előfordul az előző szám, akkor azt külön sorba kell gyűjteni???
Ez azért nem ugyanaz a feladat!

- Egyrészt figyelni kell a következő sorban lévő szám tartalmú cellát, és ha az ugyanolyan tartalmú, mint az aktuális sorban lévő, akkor tovább kell lépni, ha nem, akkor ki kell ugrani a ciklusból.
- Másrészt akkor a két külön csoportban előforduló azonos számot meg kell valahogyan különböztetni...

De az előbbit már neked is meg kell tudnod valósítani.
Minden makrót nem fog valaki helyetted megírni.

Az utóbbit én se tudom, hogy hogyan lehetne hatékonyan megcsinálni. Lehet, hogy akkor mégse névvel rendelkező (teljesen abszolút módon megadott) tartomány kell neked, hanem dinamikusan változó kezdő koordinátájú tartomány...
Vagy valószínűleg kell egy segédoszlop és egy segédfüggvény, ami a két azonos számot/számcsoportot megkülönbözteti egymástól, és aminek az eredményét aztán a főfüggvény paramétereként használhatod.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

A számsor növekszik és nem fordul elő újra.
Egyszerűen csak valamikor adott számhoz egy ember tartozik, máskor meg véletlenszerűen öt ember tartozik ugyanahoz a számhoz és ez öt sorban van.
Őket szeretném összerántani egy cellába szóközzel vagy vesszővel.

Igyekszem a dolgot magam is kalapálni, pont emiatt is fordultam ide, hogy kapjak ötleteket. :-)
Ha van valami ötleted, akkor szívesen veszem továbbra is, és az eddigieket is nagyon köszönöm Neked!
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

A számsor növekszik és nem fordul elő újra.
Egyszerűen csak valamikor adott számhoz egy ember tartozik, máskor meg véletlenszerűen öt ember tartozik ugyanahoz a számhoz és ez öt sorban van.
Őket szeretném összerántani egy cellába szóközzel vagy vesszővel.
De hát a makróm pont ezt csinálja: Minden egyedi számhoz odarakja az összes nevet, amelyek az azonos számok mellett vannak. Vagy nálad nem így működik??
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: Cella összevonás probléma

Hozzászólás Szerző: cortech »

A feladatot megoldottad!
Az azonos elnevezések ismétlése megzavart. Átírtam számokra, így egyértelműen látszik, hogy működik.
Nagyon szépen köszönöm a segítséged!

Közben Google Docsban is lett egy másik megoldás. Ha fixen megvan, holnap felrakom ide.
Mégegyszer köszönöm szépen!!!
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

OK. Kíváncsi vagyok a másik megoldásra.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
cortech
Hozzászólások: 8
Csatlakozott: 2019. szeptember 25., szerda 22:37

Re: [Megoldva] Cella összevonás probléma

Hozzászólás Szerző: cortech »

A Google Docs megoldást alkalmaztam végül.

A tiéd "csak" összerántotta a mezőket, de nem csinálta az ötös ismétlődéseknél az összerántást.
A Google Docsban két oszlopban ment a dolog.

Első oszlopban: sorszámok
Második oszlop: nevek
Harmadik oszlop képlet: =JOIN(", ";QUERY(A:B;"select B where A=" & A:A;FALSE))
Negyedik oszlop képlet: =ARRAYFORMULA(UNIQUE(A:A&", "&C:C))

Ez szépen ahol kellett összerántotta az 5-ös ismétlődéseket, de előtte egy cellába rakott mindent.

Mégegyszer k ö sz ö n ö m a segítséged! :super:
LibreOffice 6.0.7.3 az Ubuntu 18.04 LTS-en
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: [Megoldva] Cella összevonás probléma

Hozzászólás Szerző: Zizi64 »

A tiéd "csak" összerántotta a mezőket, de nem csinálta az ötös ismétlődéseknél az összerántást.
Akkor ezek szerint mégsem értettem meg pontosan, hogy mire volt szükséged... (és most se értem).

Tudnál egy linket csinálni egy minta-Gsheet fájlhoz és az megosztani itt (vagy privát üzenetként)?
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Válasz küldése