- 6 grudnia 2024
- Posted by: Damian
- Category: Częste pytania i problemy maturalne

W zadaniach maturalnych konieczne jest importowanie danych z plików tekstowych do programów Microsoft Access lub Excel. Poniższy tekst przedstawia krok po kroku, w jaki sposób należy przeprowadzić poprawny import danych.
Jak importować dane do Accessa?
Importowanie danych w Accessie to najważniejsza część zadania – jeśli źle pobierzemy dane, prawdopodobnie wszystkie wyniki będą złe. Dlatego przed podejściem do egzaminu maturalnego warto zapoznać się z przebiegiem procesu importu.
Standardowe importowanie danych
Opcja importowania danych znajduje się w zakładce Dane zewnętrzne na wstążce programu Microsoft Access. Po wejściu w tę zakładkę należy wybrać Nowe źródło danych / Z pliku. Na maturze dane są podane w formacie .txt, dlatego zazwyczaj wybieramy opcję plik tekstowy. Czasem jednak – np. gdy nie wiemy, jak rozwiązać dany podpunkt w Excelu, ale wiemy, jak to zrobić w Accessie – istnieje potrzeba importu danych z Excela, wtedy klikamy opcję Excel.
Poniżej przedstawiono, jak zaimportować dane na podstawie pliku gry.txt (zadanie 7 – arkusz maturalny 2023 – maj).

Po wybraniu opcji importu danych pojawi się okno, gdzie należy manualnie wpisać ścieżkę do pliku, lub kliknąć opcję Przeglądaj i wybrać plik w eksploratorze. W moim przypadku ścieżka to C:\Users\uzytkownik\Downloads\gry.txt. Po wybraniu odpowiedniego pliku należy kliknąć OK – wówczas przechodzi się do następnej części procesu importowania.

Na formatowanie, odstępy i podobne kwestie należy także uważać w przypadku programu Microsoft Excel. Gdy jednak zapamiętasz, na co zwracać uwagę w przypadku Accessa, poradzisz sobie również z Excelem.

Kolejnym etapem importu danych jest wybór rodzajów odstępów między kolumnami. W tym zadaniu odstępami są tabulatory, dlatego odpowiednia jest opcja 1 – Ograniczony. Po jej wybraniu należy kliknąć Dalej.

Kolejny etap to wybór odpowiedniego odstępu między polami i decyzja, czy pierwszy wiersz ma zawierać nazwy kolumn. Wybieramy tu Tabulator oraz opcję Pierwszy wiersz zawiera nazwy pól i przechodzimy dalej.

Następny etap to wybór typu danych w odpowiednich kolumnach. Musimy tu zweryfikować, czy Access wybrał odpowiedni typ dla każdej kolumny. Dla kolumny id_gry będzie to typ liczby całkowitej. Gdy sprawdzisz, czy opcja ta została wybrana poprawnie, przejdź dalej. Nie zmieniaj typu z długiego na krótki – to nie ma znaczenia, a przy takiej zamianie można coś zepsuć. Przykładowo dla kolumn nazwa oraz kategoria Access wybiera typ Krótki tekst, jednak gdyby wybrał inny rodzaj (np. Długi tekst), nie zmieniałbym tego.
Access z reguły dobiera dobre typy danych, jednak istnieją dwa szczególne przypadki, w których prawie zawsze się myli – są to Data i godzina (trzeba tu samemu ustawić odpowiedni format) oraz numery PESEL. W przypadku numeru PESEL Access ustawia format liczbowy, jednak nie powinien tego robić, ponieważ ten format obcina 0 na początku, a w numerach tego typu ma ono duże znaczenie. Dlatego należy tu użyć np. Krótki tekst.

Na tym etapie musisz zdecydować, czy Access ma dodać klucz podstawowy, czy też jest on już obecny w twojej tabeli. W przypadku pliku gry.txt idealnym kandydatem na id jest pole id_gry, ponieważ jest ono dla każdego pola unikatowe. W tego typu zadaniach indeks nie zawsze musi być taki oczywisty, czasem może to być np. numer PESEL.
Gdy nie wiesz, co w twojej tabeli może być kluczem podstawowym, zobacz, czy w innej tabeli nie występuje kolumna taka sama jak w tej, na której teraz pracujesz. Jeśli to pole jest unikatowe dla każdego wiersza, to jest bardzo prawdopodobne, że to właśnie twój klucz.
W zadaniach maturalnych klucz jest podany już w pliku .txt, właśnie w postaci id_[tekst] czy numeru PESEL, jednak oczywiście są od tego wyjątki. Warto zauważyć, że można zrobić tabelę bez klucza podstawowego, jednak nie jest to rekomendowane, gdyż nazwy lub inne pola mogą być takie same i bez klucza wyniki będą niepoprawne.

