Funkcje VBA w MDX

W języku MDX  zaimplementowano pewną mało znana funkcjonalność, chodzi mianowicie o zestaw funkcji języka VBA. Tak więc jeśli chcemy przeprowadzić proste operacje podobne do tych jakie wykonujemy formułami w Excelu możemy użyć wspomnianych funkcji – do dyspozycji mamy ich naprawdę dużo (całą ich listę znajdziemy tutaj).

W tym miejscu może pojawiać się pytanie jak użyć funkcji VBA w MDX? Wymaga to rejestracji dodatkowych komponentów bądź innych niestandardowych akcji? Odpowiedź brzmi nie! Wystarczy, że uzyjemy prefiksu vba! tak jak zostało to przedstawione poniżej:

Rezultat jest bardzo prosty do przewidzenia, z tekstu przekazanego jako parametr wycięte zostanie pierwszego 8 znaków:

result of a queryTak więc użycie funkcji jest bardzo proste. Niemal wszystkie z nich są równie proste w użyciu. Ponadto istnieje możliwość ich zagnieżdżania tak jak poniżej:

Liczba -23.42123 zostanie zaokrąglona do 2 miejsc po przecinku. Następnie zostanie wyciągnięta wartość bezwzględna, a następnie wycięty jeden znak od lewej. Tak więc jak możemy się spodziewać wynikiem końcowym będzie liczba 2.

result of nested vba functionMożna sobie wyobrazić co trzeba by zrobić aby osiągnąć podobny efekt bez funkcji VBA. Warto również wspomnieć o użytecznej funkcji FORMAT, która pozwala np. na formatowanie naszej miary warunkowo na podstawie wartości z innego wymiaru dla przykładu wykonajmy poniższe zapytanie.

W rezultacie otrzymamy sformatowaną miarę w zależności od  warunku CASE jaki podaliśmy:

mdx caseJak widać funkcje VBA nieco upodobniają MDX do języka SQL i mogą być bardzo pomocne w codziennej pracy. Używajmy ich jeśli zachodzi taka potrzeba szczególnie, że  są one przejrzyste i naprawdę proste w rozszyfrowaniu.

Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Leave a Comment

Your email address will not be published. Required fields are marked *