Dane z różnych źródeł — import, sortowanie, filtrowanie

🎯 Po co Ci to?

Prawdziwe dane rzadko rodzą się w Twoim arkuszu. Przychodzą z zewnątrz: eksport z dziennika elektronicznego, wyniki pomiarów z czujnika, tabela ze strony internetowej, plik z banku. Umiejętność wciągnięcia ich do arkusza i zaprowadzenia porządku — posortowania i przefiltrowania wg kilku kryteriów — to różnica między „mam plik z danymi" a „wiem, co w nich jest". Przy okazji dwaj bohaterowie działu 6 (sortowanie!) zejdą z desek teorii na parkiet praktyki — zobaczysz ich jako przyciski i zrozumiesz, co te przyciski naprawdę robią.

✅ Czego się nauczysz

Po tej jednostce potrafisz:

  • zaimportować dane tekstowe (CSV) i rozpoznać typowe problemy importu;
  • sortować dane wg jednego i wielu kluczy — rozumiejąc, co robi arkusz pod spodem;
  • filtrować wg kilku kryteriów naraz i czytać wynik jako koniunkcję warunków.

🔁 Przypomnij sobie

Z 6.3–6.7: sortowanie i stabilność; z 9.3: porządek leksykograficzny i sortowanie wielokryterialne; z 2.5: tekst, kodowanie znaków (polskie ogonki!).

📘 Wyjaśnienie

Import: plik CSV. Najpopularniejszy format wymiany danych tabelarycznych to CSV (comma-separated values — wartości rozdzielone przecinkami): zwykły plik tekstowy, wiersz = rekord, separator rozdziela pola:

nazwisko;klasa;punkty
Kowalska;2a;78
Nowak;2b;91

Arkusz otwiera CSV i tnie go na kolumny — ale import to pole minowe, które warto znać: (1) separator — po polsku często średnik, nie przecinek (bo przecinek jest u nas dziesiętny!); wskaż zły — cała tabela wyląduje w jednej kolumnie. (2) Kodowanie znaków (2.5 w praktyce!) — plik w innym kodowaniu zrobi z „Łukasza" krzaczki; wybierz UTF-8. (3) Nadgorliwe typy (11.1): numer „012" straci zero wiodące jako liczba, a „2.10" zostanie datą. Dobre arkusze pytają o te trzy rzeczy przy imporcie — teraz wiesz, co odpowiadać.

Sortowanie. Zaznaczasz tabelę, wybierasz klucz (kolumnę) i kierunek — a pod przyciskiem pracuje algorytm z działu 6 (biblioteczna hybryda z 6.7/3!). Ważniejsze jest to, czego przycisk nie zrobi za Ciebie:

  • Sortuj całe wiersze, nie kolumnę! Posortowanie samej kolumny punktów oderwie punkty od nazwisk — dane się „przetasują" i tabela kłamie bezpowrotnie (chyba że masz cofnij). Zaznaczaj całą tabelę; przyzwoity arkusz sam ostrzega.
  • Wiele kluczy: „sortuj wg klasy, a w klasie wg punktów malejąco" — to porządek leksykograficzny z 9.3, przyciskiem: klucz 1 klasa, klucz 2 punkty. Kolejność kluczy = ważność kryteriów.

Filtrowanie. Filtr chowa wiersze niespełniające warunków, pokazując wycinek danych: „tylko klasa 2a", „punkty ≥ 50 i klasa 2b". Kilka kryteriów naraz działa jak koniunkcja (and z 3.2) — wiersz musi przejść wszystkie. Kluczowa własność: filtr nie usuwa danych, tylko je przesłania — pod spodem tabela jest cała (co bywa źródłem niespodzianek: SUMA policzona zwykłą funkcją zsumuje też ukryte wiersze! — do sumowania „tego, co widać" służą osobne funkcje agregujące częściowo, np. SUMY.CZĘŚCIOWE).

💭 Pomyśl: Chcesz listę uczniów: najpierw wszyscy z 2a posortowani malejąco po punktach, potem 2b tak samo. Rozpisz to na klucze sortowania. A jak osiągnąć to samo dwoma sortowaniami pojedynczymi — i co musi umieć algorytm arkusza, żeby ta druga droga działała?

Sprawdź odpowiedź

Jedno sortowanie, dwa klucze: 1) klasa rosnąco, 2) punkty malejąco. Alternatywa: najpierw sortuj po punktach malejąco, POTEM po klasie rosnąco — zadziała, jeśli sortowanie jest stabilne (6.4/3: równe klucze zachowują poprzednią kolejność — więc wewnątrz klasy przetrwa porządek punktowy z pierwszego sortowania). Kolejność odwrotna do ważności! Arkusze zwykle sortują stabilnie, ale gwarancji szukaj w dokumentacji — a na egzaminie bezpieczniej użyć jawnie dwóch kluczy. Teoria stabilności z 6.4 właśnie zapłaciła rachunek w praktyce.

⚠️ Uwaga, pułapka

