HASONEFILTER函數(shù)與HASONEVALUE函數(shù)
嚴(yán)格來說,HASONEFILTER函數(shù)與HASONEVALUE函數(shù)屬于“篩選判斷”類函數(shù),隸屬于“值”函數(shù),當(dāng)符合條件時(shí),結(jié)果返回TRUE或FALSE。
用途:通常用來去掉總計(jì)欄合計(jì)。
語法
語法1:
DAX=
HASONEFILTER(<列>)
等同于以下代碼:
COUNTROWS ( FILTERS ( <列> ) ) = 1
語法2:
DAX=
HASONEVALUE(<列>)
等同于以下代碼:
COUNTROWS ( VALUES ( <列> ) ) = 1
參數(shù)
列:必須是現(xiàn)有物理列,不能是表達(dá)式。
返回結(jié)果
TRUE或FALSE。
區(qū)別
二者用途基本上是類似的,
區(qū)別在于HASONEFILTER受直接篩選影響;
而HASONEVALUE受交叉篩選影響。
例子
模擬數(shù)據(jù):
這是白茶隨機(jī)模擬的一組數(shù)據(jù)。
例子1:
代碼1:
HASONEFILTER =
IF ( HASONEFILTER ( '例子'[類別] ), SUM ( '例子'[數(shù)據(jù)] ), BLANK () )
代碼2:
HASONEVALUE =
IF ( HASONEVALUE ( '例子'[類別] ), SUM ( '例子'[數(shù)據(jù)] ), BLANK () )
結(jié)果:
當(dāng)二者同處于參數(shù)上下文環(huán)境中,作用是一致的,就是去掉總計(jì)欄總計(jì)。
在這個(gè)上下文中,難以分辨二者的區(qū)別,換個(gè)上下文:
度量值白茶沒有任何修改,還是上面的兩組代碼,小伙伴們思考一下問題出在哪里呢?
思考一下!
1
2
3
......
二者的區(qū)別在于受到篩選影響不同:
1、HASONEFILTER函數(shù)只受到直接篩選影響。
在上述圖中,因?yàn)橹苯雍Y選條件[類別]并不在當(dāng)前上下文中,默認(rèn)篩選條件為空,因此HASONEFILTER返回結(jié)果為FALSE。
2、HASONEVALUE函數(shù)受到交叉篩選影響,且判斷當(dāng)前列是否存在唯一值,存在則返回TRUE,否則返回FALSE。
因?yàn)槭艿浇徊婧Y選影響,此上下文中[組別]篩選效果等同于[類別],且只有“鞋組”是唯一值,所以呈現(xiàn)結(jié)果為14;
同理受到交叉篩選影響,此上下文中[日期]篩選效果等同于[類別],且每一個(gè)都是唯一值,所以呈現(xiàn)所有數(shù)據(jù)。
小伙伴們?GET了么?
白茶會(huì)不定期的分享一些函數(shù)卡片
(文件在知識(shí)星球[PowerBI丨需求圈])
這里是白茶,一個(gè)PowerBI的初學(xué)者。
