TREATAS DAX Function (Table manipulation)

Treats the columns of the input table as columns from other tables.For each column, filters out any values that are not present in its respective output column.

Syntax

TREATAS ( <Expression>, <ColumnName> [, <ColumnName> [, … ] ] )
Parameter Attributes Description
Expression

The expression that generates the set of columns to be remapped.

ColumnName Repeatable

The name of the output column.

Return values

Table An entire table or a table with one or more columns.

A table that contains all the rows in column(s) that are also in Expression.

Remarks

TREATAS assigns the data lineage of the columns returned by the expression using the columns in the following arguments. The result can be assigned to a variable, because TREATAS is not a filter modifier. The first argument must be a table expression.

The TREATAS function works in Excel since version 1809. However, the function is not reported by IntelliSense and it might be not supported in Excel by Microsoft, yet.

» 9 related articles
» 1 related function

Examples

--  TREATAS can be used as an alternative syntax to apply 
--  a filter in CALCULATE/CALCULATETABLE
DEFINE
    MEASURE Sales[Sales Trendy Colors] =
        CALCULATE ( 
            [Sales Amount], 
            'Product'[Color] IN { "Red", "White", "Blue" } 
        )
    MEASURE Sales[Sales Trendy Colors 2] =
        CALCULATE (
            [Sales Amount],
            TREATAS ( { "Red", "White", "Blue" }, 'Product'[Color] )
        )
EVALUATE
SUMMARIZECOLUMNS (
    'Product'[Brand],
    "Sales Trendy Colors", [Sales Trendy Colors],
    "Sales Trendy Colors 2", [Sales Trendy Colors 2]
)
Brand Sales Trendy Colors Sales Trendy Colors 2
Contoso 2,560,661.40 2,560,661.40
Wide World Importers 809,002.39 809,002.39
Northwind Traders 557,579.98 557,579.98
Adventure Works 952,982.71 952,982.71
Southridge Video 128,714.66 128,714.66
Litware 1,059,954.76 1,059,954.76
Fabrikam 1,959,282.72 1,959,282.72
Proseware 963,930.44 963,930.44
A. Datum 34,852.00 34,852.00
The Phone Company 224,400.54 224,400.54
Tailspin Toys 123,785.02 123,785.02
--  TREATAS changes the data lineage of a table and it is
--  used to convert values to the desired filtering column.
DEFINE
    MEASURE Sales[NumOfCustomersInStoreCity] =
        VAR StoreCities = VALUES ( Store[City] )
        RETURN
            CALCULATE (
                COUNTROWS ( Customer ),
                TREATAS ( StoreCities, Customer[City] )
            )
    MEASURE Sales[NumOfCustomersInStoreCountry] =
        VAR StoreCountries = VALUES ( Store[CountryRegion] )
        RETURN
            CALCULATE (
                COUNTROWS ( Customer ),
                TREATAS ( StoreCountries, Customer[CountryRegion] )
            )
EVALUATE
SELECTCOLUMNS (
    VALUES ( Store[Continent] ),
    "Continent", Store[Continent],
    "NumOfStores", CALCULATE ( COUNTROWS ( Store ) ),
    "NumOfCustomersInStoreCity", [NumOfCustomersInStoreCity],
    "NumOfCustomersInStoreCountry", [NumOfCustomersInStoreCountry]
)
Continent NumOfStores NumOfCustomersInStoreCity NumOfCustomersInStoreCountry
North America 209 922 9,665
Europe 54 1,181 5,546
Asia 41 133 3,658
(Blank) (Blank) (Blank) (Blank)
--  TREATAS can be used with tables with multiple columns,
--  in that case you need to provide the new lineage for each 
--  column of the table.
DEFINE
    MEASURE Sales[NumOfCustomersInStoreCity] =
        VAR StoreCities = SUMMARIZE ( Store, Store[CountryRegion], Store[City] )
        RETURN
            CALCULATE (
                COUNTROWS ( Customer ),
                TREATAS ( StoreCities, Customer[CountryRegion], Customer[City] )
            )
    MEASURE Sales[NumOfCustomersInStoreCountry] =
        VAR StoreCountries = VALUES ( Store[CountryRegion] )
        RETURN
            CALCULATE (
                COUNTROWS ( Customer ),
                TREATAS ( StoreCountries, Customer[CountryRegion] )
            )
EVALUATE
SELECTCOLUMNS (
    VALUES ( Store[Continent] ),
    "Continent", Store[Continent],
    "NumOfStores", CALCULATE ( COUNTROWS ( Store ) ),
    "NumOfCustomersInStoreCity", [NumOfCustomersInStoreCity],
    "NumOfCustomersInStoreCountry", [NumOfCustomersInStoreCountry]
)
Continent NumOfStores NumOfCustomersInStoreCity NumOfCustomersInStoreCountry
North America 209 922 9,665
Europe 54 1,181 5,546
Asia 41 133 3,658
(Blank) (Blank) (Blank) (Blank)

Related articles

Learn more about TREATAS in the following articles:

Related functions

Other related functions are:

Last update: Mar 13, 2024   » Contribute   » Show contributors

Contributors: Alberto Ferrari, Marco Russo

Microsoft documentation: https://docs.microsoft.com/en-us/dax/treatas-function

2018-2024 © SQLBI. All rights are reserved. Information coming from Microsoft documentation is property of Microsoft Corp. » Contact us   » Privacy Policy & Cookies

Context Transition

This function performs a Context Transition if called in a Row Context. Click to read more.

Row Context

This expression is executed in a Row Context. Click to read more.

Iterator

Not recommended

The use of this function is not recommended. See Remarks and Related functions for alternatives.

Not recommended

The use of this parameter is not recommended.

Deprecated

This function is deprecated. Jump to the Alternatives section to see the function to use.

Volatile

A volatile function may return a different result every time you call it, even if you provide the same arguments. Click to read more.

Deprecated

This parameter is deprecated and its use is not recommended.

DirectQuery compatibility

Limitations are placed on DAX expressions allowed in measures and calculated columns.
The state below shows the DirectQuery compatibility of the DAX function.

Contribute

Want to improve the content of TREATAS? Did you find any issue?
Please, report it us! All submissions will be evaluated for possible updates of the content.


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.