Po imporcie liczby bywają tekstami (kropka/przecinek, spacje, niewidoczne znaki) — a wtedy sortowanie „liczb" daje porządek leksykograficzny tekstów: 100 przed 20, bo „1" < „2" znak po znaku (3.4!). Objawy: dziwna kolejność po sortowaniu, SUMA równa 0, liczby wyrównane do lewej. Leczenie: przekonwertuj kolumnę na liczby (mnożenie przez 1, funkcje konwersji, poprawny import). „100 < 20" na wydruku to niemal zawsze tekst udający liczbę — diagnoza w pięć sekund dla kogoś, kto zna dział 3.4; godziny zgadywania dla kogoś, kto nie zna.

🌍 Powiązania

CSV spotkasz wszędzie: eksporty z banków, dzienników, sklepów internetowych, dane publiczne urzędów (GUS, dane.gov.pl — prawdziwe, darmowe zbiory do ćwiczeń!), logi pomiarów. Ocena wiarygodności źródła danych — kto opublikował, kiedy, czy metodologia jest opisana — to część pracy z danymi (i wymaganie podstawy o ocenie informacji); do krytycznej oceny treści wrócimy szeroko w dziale 16. A porządki w danych to zawodowa codzienność: analitycy mawiają, że 80% pracy z danymi to ich czyszczenie — dzisiejsza jednostka to fundament tej umiejętności.

🛠️ Teraz Ty

Wejdź na portal danych publicznych (np. dane.gov.pl), znajdź niewielki zbiór CSV (frekwencja, pogoda, sport) i zaimportuj go do arkusza — świadomie wybierając separator i kodowanie. Posortuj wg dwóch kluczy; załóż filtr i odpowiedz na jedno pytanie w stylu „ile rekordów spełnia X i Y". Bez komputera: zapisz, które problemy importu napotkałeś i jak je rozpoznałeś.

📐 Definicje tej lekcji

  • CSV — tekstowy format tabel: wiersz = rekord, pola rozdzielone separatorem (u nas często średnik); przy imporcie wybierz separator i kodowanie.
  • Sortowanie wg kluczy — porządek leksykograficzny po kolejnych kolumnach; sortuj całe wiersze.
  • Filtr — przesłania (nie usuwa!) wiersze niespełniające koniunkcji kryteriów.

📌 Najważniejsze w pigułce

  • Import = trzy decyzje: separator, kodowanie, typy — każda zła psuje dane po cichu.
  • Sortuj całe wiersze wg kluczy w kolejności ważności; stabilność umożliwia sortowania etapami.
  • Filtr pokazuje wycinek, dane zostają; zwykła SUMA sumuje też ukryte.

🎒 Zadania

  1. Plik CSV z ocenami otwiera się jako jedna kolumna pełna średników. Co poszło nie tak i co zmienisz przy ponownym imporcie?
Wskazówka i odpowiedź

Arkusz tnie po przecinkach (domyślny separator), a plik używa średników — więc nic nie pociął. Przy imporcie wskaż średnik jako separator. Gdyby z kolei litery „ą/ł" wyszły jako krzaczki — zmień kodowanie na UTF-8. Dwie najczęstsze wpadki importu, dwa przełączniki w oknie importu — warto je znać z imienia.

  1. Tabela zawodników: kolumny nazwisko, kategoria, czas. Chcesz ranking: kategorie alfabetycznie, w kategorii najszybsi pierwsi. Podaj klucze. Potem: jak filtrem odpowiedzieć „ilu zawodników kategorii J złamało 12 sekund?" i czym policzyć tę liczbę mimo filtra?
Wskazówka i odpowiedź

Klucze: 1) kategoria rosnąco, 2) czas rosnąco (mniejszy czas = szybszy). Filtr: kategoria = „J" ORAZ czas < 12; liczbe widocznych pokaże pasek stanu arkusza albo funkcja zliczająca tylko widoczne (SUMY.CZĘŚCIOWE z odpowiednim numerem operacji) — zwykłe ILE.LICZB policzy też ukrytych. Alternatywa bez filtra: =LICZ.WARUNKI(B:B;"J";C:C;"<12") (wielowarunkowe zliczanie — koniunkcja jak and).

  1. Po sortowaniu malejąco kolumny „punkty" najlepszy wynik „9" stoi nad „85" i „100". Zdiagnozuj problem, wyjaśnij mechanizm (odwołaj się do porządku z 3.4) i podaj naprawę.
Wskazówka i odpowiedź

Punkty są tekstami: porządek leksykograficzny porównuje znak po znaku, więc „9" > „85" > „100" (bo „9">"8">"1" na pierwszym znaku). Mechanizm z 3.4 (porównywanie napisów) zastosowany do niedokonwertowanych danych. Naprawa: zamień kolumnę na liczby (import z poprawnym typem, przemnożenie przez 1, funkcja konwertująca), posortuj ponownie — 100, 85, 9. Ta diagnoza to test dojrzałości arkuszowej: liczby, które „źle się sortują", prawie nigdy nie są liczbami.

🔍 Sprawdź, czy umiesz

  • Przeprowadzić import CSV ze świadomym wyborem separatora i kodowania.
  • Posortować tabelę wg dwóch kluczy i wyjaśnić rolę stabilności.
  • Ułożyć filtr wielokryterialny i policzyć widoczne rekordy.

Ucz się tej jednostki z asystentem