POWRÓT DO ARTYKUŁÓW

Visual Basic - do wykorzystania przy analizie szeregów czasowych (np. dla akcji marketingowych)


Podczas analizy danych wielokrotnie pojawia się problem ich obróbki. Zwłaszcza, jeśli dane wsadowe przygotowywane są przez różne działy. Analitycy danych najchętniej przyjmowaliby dane w formie bazodanowej, ale nie zawsze tak jest w praktyce. Niekiedy, zwłaszcza podczas współpracy z działami odpowiedzialnymi za marketing i reklamę kreatywność w zakresie "prezentacji" danych jest ogromna.

Przeanalizujmy kilka prostych przykładów, z jakimi możemy się spotkać w praktyce i spójrzmy, w jaki sposób visual basic może nam ułatwić pracę.

Jeśli otrzymamy tabelkę z datami obowiązywania np. akcji promocyjnych w formie jak na poniższym rysunku, wówczas chcielibyśmy mieć osobny rekord dla każdego kodu i pojedynczego dnia obowiązywania akcji.


tabela

Możemy wykorzystać poniższe makro. Wcześniej jednak tworzymy arkusz "akcje", który będzie arkuszem wynikowym. W arkuszu tym wstawiamy odpowiednie nagłówki i uruchamiamy makro.


kod VBA

W efekcie otrzymujemy pożądaną formę, która jest łatwiejsza do dalszej analizy i wizualizacji.


tabela

Inna forma danych wsadowych może wyglądać jak na poniższym rysunku. Naszym celem będzie zatem "depivotowanie" danych oraz usunięcie rekordów z pustymi wartościami.


tabela

Przed wykorzystaniem poniższego makra tworzymy arkusz "wynik".


kod VBA

Wcześniej pojawia się prośba o podanie liczby kolumn nie zawierających danych.


tabela

W efekcie również otrzymujemy pożądaną formę, która jest łatwiejsza do dalszej analizy i wizualizacji.


tabela

Wyobraźmy sobie jednak trudniejszy problem, gdzie dział odpowiedzialny za marketing przesłał nam harmonogram akcji w formie graficznej, jak na poniższym rysunku. Możemy oczywiście "bawić" się w uzupełnianie nazw w każdej "kolorowej" komórce. Jednak prościej będzie skorzystać z pomocy makra, które dla całego zakresu danych uzupełni odpowiednie pola.


tabela

Tworzymy arkusz wynikowy o nazwie: "wynik3" i uruchamiamy poniższe makro.


kod VBA

W efekcie otrzymujemy wypełnione komórki, które możemy "depivotować" jak we wcześniejszym przykładzie.


tabela

tabela