W ostatniej sekcji należy wybrać nazwę tabeli. Najlepiej, żeby była to po prostu nazwa pliku, z którego importujesz dane. Potem kliknij Zakończ.

To jest ostatni etap importowania, należy kliknąć Zamknij.
W tym zadaniu jest też plik oceny.txt – jego import jest bardzo podobny do pliku gry.txt, jednak warto pozwolić Accessowi dodać klucz podstawowy, ponieważ nie znajduje się on w pliku.

Teraz sam spróbuj zaimportować plik gracze.txt, również z tego zadania. Dane do importu znajdziesz tutaj.

Gdy udało Ci się już zaimportować wszystkie tabele, następnie – tak jak w każdym zadaniu opartym na bazach danych – przed przejściem do jego rozwiązywania należy utworzyć relacje. Żeby to zrobić, należy przejść do zakładki Narzędzia bazy danych i wybrać opcję Relacje.

Po prawej stronie powinien otworzyć się panel z tabelami – należy kliknąć dwa razy lewym przyciskiem myszy (LPM) na każdą z nich.
Gdyby z jakiegoś powodu panel się nie pojawił, trzeba kliknąć przycisk Dodaj tabele z zakładki Projekt relacji na wstążce.
Gdy pojawią się już bloki odpowiadające naszym tabelom, trzeba połączyć ze sobą odpowiednie pola. W tym celu należy kliknąć lewym przyciskiem myszy (LPM) na wybrane pole i przeciągnąć je do odpowiadającego mu pola w innej tabeli.

Po połączeniu pól otworzy się okienko, które poda opcje zmiany pól oraz typu relacji. Warto tu też zaznaczyć Wymuszaj więzy integralności – ta opcja sprawdzi, czy relacja została utworzona poprawnie. Gdy upewnisz się, że wszystko jest tak, jak chcesz, kliknij przycisk Utwórz.
W zadaniu poprawne relacje to połączenia kolumn:
- Gracze.id_gracza – Oceny.id_gracza,
- Gry.id_gry – Oceny.id_gry.
Powinno to wyglądać następująco:

Uwaga: żeby relacje zaczęły działać w kwerendach, należy je zapisać. W tym celu wystarczy zamknąć kartę Relacje – wówczas pojawi się komunikat z pytaniem, czy chcemy zapisać wprowadzone zmiany. Możemy też nacisnąć prawym przyciskiem myszy (PPM) na kartę Relacje i kliknąć odpowiednią opcję.
Importowanie danych – data i godzina
W Polsce zazwyczaj datę zapisujemy w postaci dzień.miesiąc.rok, jednak w różnych krajach używa się również innych formatów (np. w Stanach Zjednoczonych jest to zapis miesiąc.dzień.rok). Za międzynarodowy standard uznaje się format: rok-miesiąc-dzień. Access wspiera bardzo dużo formatów, jednak zazwyczaj wybiera on zły typ. Przykładowo w zadaniu 6 z matury z 2022 r. musimy zaimportować dane z pliku ewidencja.txt.

Zobaczmy, jakie typy danych dobierze Access.

Pozornie wszystko jest w porządku, jednak gdy zakończymy importowanie, pojawią się 2 tabele.

Już po nazwie widać, że coś jest nie tak – Access wybrał zły format daty. W takiej sytuacji należy usunąć obie tabele i zaimportować plik jeszcze raz, tym razem wybierając odpowiedni format daty i godziny.

Gdy dojdziemy do wyboru typów danych, musimy kliknąć kolumnę, której typ mamy zmienić, i wybrać odpowiedni typ (data oraz godzina). Następnie, zamiast przechodzić dalej, należy kliknąć przycisk Zaawansowane… w lewym dolnym rogu. Wyświetli się wówczas takie okno:

