Funkcja ADDCOLUMNS w języku DAX jest narzędziem do tworzenia nowych kolumn w tabeli, bez potrzeby modyfikowania oryginalnego modelu danych. Umożliwia dodawanie nowych kolumn wynikowych do tabeli w locie, co pozwala na dynamiczne tworzenie kalkulacji w raportach Power BI czy Analysis Services.
Jak działa funkcja ADDCOLUMNS?
ADDCOLUMNS generuje nową tabelę, do której dodaje dodatkowe kolumny. Każda z tych nowych kolumn może być wynikiem obliczeń na istniejących danych, dzięki czemu funkcja ta jest bardzo elastyczna i potężna.
Składnia:
ADDCOLUMNS (
<Tabela>,
<NazwaNowejKolumny>, <Wyrażenie>,
[<NazwaNowejKolumny2>, <Wyrażenie2>, ...]
)
- Tabela: Jest to tabela, do której chcesz dodać nowe kolumny.
- NazwaNowejKolumny: Nazwa nowo tworzonej kolumny.
- Wyrażenie: Obliczenie, które zostanie wykorzystane do wygenerowania wartości dla tej kolumny.
Przykłady zastosowania funkcji ADDCOLUMNS
-
Dodanie pojedynczej kolumny z prostym obliczeniem: Załóżmy, że mamy tabelę
Sales, która zawiera kolumnęAmount(wartość sprzedaży). Chcemy dodać nową kolumnę, która będzie zawierać podatek VAT od sprzedaży.SalesWithVAT = ADDCOLUMNS ( Sales, "VAT", Sales[Amount] * 0.23 )W tym przykładzie, funkcja dodaje nową kolumnę o nazwie "VAT", która oblicza 23% podatku od wartości sprzedaży.
-
Dodanie wielu kolumn na raz: Można również dodać kilka kolumn jednocześnie, każda z innym obliczeniem. Na przykład dodajmy zarówno kolumnę z VAT-em, jak i kolumnę z łączną kwotą (wartość sprzedaży + VAT).
SalesWithVATAndTotal = ADDCOLUMNS ( Sales, "VAT", Sales[Amount] * 0.23, "TotalAmount", Sales[Amount] + (Sales[Amount] * 0.23) )Tutaj funkcja dodaje dwie nowe kolumny – jedną z obliczonym VAT-em, a drugą z sumą sprzedaży i VAT-u.
-
Użycie funkcji w połączeniu z filtrami: Funkcja
ADDCOLUMNSmoże być używana w połączeniu z innymi funkcjami DAX, aby tworzyć bardziej zaawansowane obliczenia. Możemy np. dodać kolumnę pokazującą ilość sprzedaży tylko dla produktów z określonej kategorii.SalesByCategory = ADDCOLUMNS ( FILTER (Sales, Sales[Category] = "Elektronika"), "TotalSales", SUM(Sales[Amount]) )W tym przykładzie używamy funkcji
FILTERdo wybrania tylko wierszy z kategorii "Elektronika", a następnie dodajemy kolumnę z łączną kwotą sprzedaży dla tej kategorii.
Kiedy warto używać funkcji ADDCOLUMNS?
Funkcja ADDCOLUMNS jest idealna w sytuacjach, gdy chcemy tworzyć nowe kolumny w tabelach w trakcie analizy, zamiast modyfikować istniejący model danych. Jej zastosowania obejmują:
- Tymczasowe kolumny: Gdy potrzebujesz dodać kolumnę do obliczeń, która nie jest potrzebna na stałe w modelu danych.
- Zaawansowane raporty: Możliwość dynamicznego tworzenia obliczeń w tabelach, w zależności od potrzeb danego raportu.
- Symulacje: Tworzenie symulacji lub co jeśli scenariuszy poprzez dodanie kolumn wynikających z modyfikacji istniejących danych.
Różnica między ADDCOLUMNS a SELECTCOLUMNS
- ADDCOLUMNS: Dodaje nowe kolumny do istniejącej tabeli, ale zachowuje wszystkie oryginalne kolumny.
- SELECTCOLUMNS: Tworzy nową tabelę tylko z wybranymi kolumnami, a inne kolumny są ignorowane.
Potencjalne wyzwania
Podczas używania ADDCOLUMNS warto pamiętać, że funkcja ta może być zasobożerna, szczególnie w przypadku bardzo dużych tabel lub skomplikowanych obliczeń. W takich przypadkach należy zwrócić uwagę na optymalizację modelu i wydajność zapytań.
Podsumowanie
Funkcja ADDCOLUMNS w DAX umożliwia dynamiczne dodawanie nowych kolumn do tabel. Jest szczególnie przydatna w Power BI, gdzie możesz tworzyć zaawansowane obliczenia bez potrzeby modyfikowania podstawowego modelu danych. J