Porady. Pandas. Python. Django. Microsoft Power BI. Tableau.

DAX. Funkcja ADDCOLUMNS

09.2024 | dax | power bi | dax addcolumns

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

  1. 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.

  2. 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.

  3. Użycie funkcji w połączeniu z filtrami: Funkcja ADDCOLUMNS moż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 FILTER do 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

Wdrażam rozwiązania analityczne, buduję raporty zarządcze i pomagam zrozumieć dane.

Korzystam z Google Marketing Cloud, Microsoft Power BI, Google Cloud oraz Python.

Pracowałem m.in. dla Credit Suisse, Phonak, Hansaton, Unitron, Nestle, IBM, Play.

Jestem współtwórcą grupy Hexe Capital SA.

Zapraszam do lektury i współpracy.

Krzysztof Surowiecki

Chcę porozmawiać o współpracy →

Moje certyfikaty