Tutaj po kolei patrzymy, czy opcje w sekcji Daty, godziny i liczby są odpowiednie dla naszych danych. Zobaczmy:
- Kolejność dat: DMR (Dzień Miesiąc Rok) – u nas jest rok-miesiąc-dzień, trzeba więc zmienić na RMD.
- Ogranicznik daty: “.” – w danych między liczbami dat jest “-”, więc trzeba usunąć kropkę i wpisać łącznik (“-”).
- Ogranicznik czasu: “:” – tutaj nie trzeba nic zmieniać, bo taki format jest stosowany w danych do tego zadania.
- Rok czterocyfrowy – tutaj również pole bez zmian, bo rok o tym formacie umieszczony jest w naszym pliku.
- Wiodące zera w datach – ta opcja teoretycznie powinna zostać włączona, jednak okazuje się, że Access – niezależnie od tego, czy zaznaczymy to pole, czy nie – sam wybiera odpowiedni format. Warto jednak zaznaczyć ją dla pewności (wiodące zero to takie, które dajemy przed liczbą i które nie zmienia jej wartości, przykładowo datę 22 maja 2024 możemy zapisać jako 22.05.2024 lub 22.5.2024. Chodzi tutaj o różnicę tego jednego zera).
- Symbol dziesiętny – ta opcja dotyczy zapisu milisekund. Nie pojawiają się one w tym zadaniu i prawdopodobnie nigdy nie pojawią się na maturze.
Po zmianie wszystkich opcji okno powinno prezentować się tak jak poniżej.

Teraz powinniśmy przeprowadzić podobną operację na kolumnie Wyjscie, jednak okazuje się, że gdy dla danego pliku zmienimy format daty, to zostanie on zmieniony dla wszystkich kolumn. Dalej importujemy wszystko standardowo.
Po otwarciu naszej tabeli okazuje się jednak, że zamiast dat widać tylko #####.

Czyżbyśmy niepoprawnie zaimportowali dane? Nic z tych rzeczy – po prostu nasze kolumny są za wąskie, żeby wyświetlić całą zawartość. Na przedstawionych w ten sposób danych można normalnie wykonywać operacje, jednak prezentuje się to nieszczególnie. Można jednak łatwo rozwiązać ten problem – w tym celu wystarczy rozszerzyć kolumnę, łapiąc za separator pionowy w wierszu z tytułami kolumn, po czym go przeciągnąć. Wtedy wszystko będzie normalnie się wyświetlać. CKE bardzo często daje niedomyślny dla Accessa format daty, dlatego warto nauczyć się i zapamiętać, jak poprawnie importować daty.
Importowanie danych – PESEL
Tak jak wcześniej wspomniano, Access domyślnie próbuje zaimportować numer PESEL jako liczby, jednak jest to błąd z dwóch powodów. Po pierwsze, jeśli ktoś urodził się w latach 2000-2009, wówczas liczba ta będzie się zaczynała od zera, a w konsekwencji, używając formatu liczbowego, wiodące zero zostanie ucięte. Na mieszance poprawnych i niepoprawnych numerów dużo trudniej będzie wykonywać różne operacje, ponieważ mogą one zakładać istnienie 11 cyfr. Nie możemy wtedy skorzystać z funkcji Left() oraz Right(). Nie ma już gwarancji, że np. pierwsza cyfra odpowiada części roku, a funkcja Left(pesel,11) może zwrócić Null. Wtedy nasze obliczenia będą zwracały niepoprawne wyniki.
Drugim powodem, dla którego nie warto importować numeru PESEL jako liczby, jest to, że wartość liczbowa numeru często wychodzi poza dozwolony zakres formatu liczbowego w Accessie. Wtedy tworzą się dwie tabele, tak samo jak w przypadku złego formatu daty – jedna z pustym polem i druga zawierająca błędy importu. Dotyczy to wszystkich bardzo dużych liczb.
Warto przećwiczyć importowanie numerów PESEL, ponieważ często pojawiają się one na egzaminach.
Inne przypadki importowania liczb jako tekstu
Liczba, którą importujemy, wcale nie musi być duża, wystarczy, że są w niej zakodowane jakieś informacje. Spójrzmy na zadanie 20 ze zbioru CKE “Przykładowe zadania z rozwiązaniami”. Chodzi tutaj konkretnie o plik noclegi.txt.

