Kezdőlap › Fórumok › Excel programozás › Több táblázat összemásolása
- This topic has 10 hozzászólás, 2 résztvevő, and was last updated 8 years, 1 month telt el by serigala.
-
SzerzőBejegyzés
-
2016-09-09-15:18 #2992
Szia!
Újra segítséget kérnék!
Egy munkalapon van több táblázat (a táblázatok száma naponta változik). Az oszlopok elnevezése különböző(több egymás alatti cellát is elfoglalnak), de a sorok nevei ismétlődnek és ugyanolyan sorrendben követik egymást. Egymás mellé szeretném másolni őket, hogy egy nagy táblázatom legyen és a sorok végén tudjak egy összesen értéket kapni.
Előre is Köszönöm a segítségedet!Attachments:
You must be logged in to view attached files.2016-09-09-23:17 #2994Szia!
Ha az egymás mellé másolt adatok, és a végén a képletek is kellenek, akkor ezt makróval lehet megcsinálni. Feltéve, hogy mindig ugyanott vannak a forrástáblák, vagy könnyen megtalálhatók.
Ha csak az eredmény kell, ami tartalmazzon az azonos pozícióban lévő cellák összegét, akkor egyszerű adatösszesítésről (konszolidáció) van szó, amihez az Excelnek van beépített eszköze.
Kipróbáltam az általad küldött mintán, teljesen rendben van. (Adatok lap -> Összesítés parancs)Azt írja, hogy minden forrásnak és az eredménynek is külön munkalapon kel lennie, de ez nem igaz.
Kb itt a munkamenet:
1. A forrás táblákat tartalmazó lapon kijelölsz egy cellát, ahová az összesített adatokat szeretnéd majd tenni (bal felső sarok lesz itt)
2. Adatok->Összesítés (Egy párbeszéd jön)
3. A tetején megadod, hogy melyik függvénnyel
4. A Hivatkozásnál pedig kijelölsz egy forrást úgy, hogy a fejléc nincs benne (mert az változik), majd megnyomod a Hozzáadás gombot
5. Az előbbit megismétled annyiszor, ahány forrásod van
6. Végül megadod, h a feliratokat vegye a bal oszlopból (ezek mindenhol ugyanazok)
7. EnnyiAz eredmények értékként kerülnek a helyükre, de lehet csatolást kérni, így ha a források változnának, az eredmény automatikusan jön.
Ez változó számú forrásnál nem annyira életszerű.Imre
- A hozzászólás módosításra került: 8 years, 2 months telt el-horvimi.
2016-09-10-08:33 #2996Köszönöm az Excel megoldást, de nekem makróra lenne szükségem.
A cellák pozíciója nem fix. Az adathoz tartozó infók több sort is elfoglalhatnak és így a sorok csúsznak.
Az én elgondolásom az volt, hogy megkerestem a második Pécset, Currentregiont használtam, újra kerestem Pécset, (de már az elsőt), utolsó oszlopot kerestem, majd másoltam és ezt Do…Loop-ba (amíg találat van Pécsre) foglaltam. Nekem vagy egymásra másolta magát, vagy elment végtelen ciklusba.
Úgy gondolom a fenti elvet kellene megvalósítani (lehet hogy van jobb módszer is a megvalósitásra…), de nem sikerült eddig, hétfőn újra próbálom.
István- A hozzászólás módosításra került: 8 years, 2 months telt el-serigala.
2016-09-14-07:44 #3000Szia!
Makrós próbálkozásaim nem vezettek eredményre és ha tudnál segíteni a megoldásban, az nagyon jól jönne.
Köszi
István2016-09-14-08:21 #3001Leprogramozni nem lesz időm.
Ha feltöltesz egy konkrét mintát, és ugyanabban a fájlban egy másik lapon kézzel egymás mögé másolva, hogy mit szeretnél látni megoldásnak, akkor talán jobban megértem a problémát, és tudok segíteni az algoritmusban.
Az összemásolt verzióban esetleg színezhetnéd a különböző forrásból érkezett darabokat.
imre
2016-09-14-09:29 #3002Egy másik fájlból kimásolva, szerkesztve kapom a csatolt táblázatot.(az eredeti adatmennyiséghez képest erősen le van butítva, de a táblázat szerkezete megmaradt)
A füleken jelöltem honnan hová szeretnék eljutni.Attachments:
You must be logged in to view attached files.2016-09-14-23:47 #3004Szia!
Ritkán csinálok ilyet, de volt kedvem hozzá.
Mellékesen szörnyű a formátum, részvétem…Szóval azt találtam ki, hogy végigkeresem az első oszlopot a „Totál” szavakra.
Az első kivételével minden „Totál-t” tartalmazó cella mellett kezdődik az átmásolandó tartomány, és a vége 12 sorral feljebb, annak a sornak a végén van.
Tehát ha „item” nevű range változóban megvan, hogy hol találta a „Totál” szót, akkor a másolandó tartomány így fogható meg:Set current_range = Range(Item.Offset(0, 1), Item.Offset(-12, 1).End(xlToRight))
Ezt másolni kell a tetején lévő folymatosan bővülő fejléc vége utánhoz.
Kb ennyi az algoritmus.
Az összeillesztésekhez tettem egy függőleges vonalat. ha nem kell, kiveheted.
Feltöltöttem
Ha OK, jössz egy sörrel.
Imre
Attachments:
You must be logged in to view attached files.2016-09-15-12:24 #3010Jogosan tartozom neked o:)
Tökéletes a program.
Én ezt nem tudtam volna, mostani ismereteim alapján megoldani.Nagyon Köszönöm
István2016-10-13-11:34 #3073Szia!
Eddig tökéletesen működött a program, de ma megakadt a futása.
A probléma az lehet, hogy az ismétlődő ciklusban az utolsó másolandó rész most csak egy oszlopból áll.
(korábban ilyen nem volt, mindig több oszlopból állt az utolsó rész is.)
A csatolt fájlban ez a „TERMÉK68” oszlopa.
Ha rá tudnál nézni és megoldani ezt a problémát az igazán jó lenne.Segítséged előre is köszönöm!
IstvánAttachments:
You must be logged in to view attached files.2016-10-15-14:52 #3075Szia!
Itt a javítás. Azt vizsgálja, hogy a „Total” szó mellett kettővel jobbra lévő cella üres-e.
Ha igen, akkor csak egy oszlop van, különben a szokásos.
Kipróbáltam, megcsinálta.Imre
Attachments:
You must be logged in to view attached files.2016-10-18-07:33 #3080Köszönöm, nálam is szépen lefutott.
Szép napot Mindenkinek! -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.