adattípus-kezelés text fájl importálásakor
2018-06-08    Excel 2016
Az adattípus-kezelés I. című cikkben az Excel-táblázat importálásakor alkalmazott adattípus-kezelő automatizmusokat ismertettem, most pedig a formázást nem tartalmazó szövegfájl importálásakor előforduló adattípus-kezelő műveleteket mutatom be.
    A táblázatos adatkezelő programok leggyakoribb adatcsere-formátuma a formázást nem tartalmazó szövegfájl. Kiterjesztése „txt”. A táb­lá­zat­ban egy sorban álló adatok a szövegfájlban is egy sort képeznek. A szövegfájl minden sora azonos számú adatot tartalmaz, meg­ha­tá­ro­zott karakterrel szeparálva, vagy szóközökkel, valóságos oszlopokat képezve. A szövegfájl, első sorában, tartalmazhatja az osz­lop­ne­ve­ket is. A bővítmény csak az elkülönítő-karakteres állományok importálására képes, a szóközökkel oszlopokba rendezett típust nem tud­ja ke­zel­ni.
    A táblakészítést megelőző eljárás azonos a már megismerttel: a bővítmény a forrás-oszlop vizsgálata alapján megállapítja a lét­re­ho­zan­dó mező adattípusát, majd az ettől a típustól eltérő adatokat a beolvasás előtt, konvertálással, csonkolással, helyettesítéssel és sze­lek­tá­lás­sal egységesíti. Az elkészült tábla minden mezőjében már azonos adattípusú bejegyzések állnak.
    Az adattípus megállapításánál a bővítmény az oszlop első huszonöt sorát elemzi. Megkülönböztet szöveget, egész és tört számot va­la­mint dátumot. A mező adattípusa az első huszonöt sorban leggyakrabban előforduló típus lesz. Ha két adattípus egyenlő számban for­dul elő, akkor az adattípusok rangsora dönt: szám > dátum > szöveg. Az egyes sorokban hiányzó adatok az adattípus-meghatározást nem be­folyásolják. Az első huszonöt helyen adatot nem tartalmazó oszlop adattípusát a bővítmény szöveg típusúra állítja be. Ha egy osz­lop el­ső huszonöt sorában többségben számbejegyzések állnak és ezek közül akár csak egy is tört szám, akkor a mező adattípusa ti­ze­des tört szám lesz. Ha az első huszonöt sor számai mind tört rész nélküliek, akkor a bővítmény a létrehozandó mezőnek egész szám adattípust ha­tá­roz meg.
PowerPivot adattípus-meghatározás text fájl beolvasásakor
A képen egy tabulátorokkal tagolt szövegfájl, első huszonhat sorát látjuk. Az első sor tartalmazza az oszlopok neveit. Milyen adattípust ha­tá­roz meg a bővítmény a leendő mezőknek? Az oszlop1 mező adattípusa szöveg lesz, mert a karakterláncok száma nagyobb, mint a szá­mok darabszáma. A hiányzó adatok az adattípus-meghatározást nem befolyásolják. Az oszlop2-ben azonos darabszámú szám és ka­rak­ter­lánc áll, ezért az adattípusok rangsora dönt. Tehát az oszlop2 mező adattípusa egész szám lesz. Az oszlop3 első huszonöt so­ra nem tar­tal­maz adatot, ezért a belőle képzett mező adattípusa szöveg lesz. Az oszlop4 mezőnek a PowerPivot egész szám adat­tí­pust fog meg­ha­tá­roz­ni, mivel az első huszonöt szám tört rész nélküli. Az oszlop5 nyolcadik sorában egy ti­ze­des tört áll és ez az egyet­len ér­ték már ti­ze­des tört szám adattípusú mezőt fog eredményezni.
    Miután számba vettük az adattípus-meghatározás legfontosabb szabályait, vegyük sorra, milyen adattípusúnak látja a bővítmény a text fájlban álló adatokat. A PowerPivot szövegként detektálja [1] a karakterláncokat, [2] a logikai értékeket, [3] a szóközökkel ezres cso­por­tok­ba rendezett számokat, [4] a pontot és a vesszőt (ezres- és tizesedes elválasztó) egyaránt tartalmazó számokat, [5] a százalékokat, [6] a fel nem ismert pénzeket, [7] a fel nem ismert időpontokat, [8] és a fel nem ismert dátumokat. A szöveg adattípusú bejegyzések a me­ző­ben bal­ra igazítva jelennek majd meg. Lássunk néhány példát!
felismert adattípusok text fájl importálásakor PowerPivot táblába
Néhány elgondolkodtató részletet is megfigyelhetünk a képen. A bővítmény text fájlban nem ismeri fel a program magyar pénznem for­má­tu­mát (Excel 2016), sőt a vezérlőpult szerinti (Windows 10), magyar rövid- és hosszú dátum formátumát sem.
    A bővítmény egész- vagy tizedes tört számként detektálja [1] a csak számokat tartalmazó adatokat, illetve a kötőjellel (negatív előjel) kez­dő­dő számokat, [2] az egy pontot vagy egy vesszőt (tizedes elválasztó) tartalmazó számokat, [3] a normál alakú számokat és [4] a fel­is­mert pénzeket.
számok beolvasása text fájlból PowerPivot táblába
Ezen a képen is találunk érdekességet. A negyedik oszlopban látjuk, hogy a számunkra fontos, pénznem jelölőket (Ft, €, $) felismeri a Po­wer­Pi­vot, akkor is, ha közvetlenül a szám után állnak és akkor is, ha egy szóköz választja el őket a számtól. Sőt, a bővítmény még a szám előtt állva is, szóközzel vagy anélkül, felismeri őket és tizedes tört szám adattípust állít be számukra.
    A PowerPivot dátumként detektálja: [1] a felismert időpontokat és [2] a felismert dátumokat. A pozitív tizedes törteket, amelyeknek egész ré­sze kisebb huszonnégynél, törtrésze kisebb hatvannál és tizedes elválasztójuk vessző a bővítmény időpontnak tekinti, amely­ben a szám egész része az órák számát-, tört része a percek számát adja.
időpontok és dátumok beolvasása text fájlból PowerPivot táblába
A képen megfigyelhető, hogy a bővítmény egyaránt felismeri a dátum egységek magyaros (évek, hónapok, napok) és angolos (napok, hó­na­pok, évek) sorrendjét is.
    A mező adattípusának meghatározása után, mi történik azokkal az adatokkal, melyek típusa nem azonos a beállítottal? Erre a kér­dés­re ad választ a következő kép.
adattípus egységesítés text fájl importálásakor PowerPivot táblába
Vegyük sorra a kép tanulságait! Az egész szám adattípusú mezőbe a bővítmény a tört számot egészre csonkolva olvassa be, a dátumot és a szöveget nem importálja. A tizedes tört szám adattípusú mezőbe csak egész számot tudunk beolvastatni, dátumot és szöveget nem. A dá­tum adattípusú mezőbe csak dátum kerülhet. A szöveg adattípusú mezőben a másik három adattípus szövegként lesz el­he­lyez­ve.
    A tábla elkészülte után, a csak logikai értékeket tartalmazó szöveg-mezőt és a szám-mezőket átállíthatjuk igaz/hamis, illetve pénznem tí­pu­sú­ra a Kezdőlap, Formátum, Adattípus utasítással.
ismertető letöltése pdf-ben
margitfalvi.arpad@gmail.com