Blog (23)
Komentarze (385)
Recenzje (0)

(Nie)dozwolone związki Excela i bazy danych - część 3

@parasite85(Nie)dozwolone związki Excela i bazy danych - część 319.03.2012 22:38

Wstęp

W poprzednich dwóch wpisach przedstawiłem sposoby, aby tabelkę w Excelu przekształcić na bazę danych MS SQL (Część 1, Część 2 ). Coraz mniejsze jednostki gospodarcze gromadzą coraz więcej danych, tak więc migracja na profesjonalny system bazodanowy ma sens nawet w mikroprzedsiębiorstwach. Jednak po co gromadzimy dane? W jakim celu pieczołowicie zapisujemy, archiwizujemy informacje? Co sprawia, że są one tak cenne? Informacja sama w sobie nie jest dla nas istotna. Ważne dla nas są odpowiedzi których dzięki tym danym jesteśmy sobie udzielić na zadane pytania. Tym właśnie zajmuje się analiza danych. Można analizować dane ręcznie, ale to raczej przy Mega/Giga/Tera bajtach danych nie wchodzi w grę. Można kupić profesjonalne programy przeznaczone do tego celu, ale mało które małe przedsiębiorstwo jest w stanie sobie na to pozwolić. Można zamówić program napisany chociażby w PHP, który łącząc się z bazą danych będzie w stanie generować odpowiednie raporty, to jednak może być dosyć kosztowne i mało elastyczne. W tym może nam pomóc Excel i funkcje tabeli przestawnych.

Przygotowania 1 - stworzenie widoku

Potrzebna nam będzie baza danych, którą stworzyliśmy w pierwszej lub drugiej części: Database2SQL Załóżmy, że na podstawie naszych danych, chcemy stwierdzić, czy w przedsiębiorstwie występuje dyskryminacja płciowa pracowników. Do tego celu stworzymy widok. Widoki, są wygodnym sposobem na udostępnienie wycinka bazy danych. Służy to zarówno bezpieczeństwu (określony użytkownik, może mieć dostęp do konkretnych tabel, a nawet kolumn, a ukryć możemy inne) jak i wygodzie (tworząc taki widok nie musimy powtarzać pewnych zapytań). Widoki można tworzyć na różne sposoby, najłatwiej dla nowicjuszy jest to wyklikać. W oknie Microsoft SQL Server Management Studio po rozszerzeniu drzewka naszej bazy, klikamy prawym na "View" i wybieramy "New View..." Wybieramy wszystkie tabele:

Dodałem wszystkie kolumny ze wszystkich tabel (poza danymi z tabel słownikowych) i zapisałem widok jako przykladowa_lista.

Przygotowania 2 - dane wracają do Excela

Wskazujemy Exelowi połączenie

Najpierw musimy wejść w zakładkę dane, z innych źródeł, a następnie z programu SQL Server. W oknie które się pojawi wpisujemy nazwę serwera:

Następnie wybieramy bazę danych (u mnie Database2SQL) i odznaczamy pole "Połącz z określoną tabelą".

Po kliknięciu dalej, pojawi nam się okno w którym nic nie musimy robić. Możemy jednak wpisać tam nazwę połączenia, opis, ustawić uwierzytelnienia, itp. Po utworzeniu połączenia Excel zaproponuje nam z jakiej tabeli (lub widoku) chcemy czerpać dane. Wskazujemy na widok który stworzyliśmy:

Klikamy "OK" i wybieramy opcję: "Raport w formie tabeli przestawnej"

Chyba o czymś zapomniałem

Rzeczywiście. Zapomniałem o tym, że w tabeli nie mamy informacji o płci. Co prawda, mógłbym wrócić prawie do początku i poprawić co trzeba, ale spróbujmy rozwiązać sprawę na bieżąco. Otwieramy SQL Server Management Studio. Najpierw dodajemy kolumnę w tabeli (można to wyklikać - prawym na tabelę lista, i design w wierszu na samym dole wpisać "Plec" i w typie danych zmniejszyć ilość znaków z 10 (nvarchar(10)) na 1 nvarchar(1). Zapisujemy i zamykamy. Teraz pora na dane. Klikamy "New Query" i wpisujemy:


UPDATE Lista SET Plec='K' WHERE RIGHT(Imię,1)='a'
UPDATE Lista SET Plec='M' WHERE RIGHT(Imię,1)!='a'

Wracamy do naszego widoku w SQL Server Management Studio (jak zamknęliśmy już kartę, to prawym na nasz widok i design). Dodajemy do widoku nową kolumnę i go zapisujemy. Teraz możemy wrócić do Excela i odświeżyć dane (Zakładka Dane - Odśwież wszystko). Jeszcze możemy dodać do widoku jedną kolumnę, ale tylko w widoku (nie modyfikując pierwotnej tabeli). Do kodu widoku dopisujemy:


, CONVERT(INT, (GETDATE()-dbo.Lista.Pracuje_od))/365.25 AS 'Lata_pracy'

Całość wygląda tak:

Pora na analizę danych

Do tej pory były to typowo techniczne przygotowania. W tej chwili musielibyśmy określić kryteria, po których będziemy określali, czy dochodzi do dyskryminacji, czy też nie. Proponuję wziąć pod uwagę Lata pracy i stanowisko w "Etykietach wierszy", Płeć w "Etykietach kolumn" oraz w wartościach "Pensję". W odpowiednie rubryki po prawej stronie przeciągamy odpowiednie kolumny z tabeli. Zaznaczyłem całą kolumnę "Lata pracy" i dodałem grupowanie - zakres sam się wpisał, interwał=5. Po prawej stronie okna Excela jest "Suma z Pensja". Proponuję kliknąć lewym i "Ustawanie wartości pola". Zmieniamy z "Suma" na Średnia". Następnie format liczby i wybieramy walutowe oraz 0 miejsc po przecinku - nie jest to istotne przy naszej analizie. W tej chwili to wygląda tak:

Aby ułatwić sobie pogląd sytuacji, mając zaznaczoną jakąkolwiek komórkę w tabeli naciskamy F11 (tworzenie wykresu).

Zakończenie

Na podstawie tego wykresu ja nie widzę dyskryminacji. Nie mamy pełnych danych, ponieważ przy takich analizach jeszcze np. zasługi danego pracownika powinny być brane pod uwagę i pewnie 1000 innych czynników. Bardziej od kwestii analitycznej chodziło mi o przedstawienie możliwości jakie daje Excel w tym zakresie. Dzięki temu niedużym kosztem otrzymujemy potężne narzędzie. Można nawet próbować zestawić takie połączenie (przygotowując odpowiednie widoki) i odpowiednie osoby przeszkolić z posługiwania się tabelami przestawnymi. Dzięki temu sami sobie będą mogli w łatwy sposób wyciągać dane które potrzebują.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.