Az adatok importálása és előkészítése
3. Importálás pdf-állományból
Ritkán, de előfordul az is, hogy a forrást pdf formátumban adják meg.
Példa4. példa: Nemes 2009-2010 3. forduló, 4/C (Holdak)
Ez a feladat jórészt csak az importálásról, a táblázat elkészítéséről szól, mindenféle számolás nélkül. A feladat nem egyszerű, sok tervezést és munkát igényel.
A pdf már maga tartalmazza a holdakat jellemző adatok kívánt elrendezését, de ezt egyrészt nem egyszerű átvinni táblázatkezelőbe, másrészt a pdf is rengeteg hibát tartalmaz, melyre a feladat szövege külön fel is hívja a figyelmet:
- "több helyen nem csak a sorok végén, de a sorok belsejében is vannak kitöltetlen ("üres") cellák,
- sajnos, a forrás nem mindenütt következetes a tizedesjel használatában,
- egyes cellákban egy kis □-et látsz a számok között; ez egy normálalakban megadott számra utal (például a Hold sorának utolsó előtti cellájában ez az érték valójában 7,35·1025)"
Nézzünk egy lehetséges megoldást!
- Másoljuk a fejléc alatti, holdakról szóló részt vágólapra, és illesszük be szövegszerkesztőbe!
- Vizsgáljuk meg a szöveget, vessük össze a mintával!
- Látjuk, hogy az első oszlopban csak ritkán van adat, ezért jobb, ha ezzel külön nem is foglalkozunk, hiszen kézzel is gyorsan be tudjuk majd írni a megfelelő helyre. A legjobb, ha ki is töröljük őket, hogy ne okozzon kárt a későbbi munkánkban.
- Sajnos előfordulhat, hogy a táblázat pár sora itt két külön sorba kerül, ezeket legjobb, ha "kézzel" ellenőrizzük és javítjuk.
Észrevehető, hogy az oszlophatárolók akár a szóközök is lehetnek, kivéve pár adatot a holdak vagy a felfedezők nevét tartalmazó oszlopokból. A terv az, hogy előbb lecserélünk minden szóközt tabulátorjelre mint oszlophatárolóra, majd amelyiket kell, visszacseréljük szóközre.
- Cseréljük le az összes szóközt tabulátorjelre!
- Egy hold neve akkor áll két szóból, ha a neve után zárójelben ott van az azonosítója is. Tehát az olyan tabulátorjeleket, melyeket egy nyitó zárójel követ, nem kellett volna cserélni, javítsuk! Keresett szöveg "^t(", csere erre: "·(". A "Helene" holdnál ez nem elég, ezt javítsuk kézzel, vagy válasszunk más módszert.
- Néhány holdnak több felfedezője is volt, az ő nevük vesszővel van elválasztva. Cseréljük a ",^t" karaktersorozatokat ",·"-ra, az újabb javítás érdekében. (Egy kis segítség: a "vessző + tabulátorjelet" cseréljük "vessző + szóközre"!)
- Gyakoriak az "et al."-ra végződő felfedezők, ezeket is egy oszlopban kell hagyni: szintén behelyettesítéssel keressük, hogy "^tet^tal." és cseréljük arra, hogy "·et al.". Ezzel korrigáltuk a szóközök lecseréléséből adódó hibáinkat.
- Már nincs más hátra az oszlopok kialakításából, mint hogy megkeressük azt a pár sort, amelynél a felfedezéshez nincs sorszám, itt tegyünk be egy-egy tabulátorjelet, hogy ne csússzon el a sor.
- Most jön az adatok javítása, hiszen a feladat külön felhívta a figyelmet a hibákra. Az üres cellákkal most nem muszáj törődni, ezt majd egyszerűbb táblázatos formában látva javítani. Javítsuk inkább a tizedesponttal írt adatokat tizedesvesszősre, hogy az Excel számként ismerje fel őket! Ügyelni kell az egyéb pont karakterekre, ezért érdemes egyesével haladni, vagy akár ki lehet próbálni más stratégiát is, mint például visszacserélni pontra azokat, amiket kell.
A normálalakban feltűntetett adatok most ilyen formában vannak: "7,35¬→1025", vagyis a "□"-ből feltételes elválasztójel lett a beillesztés során.
MegjegyzésNem kizárt, hogy itt is függ a használt szoftverektől, mi kerül a vágólapra. A továbbiakban ügyelj erre, és ha szükséges, bíráld felül a leírtakat!
Tudjuk, hogy a normálalak csak egy cellaformázási beállítás lesz, tehát az lesz a helyes eljárás, ha kiszámoljuk a megfelelő értékét, és ezt tároljuk el, majd később a kívánt alakúra formázzuk. Az értékét képlettel fogjuk kiszámolni, valahogy így: 7,35·1025.
- Bontsuk tehát a karaktersorozatot három részre (7,35; 10; 25)! Ezek majd külön oszlopokba kerülnek, hogy ki tudjuk számolni a hozzájuk tartozó értéket. Ehhez a feltételes kötőjelek törlendők, de akkor már egyúttal a "10" mögé is betehetünk egy tabulátorjelet. A keresett szöveg tehát: "^-^t10" (hiszen a feltételes elválasztójel kódja "^-"), csere erre: "^t10^t".
- Menthetjük a forrást, természetesen txt-be.
- Importáljuk az adatokat a forrásból, a fejléc alá, a B oszlopba! Az A oszlop adatait pótoljuk kézzel, és ahol kell, alakítsuk ki az üres cellákat, hogy minden adat a saját oszlopába kerüljön!
- Számoljuk ki a normálalakban írandó adatok értékét, ezt képletmásolással nyugodtan végig is "húzhatjuk", nem törődve a #SZÁM! hibaüzenettel. Értékmásolással illesszük a megfelelő oszlopba, majd töröljük ki azt a két oszlopot, amivel számoltunk! Ügyeljünk az "Encke résben" adat esetleges felülírására! Ezt követően az Excel keresés és csere funkciójával könnyen megszabadulhatunk a #SZÁM! hibaüzenetektől.
Az adatok importálása, előkészítése itt véget ér, persze a feladat további részét képezi a megfelelő formázások beállítása. Erre a Cellaformázás fejezet Formátumkódok című alfejezetében térek ki.
Vissza a tartalomjegyzékhez