czwartek, 17 marca 2016

Nie masz Accessa? I co z tego, przecież masz Excela!

Ludzie wielokrotnie zachwalali relacyjne bazy danych. "Rewolucyjne", "wyznaczające trendy", "wizjonerskie" itp. Tak mogło być w momencie jak je wynaleziono gdzieś w latach 70. Obecnie istnieją o wiele bardziej zaawansowane systemy zarządzania danymi, a relacyjne bazy danych trafiły nawet do Excela. Dzisiaj spróbujemy sprawdzić czy można się obejść bez Accessa (bardzo popularnego, bardzo drogiego i przeważnie bezużytecznego programu do obsługi baz danych) wykorzystując to co ma na do zaoferowania Excel. Zacznijmy!

Na początek stwórzmy dwa zakresy w osobnych arkuszach, które będą udawały tabele w naszej pseudo-bazie. Ja wykorzystałem dane z postu WYSZUKAJ.PIONOWO dla dwóch kryteriów? Niemożliwe!

Stwórzmy w tym samym pliku kolejny arkusz, tym razem pusty. Następie wstawmy dane z innych źródeł. Kliknij DANE => Z innych źródeł => Z programu Microsoft Query. Wybieramy ścieżkę do naszego pliku, potem przesuwamy Arkusz1$ do pola po prawej, klikamy 3 x [Dalej] i mamy dokładną kopię naszych danych źródłowych.


Co na daje taki zabieg? Ano wyobraźmy sobie, że właśnie podłączyliśmy się do jakiegoś pliku w naszej sieci, który codziennie ktoś tam aktualizuje. Normalnie byśmy go przesłali mejlem, ale skoro go podłączyliśmy, to możemy bez ruszania tyłka załadować dokładnie takie dane, jakie ktoś przed chwilą gdzieś tam zaktualizował. Ale to nie wszystko! Po kliknięciu PROJEKTOWANIE => Odśwież => Właściwości połączenia możemy edytować tekst polecenia, który jest praktycznie językiem SQL.


A jak wiadomo z SQLem możemy zrobić co nam do głowy przyjdzie i twórcy języka to przewidzieli (a twórcy Excela niekoniecznie). Np. możemy dodać warunek where. Ale zanim to zrobimy to uszykujmy trochę składnię.
SELECT [Arkusz1$].Data, [Arkusz1$].Źródło, [Arkusz1$].Ekipa, [Arkusz1$].Hajs, [Arkusz1$].Dzielnia
FROM [Arkusz1$] [Arkusz1$]
Usunąłem niepotrzebną ścieżkę do pliku, a także zastąpiłem pojedynczy cudzysłów nawiasami kwadratowymi, bo już mi się od nich w oczach mieniło. Teraz możemy śmiało dodać to where.
SELECT [Arkusz1$].Data, [Arkusz1$].Źródło, [Arkusz1$].Ekipa, [Arkusz1$].Hajs, [Arkusz1$].Dzielnia
FROM [Arkusz1$] [Arkusz1$]
WHERE [Arkusz1$].Ekipa = 'Gruby Bolo'
Klikamy [OK] i w efekcie uzyskujemy wszystkie występki Grubego Bola i jego ekipy:


Ale zaraz zaraz! Przecież jedną tabelę to można ogarnąć zwykłymi filtrami, z czym do ludzi Człowieku-Excelu? Ano oprócz jednej tabeli możemy dodać dwie albo więcej i to wszystko przy pomocy narzędzi dostarczonych z Excelem.


O kurde balans! Własnie robiliśmy coś do czego potrzebna była funkcja WYSZUKAJ.PIONOWO bez wstawiania ani jednej formuły! To tylko drobny przykład możliwości SQL. W swojej krótkiej acz burzliwej karierze jeszcze nie spotkałem się z kodem, którego Excel by nie połknął.

Ale co zrobić z tym wynalazkiem? To dopiero początek. Np. po zainstalowaniu sterownika Oracla i odpowiedniej konfiguracji możemy nawet podpiąć tabelę w Excelu bezpośrednio do jakiejś bazy przez połączenie ODBC i zasysać dane kiedy nam się tylko spodoba. I tak najczęściej wyniki kwerendy lądują w Excelu, więc może warto ominąć kilka kroków i robić to bezpośrednio w arkuszu? Ale jak to zrobić opowiem innym razem.

1 komentarz:

  1. Borgata Hotel Casino & Spa - JMH Hub
    Borgata Hotel Casino & Spa. 포천 출장안마 1 Borgata Way, Atlantic City, NJ 08401, US A 화성 출장안마 popular spot on The Strip, the Borgata Hotel 인천광역 출장안마 Casino 충청북도 출장마사지 & Spa has two restaurants 오산 출장샵

    OdpowiedzUsuń