Średnie wartość w miesiącach dla każdego roku osobno, dla dowolnej liczby miesięcy

Średnie wartość w miesiącach dla każdego roku osobno, dla dowolnej liczby miesięcy

Oczekiwany efekt do uzyskania:

  • Wyliczenie w kolumnach średnich wartości miesięcznych dla dowolnej liczby wybranych miesięcy.
  • W efekcie kalkulacja nie może być uzależniona od ilości wybranych miesięcy, tzn. od ilości kolumn w tabeli.


Tak wygląda zestaw danych na którym pokażę jak to zrobić. Mamy dwa lata i wybrane ręcznie dowolne miesiące (jako kryteria):


1. Standardowo można zastosować wprost wzór kalkulacji, który odwołuje się do numerów kolumn, czyli:

  • Średnia 1: avg(d1:d2, 0, m1)
  • Średnia 2: avg(d3:d5, 0, m1)

Tak zdefiniowane średnie będą działać poprawnie dopóki w pierwszym roku będą wybrane 2 miesiące, a w drugim 3 miesiące. Jeżeli jednak zmienimy liczbę wyświetlanych miesięcy średnie dalej będą liczone dla 2 i 3 kolumn odpowiednio - czyli nie o taki efekt chodziło...

2. Gdybyśmy chcieli te średnie pokazać w wierszu, a nie w kolumnach, to należałoby zastosować wzór:

  • avg(all(s), d1, m1)
  • avg(all(s), d2, m1)
PS. W tym przypadku korzystamy z modyfikatora (s) - siblings, aby wyliczyć średnie na tym samy poziomie hierarchii wymiaru czas

Tak zdefiniowane średnie będą działały poprawnie, nawet jeżeli będziemy zmieniać liczbę wyświetlanych miesięcy. Jednak te średnie są w wierszach, a nie w kolumnach - czyli też nie o taki efekt chodziło...

3. Aby uzyskać oczekiwany efekt, w którym średnia będzie liczona osobno dla każdego roku, ale będzie można zmieniać dowolnie ilość wyświetlanych miesięcy dla każdego roku, należy zastosować bardziej złożone kalkulacje, czyli pewien trick:

a) dodajemy kalkulowaną miarę, np. m2: avg(all(s), 0, m1)
b) dodajemy kolejną kalkulowaną miarę, np. m3: sum(0(l2), 0, m2)

Otrzymamy taki efekt pośredni:


c) następnie dodajemy kalkulowaną kolumnę, np. Średnia 1: sum(d1(l1), 0, m3)
d) oraz kalkulowaną kolumnę, np. Średnia 2: sum(d2(l1), 0, m3)

W efekcie otrzymamy poprawnie wyliczone średnie:


e) teraz jeżeli wyłączymy wyświetlanie miar pośrednich m2 i m3 otrzymamy oczekiwany efekt:


Tak przygotowane średnie będą poprawnie wyliczane niezależnie od ilości miesięcy które wybierzemy dla każdego roku (średnie nie opierają się na numerach kolumn), np.:


Pozdrawiam,

Dariusz Bieniek

    • Related Articles

    • Średnie wartość w miesiącach dla każdego roku osobno, dla dowolnej liczby miesięcy

      Oczekiwany efekt do uzyskania: Wyliczenie w kolumnach średnich wartości miesięcznych dla dowolnej liczby wybranych miesięcy. W efekcie kalkulacja nie może być uzależniona od ilości wybranych miesięcy, tzn. od ilości kolumn w tabeli. Tak wygląda ...
    • TARGIT Decision Suite 2019 Update 2

      W najnowszej wersji TARGIT Decision Suite 2019 wprowadziliśmy kolejne istotne zmiany, które powodują, że nasze życie staje się jeszcze łatwiejsze. W tej wersji, korzystając z doświadczeń Klientów, wprowadzone zostały ulepszenia zarówno dla ...
    • TARGIT eLearning

      Mam przyjemność przekazać informację, że TARGIT przedłużył bezpłatny dostęp do szkoleń eLearning do 17 kwietnia 2020. Jest dobra okazja, aby zostać ekspertem TARGIT a nawet zdobyć certyfikat. Gorąco polecam, są tam dostępne całe szkolenia w formie ...
    • Aktywne sesje TARGIT Management

      Aktywne sesje pojawiają się nie tylko przy włączeniu Targit, ale również po uruchomieniu Tagit Managment. W tym wypadku żadna z licencji viewera lub designera nie jest użyta.  Targit Managment uruchamiany jest przez nas w celu realizacji ...
    • Powiadomienia gdy wartość miary jest poniżej średniej

      TARGIT obsługuje kilka sposobów na utworzenie powiadomień. Jednym z nich jest powiadomienie, którego warunek porównuje wartość miary z wartością kalkulowaną w definicji tego agenta. Aby ustawić takiego agenta powiadamiania, który będzie odnosił się ...