Za pomocą DAX możesz tworzyć zarówno kolumny kalkulowane jak i miary. Ale czy zastanawiałeś się kiedyś, po co komu dwa twory, skoro ich wynik może być taki sam?
No właśnie. Może, ale wcale nie musi. Dodatkowo – sposób działania miar i kolumn kalkulowanych (pomimo tego, że składnia kodu jest podobna) jest diametralnie różny.
Dlatego dzisiaj poświęćmy trochę czasu na zrozumienie czym są miary i kolumny kalkulowane
Czym jest kolumna kalkulowana?
Jeżeli miałeś wcześniej do czynienia z arkuszami kalkulacyjnymi, to kolumna kalkulowana jest dla Ciebie najbardziej naturalną rzeczą na świecie.
Dla każdego wiersza obliczana jest jakaś wartość.

W powyższym przykładzie mamy zestawienie transakcji – liczbę i wartość jednostkową pozycji w zamówieniu.
Dla każdego wiersza mnożymy liczbę i wartość jednostkową, dzięki czemu otrzymujemy łączną wartość sprzedaży danej linii.
No i to samo możemy zrobić w Power BI. Z tą różnicą, że nie na poziomie pojedynczej komórki a całych kolumn.

Obliczenie wykonywane jest dla każdego wiersza tabeli niezależnie od filtrów w raporcie. Co istotne – to obliczenie jest wykonywane w trakcie odświeżania danych i jego wynik będzie przechowywany w pamięci.
Kolumny kalkulowane w praktyce
Przede wszystkim – każda kolumna kalkulowana będzie wpływać na fizyczną wielkość Twojego raportu i czas odświeżania. I o ile mówimy o prostych tabelach, w których masz kilkaset, czy nawet kilka tysięcy wierszy a obliczenia, których dokonujesz są stosunkowo proste – pewnie nawet nie zauważysz różnicy. Ale w momencie, gdy zaczniesz pracować z większymi modelami danych, gdzie liczbę wierszy będziesz już liczyć w milionach – przekonasz się, że kolumny kalkulowane potrafią znacząco utrudnić życie.
Czym jest miara?
Najprościej mówiąc – jest to obliczenie wykonywane nie na poziomie każdego wiersza, tylko na zagregowanych wartościach. To obliczenie może być prostym obliczeniem wartości sprzedaży jak w naszym przykładzie, albo bardziej złożonym, biorącym pod uwagę inne czynniki jak chociażby obliczenie sprzedaży rosnąco, albo uwzględniającym wyłączenia.

Co istotne – obliczenie nie jest wykonywane tylko raz, dla każdego wiersza tabeli. Miary obliczane są na bieżąco i biorą pod uwagę filtry ustawione w raporcie/wizualizacji. Co za tym idzie – są obliczane tylko wtedy, gdy faktycznie są wykorzystywane i nie zajmują dodatkowej przestrzeni ani pamięci RAM. W zamian za to, aby obliczenia były jak najszybsze – wykorzystywana jest do tego moc procesora.
Kontekst wykonywania obliczenia jest jedną z najważniejszych różnic między miarami a kolumnami kalkulowanymi.
Kontekst filtru
Wiesz już, że wartości w kolumnach kalkulowanych obliczane są zawsze i dla każdego wiersza, niezależnie od tego, czy je wykorzystujesz czy nie.
Wiesz też, że miary obliczane są tylko wtedy, gdy są potrzebne. Co więcej – obliczane są tylko w zakresie ograniczonym przez fragmentatory i wizualizacje.

Czyli tak, jak na powyższym obrazku – obliczenie wartości sprzedaży za pomocą miary nie odbywa się dla całej tabeli, tylko dla wierszy, w których wartość kolumny [PRODUCTLINE] jest równa „Classic Cars” oraz oddzielnie dla każdego numeru zamówienia [ORDERNUMBER].
Czyli nasza miara dokonuje obliczeń na ograniczonym przez filtry zbiorze danych.
Co za tym idzie – za każdym razem, gdy ten kontekst się zmieni (na przykład użyjesz fragmentatora) miara wykona obliczenia od nowa z uwzględnieniem zmian.
Więc z czego korzystać?
Niestety nie ma jedynej, właściwej odpowiedzi na to pytanie.
Najlepszym wskaźnikiem tego, czy potrzebujesz kolumny czy miary wydaje się być pytanie „Czy wynikiem będzie pojedyncza wartość liczbowa”. Jeżeli odpowiedź jest twierdząca – to prawdopodobnie potrzebujesz właśnie miary.
Jeżeli z drugiej strony potrzebujesz wartości, które będą używane we fragmentatorach, osiach wykresu, legendach etc. – wtedy musisz skorzystać z kolumn.
Porównanie kolumny kalkulowanej i miary
