函式週期表丨資訊丨值丨IN和CONTAINSROW

2021-10-12 16:56:10 字數 2669 閱讀 5650

in運算子和containsrow函式

in和containsrow函式隸屬於「資訊」類函式,二者除了語法上的區別,其效果是等同的。

用途:適用於多列條件判定。

相對於contains函式而言,二者的寫法和運算更為優化。

注:二者執行完全相等的比較,空值不能等同於0。

語法語法1:

dax1=

《比較值》 in 《被比較的表》

dax2=

( 《比較值1>, 《比較值2>, … ) in 《被比較的表》

語法2:

dax=

containsrow(《被比較的表》, 《比較值1>[, 《比較值2>, …])

引數比較值:(可重複)需要進行比較的值,可以是表示式。

被比較的表:提供進行對比的範疇,可以是表示式。

返回結果

判定比較值是否在被比較的表中,返回true或者false。

例子

模擬資料:

這是白茶隨機模擬的乙份資料,乙份事實表,乙份維度表,從例子中我們能看出來,維度並不是完全對應事實例子的。

例子1:篩選出類別在[維度表]中的例子表資料。

in例子1 =

filter ( '例子', '例子'[類別] in values ( '維度'[類別] ) )

結果:

containsrow例子1 =

filter ( '例子', containsrow ( '維度', '例子'[類別] ) )

結果:

例子2:篩選出維度表與例子表同時存在的顏色。

in例子2 =

filter ( '維度', '維度'[類別] in values ( '例子'[類別] ) )

結果:

containsrow例子2 =

filter ( '維度', containsrow ( values ( '例子'[類別] ), '維度'[類別] ) )

結果:

例子3:與虛擬表搭配使用。

in例子3 =

var tll =

summarize ( '例子', '例子'[類別], "日期", calculate ( max ( '例子'[日期] ) ) )

return

filter ( '例子', ( '例子'[類別], '例子'[日期] ) in tll )

結果:

containsrow例子3 =

var tll =

summarize ( '例子', '例子'[類別], "日期", calculate ( max ( '例子'[日期] ) ) )

return

filter ( '例子', containsrow ( tll, [類別], [日期] ) )

結果:

從上面的三個例子我們能看出,in運算子與containsrow函式除了語法上的差別,其結果並沒有太大的出入;

值得注意的是,當多列進行判定時,一定要保證被比較的表與比較值的專案數相對應,比如表中是3列,提供的比較值是2列,這樣的話結果會報錯或者無法得到結果。

小夥伴們❤get了麼?白茶會不定期的分享一些函式卡片(檔案在知識星球[powerbi丨需求圈])這裡是白茶,乙個powerbi的初學者。

函式週期表丨資訊丨值丨CONTAINS

contains函式 contains函式,隸屬於 資訊 類函式。用途 適用於多列條件判定。流景大佬提過,這個函式有點落後了,但是白茶覺得這個函式相對於其他多列判定而言,更容易被理解。語法 dax contains 表 被比較的列 比較值 被比較的列 比較值 引數表 可以是現有列,也可以是表示式。被...

函式週期表丨資訊丨值丨ISONORAFTER

isonorafter函式 isonorafter函式隸屬於 資訊 類函式。這個函式的出場率並不是特別高,其效果類似於start at的行為,屬於冷門函式之一。用途 可以用來劃定範圍。語法 dax isonorafter 值1 值2 排序 值1 值2 排序 引數值1 可重複 與第二引數進行對比的表示...

函式週期表丨資訊丨值丨資訊類函式

資訊類函式 這一部分函式,屬於用法比較簡單的資訊類函式,沒有什麼太大的說道,通常可以用在任意一種邏輯表示式。結果返回都是true或者false。用途 用來判定各種資料型別。isblank dax isblank 值 作用 判定值是否為空白。iserror dax iserror 值 作用 判定值是否...