Ma két kollégám is megdicsérte a blogot. 🙂 Tegnap pedig Gábor unokatestvére írta, hogy “Rohadt jó”. 🙂 Örülök nagyon! S mivel megfogadtam, hogy ha egy nap ketten kérdezik ugyanazt, akkor arról posztot írok, így most igazán lelkesen teszem ezt – ma ugyanis egy órán belül kétszer is hívtak az alábbi miatt.
A probléma, ami felmerült, gyakran előfordul a munkahelyen: látszólag ok nélkül megnő a fájl mérete. Ez együtt jár azzal, hogy “elromlik” a görgetősáv: egy picit mozdítasz rajta, és máris több tízezer sort ugrik le vagy jobbra. Úgy is meg szokták fogalmazni: túl gyors a görgetősáv.
Hogy jobban értsük a problémát, tudni kell, hogyan működik a görgetősáv: minden Excel munkalap (2007 és későbbi verziók) több, mint egymillió sort és 16 384 oszlopot tartalmaz. A görgetősáv szerencsére “intelligens” és csak a munkalap használt részét mozgatja. Normális esetben tehát, ha a függőleges görgetősávot lehúzod a legalsó pontjáig, akkor nagyjából a munkalapon levő utolsó adat sornál kell megállnia. Ugyanígy kell ennek lennie a vízszintes görgetősávval is: az utolsó adat oszlopnál áll meg. Ezt a “használt részt” hívjuk Used Range-nek.
Próbáld ki: írj be valamit a munkalap legutolsó cellájába (XFD1048576) és nézd meg, mi történik a görgetősávval! (Könnyen megtaláljuk az utolsó cellát így: Ctrl+<Jobbra nyíl>-lal jobbra navigálunk a teli/üres szakszokon, majd Ctrl+<Le nyíl>-lal ugyanez lefelé. Ezek egyébként is nagyon praktikus navigációs funkciók. 🙂 )
Persze az, hogy a munkalap utolsó cellájában van adat, még nem ok a fájl méretének növekedésére. Esetünkben a probléma az, hogy az Excel úgy érzékeli, a munkalapon minden cellában van valami… nem látjuk, hogy mi, de mégis ott van. Ne foglalkozzunk most azzal, hogy éppen mi ez a valami, és hogyan került oda (talán majd egyszer erről is írok). Most a megoldásra fókuszáljunk: el kell ezt a valamit tüntetni, ki kell törölni.
Amit én javasolni szoktam:
1. Keresd meg az utolsó sort, ahol még értékes adat van a munkalapon.
2. Jelöld ki az összes ez alatt levő sort. (Legyegyszerűbben: Shift+Space-el kijelöljük a teljes sort, majt Ctrl+Shift+<Le nyíl>-lal lemegyünk a munkalap aljáig.)
3. Töröld ki ezeket a sorokat – teljes sorokat törölj, nem elég a delete gomb! A menüben: Kezdőlap / Cellák csoport / Törlés (az alsó nyilat nyomd meg!) / Sorok törlése munkalapról. (Angol Excelben: Home / Cells / Delete / Delete Sheet rows) (Vagy egyszerűbben, egérrel: <Jobb gomb> / Törlés)
4. Csináld meg ugyanezt az oszlopokra is. (Egyszerű kijelölés: Ctrl+Space-el kijelöljük a teljes oszlopot, majd Ctrl+Shift+<Jobbra nyíl>-lal elmegyünk az utolsó oszlopig.)
Ezután mentsd el a fájlt, csukd be és nyisd ki újra. Ezzel – tapasztalatom szerint – az esetek többségében megoldódik a probléma.
Ma azonban láttam egy kivételt: egy kedves kolléganőm fájlja nem javult meg a fentiek elvégzése után. Az alternatív megoldás az, hogy beszúrsz egy új, üres munkalapot, és átmásolod rá az elromlott munkalapon levő hasznos tartalmat. NAGYON fontos, hogy csak azt a részt jelöld ki, ahol adat, információ van! Semmiképpen NE használd a teljes munkalap-tartalom, teljes oszlop vagy sor kijelölést! (Hiszen akkor a szemét is átmenne…)
Kérlek, írjátok meg, hogy nálatok előfordult-e hasonló probléma, s hogy sikerült-e megoldani ezzel az eljárással!
4 comments
Skip to comment form
Kedves Kris!
Nagyon tetszik a munkásságod, bár én kb. ezer éve Excel helyett a LibreOffice Calc táblázatkezelőjét használom. (szimpatikus hogy szabadon felhasználható és az ingyenessége, és hogy szinte mindenben kompatibilis a Microsoft Office-szal – ez itt a reklám helye.) 🙂
Már régen gondoltam rá, hogy a posztjaidhoz mindig “idetrollkodok”, és megírom, hogy a Calcban a tipped mennyire vált be, de eddig még sajna nem volt érkezésem rá, de egyszer talán majd pótolom. Szerintem nem bánnád. 🙂
Ezt azonban én is kipróbáltam, mert nagyon rossz emlékem volt egyszer az Excellel: úgy megnőtt a memóriaigénye, hogy a gépem nem is bírta megnyitni. Na jó, amit akkor csináltam, az tényleg extrém volt, és talán nem is a legjobb programot választottam a feladathoz.
Na de hogy a tárgyra térjek, ki akartam próbálni a javaslatodat, de előtte összehasonlítottam, hogy egy kis írásnál és ugyanannál – ha a jobb alsó sarkában lévő cellájába is írok, milyen fájlterjedelem különbség jön ki.
Eredmény (LO Verzió: 4.2.7.2 esetén):
Alapesetben (pár cella kitöltésénél) 14,6 kB (14.629 bájt)
jobb alsó cella (AMJ1048576) 15,0 kB (14.985 bájt)
Szerintem ez nem olyan vészes, és lehet, hogy a dolog a másodszori bezáráskor egyéb háttérinfók miatt növekedett, amit nem is látunk.
Ezután kipróbáltam az általad javasolt módszert, mi történik a 356 bájttal, és ezt tapasztaltam:, de a törlés módszernél alig tapasztaltam csökkenést. A másolás és új dokumentum beillesztésével 14643 lett a dokumentum mérete, az eltérésnél talán közrejátszhat hogy az új dokumentum létrehozásakor a régit nem zártam be, vagy ki tudja.
Igaz, hogy Excelben “kicsit több” oszlop van, de kíváncsi vagyok, hogy egy a1-d3-ig csupán 6 cellával megtöltött táblázatban mekkora eltérés adóik a fájlterjedelemben
A pontos összehasonlításhoz az is érdekes lenne, ha csak AMJ1048576 című cellába írnátok még valamit.
A terjedelmet mindig kikapcsolt állapotban a Tulajdonságokban lestem meg.
Én is köszönöm a választ!
Sziasztok!
Bocsánat pont a lényegnél elszerkesztettem az írásomat.
szóval törlésnél alig lett kisebb a duzzasztott táblázat méreténél (mentségére legyen mondva, hogy szerintem nem nagy a különbség az eredeti és a duzzasztott között, ami lényeges pozitívum), pedig nem csak a felesleges sorokat, hanem a felesleges oszlopokat is töröltem, míg a kivágással és beillesztéssel kb. ugyanakkora lett.
Nekem tökéletesen működik a sor- és oszloptörlés, a 3,6 MB-os file-jaim hirtelen 22 kB-osra zsugorodtak:) Köszi a tippet! 🙂
Szia Laci!
Van itt egy kis félreértés: Nem attól nő nagyra a fájl mérete, hogy beírunk valamit az utolsó cellába, az csak a scrollbar kezelés bemutatása miatt kellett.
Az Excel nagyon ügyesen csak azokat a cellákat tárolja el a fájlban, amik tartalmaznak valamit, például adatot, vagy egyedi formázást. A nagy, görgethető táblázatot a csak a képernyőn látjuk, ez csak “virtuálisan” létezik.
Az Excelnek van ugye olyan szolgáltatása, hogy egész sorokat vagy oszlopokat meg lehet formázni. De ilyenkor az fájlban csak a – szintén csak ilyenkor létrehozott – oszlophoz tárolja le az információt, ha néhány cellát formázol, akkor azokat cellákban tárolja.
A méretnövekedés például olyankor szokott előfordulni, ha sok cella dizájnolás után úgy megkavarodik az Excel a formázások nyilvántartásával, hogy egyszer csak “szétrobban” az oszlop (vagy a sor), és az eredetileg a teljes oszlopra mondott formázás maradékainak tárolásához létrehozza az oszlop összes cellájának mentett verzióját. Ráadásul ugye annál nagyobb adatmenyiség lesz minden cellában, minél bonyolultabb volt az oszlopon a formázás, feltételes formázás, stb.
Ennek a méret növekedési a hibának az esélyét több dologgal lehet fokozni:
– Mindenek előtt: teljes oszlopot/sort formázunk.
– Régi bináris *.xls formátumot használunk.
– Az Excel régebbi verziójával megnyitjuk a fájt, és rámentünk.
– Open Office-al módosítjuk az Excelben készített fájlunkat.
– Gyakran használunk szűrt listákon formázást.
– Ezeket még kombináljuk is…
Igazából az a sportszerűtlen nehezítés, hogy a képernyőn egészből nem látunk semmi furcsát, csak feleslegesen a megnő a fájlunk mérete (és esetleg be is lassul ettől).
Na, ekkor kell bevetni a guillotine módszert.
Üdvözlettel,
Gábor
Adatkertész