Access spróbuje zaimportować Uslugi z tabeli Noclegi jako liczbę, jednak będzie to błąd z powodu możliwości wystąpienia wiodących zer. Teoretycznie można dzielić liczbę przez odpowiednią potęgę 10, zaokrąglać w dół i brać modulo 10, jednak jest to czasochłonne. Dodatkowo bardzo łatwo przy tym o pomyłkę. Poza tym liczby, które coś kodują, często wychodzą poza zakres formatu liczbowego, dlatego trzeba je zaimportować jako tekst.
Niekiedy CKE samo sprawia, że np. numery PESEL są importowane jako tekst – po prostu przed każdym numerem dodaje np. literę “p”. Nie zawsze jednak to robi, więc trzeba wiedzieć, jak radzić sobie z tym problemem.
Jak importować dane do Excela?
Microsoft Excel jest istotny, jeśli chodzi o zadania maturalne. W jego przypadku import danych jest uproszczony ze względu na brak konieczności stosowania relacji czy klucza podstawowego. Głównym problemem okazuje się więc dobór odpowiednich ograniczników rozdzielających pola, a także typu danych. Działa to prawie identycznie w ramach Accessa i Excela.
Sprawdzimy działanie importowania danych w programie Microsoft Excel na bazie pliku owoce.txt (zadanie 6 – arkusz maturalny 2023 – maj).
Przejdź do opcji dostępnej na wstążce programu Pobierz dane / Starsze kreatory / Z pliku tekstowego starsza wersja.

Jeśli nie widzisz u siebie opcji Starsze kreatory, to być może twoja wersja Excela jest tak stara, że jest to domyślna opcja importu plików txt. Wtedy wystarczy wybrać Z pliku / Z pliku tekstowego. Jeżeli natomiast posiadasz w miarę nową wersję Excela, trzeba tę możliwość włączyć w opcjach. Na wstążce wybieramy wówczas Plik / Więcej / Opcje.

W Opcjach w sekcji Dane zaznacz pole Z pliku tekstowego (starsza wersja) i kliknij OK.

Teraz przy imporcie, opcja Starsze kreatory powinna być już dostępna.
Gdy już uda ci się wybrać odpowiednią opcję, otworzy się okno, w którym musisz wybrać właściwy plik i kliknąć Otwórz.

Na początek trzeba wybrać odpowiedni typ separatora, który dzieli kolumny w pliku. W przypadku tego zadania jest to tabulator, więc odpowiednia jest tu pierwsza opcja: Rozdzielany. Jeśli twój plik posiada niestandardowe kodowanie, należy to zmienić w sekcji Pochodzenie pliku. Tego, jakie kodowanie ma twój plik, możesz dowiedzieć się, np. otwierając go w notatniku.

Następnie należy dobrać odpowiedni ogranicznik między poszczególnymi kolumnami w dokumencie. Excel zazwyczaj sam dobrze określa, jaki ogranicznik powinien być użyty, jednak warto zwrócić na to uwagę.
Podobnie jest w kwestii samych wartości w polach: jeśli są podane nazwy w języku polskim, ale nie działają prawidłowo, to najpewniej jest to kwestia złego ustawienia w polu Pochodzenie pliku, który należy odpowiednio dopasować.
Teraz trzeba kliknąć przycisk Dalej.
Na koniec wybieramy typ danych dla każdej kolumny. Generalnie zawsze wybieramy typ ogólny (i tak można go potem zmienić). Jednak tak samo jak w Accessie: gdy importujemy numer PESEL czy inny kod, który może zaczynać się zerem, musimy wybrać dla takiej kolumny typ Tekst. Następnie klikamy Zakończ.

W tym momencie powinno pokazać się okno, które ma opcję zmiany lokalizacji importowanych danych. Jeśli nie odpowiada ci domyślna lokalizacja, tutaj możesz to zmienić.

Jest to szczególnie istotne, jeśli chodzi o numery PESEL, które należy wstawić jako typ Tekst, a nie liczbę (w razie gdyby Excel źle to odczytał). Okazuje się to ważne w przypadku numerów, które zaczynają się od zera. Ten znak zniknie, jeśli PESEL zostanie wstawiony jako liczba dziesiętna, a nie tekst. Działa to więc podobnie jak w programie Microsoft Access.

Gdy już wybrano odpowiedni typ danych lub wprowadzono inne modyfikacje, należy tylko kliknąć przycisk Zamknij i załaduj, dostępny na wstążce w zakładce Narzędzia główne.
Teraz w arkuszu kalkulacyjnym pojawi się tabela z pobranymi danymi. Import danych do Excela nie jest więc trudny.

Teraz sam spróbuj zaimportować plik owoce.txt. Dane do importu znajdziesz tutaj.
Wpisy, które mogą Cię zainteresować: