Like

Oczywiście jak to zrobiłem przy pomocy Arkuszy Google. Żeby to zrobić trzeba odpowiedzieć na kilka pytań, a potem jest już z górki.

Mój plik roboczy jest dostępny tutaj. Żeby móc go edytować należy wykonać własną kopię dokumentu.

Inspiracją do tego tekstu był mój kolega Olek, który pochwalił się na FB stroną koronawykres.pl zrobioną jako ćwiczenie ze stawiania www, API, bibliotek, etc. Pomyślałem wówczas, że da się to zrobić bez całej tej specjalistycznej obudowy. Bez pisania prawdziwego kodu, skryptów czy choćby makr – jedynie przy pomocy standardowych narzędzi arkusza.

Jak podłączyć dane ze strony wikipedii do Arkusza Google?

Arkusze mają kilka funkcji którymi można pobrać dane zewnętrzne. Ponieważ strony Wikipedii są dość prosto skonstruowane, możemy używać IMPORTHTML . Jej składnia jest następująca:

=IMPORTHTML(url; zapytanie; indeks)

  • url to oczywiście adres strony z której będziemy chcieli pobrać dane. Adres musimy umieścić w cudzysłowie, ewentualnie wskazać w tym miejscu, w której komórce funkcja ma szukać adresu.
  • zapytanie – oznacza rodzaj obiektu jaki ma być znaleziony. Tabela lub lista. A więc w to miejsce wpisujemy “table” lub “list”.
  • indeks – określamy którą tabelę lub listę ma dla nas pociągnąć funkcja. Pierwszą, drugą czy inną napotkaną licząc od góry.

Na stronie anglojęzycznej wikipedii znalazłem wykres z tabelą danych, które okazały się możliwe do pociągnięcia przez IMPORTHTML

https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Poland

To oryginalny fragment strony Wikipedii anglojęzycznej 19 marca 2020.

Żeby wydobyć dane z tej tabeli posłużyliśmy się funkcją IMPORTHTML i uzyskaliśmy następujący rezultat:

=IMPORTHTML(A1;”table”;4) – W komórce A1 wkleiłem link do Wikipedii, natomiast funkcja IMPORTHTML po kolei odwołuje się najpierw do tego linku, potem wskazuje, że będzie szukać tabeli 4 w kolejności. I wrzuca jej zawartość w komórki poniżej i w prawo (formuła jest tylko w A2).

Jak zbudować wykres, który będzie codziennie się poszerzał?

Żeby zbudować wykres, musimy najpierw uporządkować nieco dane. W komórce z ilościami przypadków, mamy doklejone również przyrosty procentowe. Nie chcemy ich i nie pozwalają one w tej chwili budować sensownego wykresu. Dlatego wyseparowane liczby umieszczamy w kolejnej kolumnie (E).

=Array_constrain(ARRAYFORMULA(value(left(D4:D;find(“(“;D4:D;1)-1))); counta(D4:D);1) – tak wygląda ta funkcja bez uporządkowania w linijkach. Żeby zbudować funkcję w kilku linijkach, używamy Ctrl+Enter. To ułatwia jej czytanie, zwłaszcza gdy mamy wiele zagnieżdżonych w sobie funkcji jak tutaj.

Po przekroczeniu 1000 przypadków ujawnił się dodatkowy problem z formatowaniem liczb importowanych z wikipedii. Strony w wersji angielskiej używają separatora tysięcy w postaci przecinka (1,000) co sprawiło, że wykres wszystkie wartości powyżej 1000 były źle czytane. Trzeba było dodać jeszcze funkcję SUBSTITUTE, która usuwa przecinki.

Funkcja SUBSTITUTE zagnieżdzona w formule bierze ciąg znaków przed znakiem otwarcia nawiasu, wyszukuje “,” i zamienia na nic “”.

W ten sposób otrzymujemy dane gotowe do zrobienia wykresu. Pozostaje wstawić wykres i go dopasować. Zaznaczam kolumnę z wartościami przypadków i wybieram z Menu Wstaw –> Wykres

Początkowa wersja wykresu nie ma opisu na osi Y i obejmuje tylko ograniczony zakres. Jeśli zostawimy go w tej formie, to kolejne dni się nie pojawią.

W ustawieniach wykresu zwiększamy zakres danych wykresu maksymalnie: A4:A1000,E4:E1000 . Od tej pory jeśli pojawią się nowe wartości to wykres je uwzględni.

Jak umieścić komentarze na wykresie?

Wykres jest dużo ciekawszy jeśli przy konkretnych datach i wartościach umieścimy jeszcze nasze komentarze. Wykres możemy dopasowywać na setki sposobów – dodawać kolory, etykiety, siatki, oznaczać kolorem konkretne wartości, ale tym razem chciałbym się skupić na komentarzach – bo to mało znana funkcja.

Wykres musi skądś pobierać komenty, więc w kolumnie F wpisuję kilka refleksji. Następnie wchodzę w Zakres Danych (klik prawym klawiszem w wykres). Wybieram z rozwijanego menu przy serii danych opcję Dodaj etykiety, a następnie wskazuję miejsce gdzie są komentarze (w tym wypadku F4:F1000).

W ustawieniach wykresu wybieram etykiety do serii danych.

Nasza nieuczesana, ale już ciekawa wersja wykresu wygląda tak i będzie się aktualizować jak Wikipedia będzie podawać dane z kolejnych dni:

Jak opublikować wykres na własnej stronie (poza Arkuszami), tak żeby się aktualizował?

Tu właśnie jest przykład – poniższy obrazek pochodzi z mojego arkusza i po najechaniu pokazuje więcej szczegółów:

Arkusze Google pozwalają na publikowanie wielu elementów na zewnątrz. W tym wykresów. W tym celu należy wejść w menu wykresu w prawym górnym rogu i wybrać Publikuj wykres:

Można wygenerować odrębny link pod którym będzie krył się wykres:

Taki jak ten link. Możemy go wysłać komuś i wyświetli się jako samodzielna strona.

Można też skorzystać z opcji Osadź. Wówczas Arkusz Google przygotuje dla nas krótki odcinek kodu <iframe>…</iframe>, który należy wkleić na własną stronę (w trybie edycji html) i cieszyć się wykresem spiętym z danymi.

Wykres będzie się aktualizował automatycznie jeśli tylko zaznaczymy odpowiednią opcję:

Ponieważ ten wykres będzie z każdym dniem zawierał coraz więcej danych, warto go przewymiarować i ponownie opublikować jeśli przestanie być czytelny.

Przygotowanie danych, stworzenie wykresu i podpięcie go do strony zajęło mi okoł 20 minut. Myślę, że Arkusze Google są tu bardzo wydajnym narzędziem. Pozostaje pilnować by dane się nie rozjechały z czasem i żeby Wikipedia nie zmieniła struktury swojej strony.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.