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

2021-10-14 02:04:34 字數 3712 閱讀 3749

isonorafter函式

isonorafter函式隸屬於「資訊」類函式。這個函式的出場率並不是特別高,其效果類似於start at的行為,屬於冷門函式之一。

用途:可以用來劃定範圍。

語法

dax=

isonorafter(《值1>, 《值2>[, 排序 [, 《值1>, 《值2>[, 排序]]…)

引數值1:(可重複)與第二引數進行對比的表示式;

值2:(可重複)與第一引數進行對比的表示式;

排序:(可選項可重複)用來排序使用,desc表示降序,asc表示公升序。

返回結果

true或者false

例子

輸入如下**作為模擬資料:

日期表 =

generate (

calendar ( date ( 2018, 1, 1 ), date ( 2020, 12, 31 ) ),

var da = [date]

var year =

format ( da, "yyyy" )

var quarter =

"季度" & format ( da, "q" )

var monte =

format ( da, "mm" ) & "月"

var day =

day ( da )

var weekid =

weekday ( da, 2 )

var you =

year ( da )

var tol =

format ( da, "mm" )

var tpo =

format ( da, "dd" )

var yearr =

format ( da, "yyyymm" )

return

row (

"年度", year,

"季度", quarter,

"月份", monte,

"日", day,

"年度季度", year & quarter,

"年度月份", year & monte,

"星期", weekid,

"索引", you & tol & tpo,

"年月", value ( yearr )))

如圖:

例子1:

isonorafter例子1 =

filter ( '日期表', isonorafter ( '日期表'[年度], "2019", desc ) )

結果:

按照降序的結果,返回為2023年到2023年的所有資料。

其實,白茶不太喜歡官方的描述,因為不好理解,按照白茶個人的理解就是尋找乙個點,降序就是取這個點前半部分的值,公升序就是取後半部分的值。

微軟官方解釋:

公升序是篩選第一引數大於等於第二引數的值;

降序是篩選第一引數小於等於第二引數的值。

例子2:

**1:

isonorafter例子2 =

var tl =

summarize ( '日期表', '日期表'[年度], '日期表'[月份], '日期表'[日], '日期表'[索引] )

return

filter ( tl, isonorafter ( [年度], "2019", asc, [月份], "04月", asc ) )

結果:

當出現兩組比較值的情況下,這個結果看起來比較迷,別急,我們再輸入一組**。

**2:

isonorafter例子3 =

var tl =

summarize ( '日期表', '日期表'[年度], '日期表'[月份], '日期表'[日], '日期表'[索引] )

return

filter ( tl, isonorafter ( [年度], "2019", asc, [月份], "04月", desc ) )

結果:

這段**返回結果是2023年1-4月,以及2023年的資料。

看到這,小夥伴們是不是很迷?

別急,聽白茶慢慢叨叨。

可能小夥伴們覺得返回結果應該是只有2023年1-4月的資料,而不是包含2023年的資料;

這樣和白茶最初的理解差不多,覺得這個函式是類似於and的效果,當二者都正確時返回true,但是這個函式不是這樣的。

先來看看例子2中的**1:

白茶將這段**拆分成兩部分:

在1這段**中,返回結果應該是按照公升序排列的結果,也就是2023年到2023年的資料;

2這段**返回的結果是按照公升序的結果,返回的是4月之後的資料;

先排序,再查詢,在2023年至2023年這個時間段中,2023年四月份為節點,那麼返回結果就是2023年4月至2023年的所有資料。

再來看例子2中的**:

依舊將其拆分成兩部分:

1的結果返回為2023年至2023年的資料;

2的結果返回為2023年4月至2023年1月的資料,不包含2023年4月之後的資料;

粉色和白色的線代表1的結果,黃線代表2的結果。

當1和2有交集的時候,那麼這段資料算在內,也就是2023年1月至2023年4月的資料,即正+正=正;

在1部分中,包含2023年4月至2023年12月,而2不包含這個時間段這部分資料,正+負=負,結果為負,因此這段時間省略不計;

從2023年1月開始的這段時間,包含在1中,而2的結果沒有計算這一部分,因此只有正,所以2023年計算在內,因此返回結果為2023年1月到4月加上2023年全年的這部分資料。

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

這裡是白茶,乙個powerbi的初學者。

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

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

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

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

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

in運算子和containsrow函式 in和containsrow函式隸屬於 資訊 類函式,二者除了語法上的區別,其效果是等同的。用途 適用於多列條件判定。相對於contains函式而言,二者的寫法和運算更為優化。注 二者執行完全相等的比較,空值不能等同於0。語法語法1 dax1 比較值 in 被...