Power BI treatas和userelationship區(qū)別

主要是因為今天做表時,用treatas時,將前后參數(shù)的的位置寫反了,導(dǎo)致結(jié)果對不上;
后來用userelationship結(jié)果就對上了

ITEM CONTENT
都可以構(gòu)建關(guān)系
treatas可以在沒有關(guān)系的情況下使用,更靈活,可以自己構(gòu)建;
Userelationship僅在有未激活關(guān)系的情況下使用
--treatas更靈活,可以構(gòu)建不存在的列
MEASURE = CALCULATE([度量值], treatas({"Blue","Red"}, 'table[column]))

--定義任意關(guān)系的篩選器
--檢索在法國銷售的藍色產(chǎn)品和在愛爾蘭銷售的綠色產(chǎn)品的數(shù)量
EVALUATE
SUMMARIZECOLUMNS (
    'Date'[Calendar Year],
    "Quantity", CALCULATE (
        SUM ( Sales[Quantity] ),
        TREATAS (
            { ( "Blue", "France" ), ( "Green", "Ireland" ) },
            'Product'[Color],
            Customer[Country]
        )
    )

TREATAS

treatas前后字段很重要,

TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )  
Term Definition
table_expression An expression that results in a table.
column One or more existing columns. It cannot be an expression.

該表達式返回一個表,然后在calculate中用返回的表進行篩選
使用時,可以理解為維度表在前,明細表在后

Userelationship

image.png

用在calculate中,臨時激活虛線的關(guān)系
常使用在有兩個字段需要與維度表關(guān)聯(lián)時, 比如截圖時下單日期和發(fā)貨日期需要與日期表相連。
使用時,列的順序無所謂;通常的做法是先使用關(guān)系的多面(Sales),然后使用單面(Date),不過不影響結(jié)果。

使用建議

性能上:建模視圖構(gòu)建關(guān)系>userelationship>treatas>intersect>filter
但是treatas可以做非侵入式設(shè)計,減少對模型主要關(guān)系的干擾。
所以,需要在設(shè)計與性能間平衡。

Detail please refer to
https://www.sqlbi.com/articles/propagate-filters-using-treatas-in-dax/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容