3.6 將表用作標(biāo)量值

第3章 使用基本表函數(shù)

將表用作標(biāo)量值

盡管VALUES是表函數(shù),但由于DAX的特殊功能塘辅,我們經(jīng)常使用它來計(jì)算標(biāo)量值:具有單行和單列的表可以當(dāng)作標(biāo)量值使用。想象一下,我們產(chǎn)生了如圖3-13所示的報(bào)告膳算,報(bào)告了按類別和子類別劃分的品牌數(shù)量。

圖3-13 報(bào)告顯示了每個(gè)類別和子類別可用的品牌數(shù)量

可能還需要在個(gè)數(shù)旁邊查看品牌名稱弛作。一種可能的解決方案是使用VALUES檢索不同的品牌涕蜂,不是進(jìn)行計(jì)數(shù),而是返回它們的品牌名映琳。只有在品牌只有一個(gè)值的特殊情況下机隙,才有可能這樣做。實(shí)際上萨西,在這種情況下有鹿,可以返回VALUES的結(jié)果,而DAX會(huì)自動(dòng)將其轉(zhuǎn)換為標(biāo)量值谎脯。為了確保只有一個(gè)品牌葱跋,需要使用IF語句保護(hù)代碼:

 Brand Name :=
IF (
    COUNTROWS ( VALUES ( Product[Brand] ) ) = 1,
    VALUES ( Product[Brand] )
)

結(jié)果在圖3-14中可見。當(dāng)“品牌名稱”列為空時(shí)源梭,表示存在兩個(gè)或更多不同的品牌娱俺。

圖3-14 當(dāng)VALUES返回單行時(shí),我們可以將其用作標(biāo)量值废麻,就像在Brand Name度量值中一樣

Brand Name 度量值使用 COUNTROWS 來檢查 Products 表的 Color 列是否僅選擇了一個(gè)值荠卷。因?yàn)榇四J皆贒AX代碼中經(jīng)常使用,所以有一個(gè)更簡單的函數(shù)可以檢查列是否只有一個(gè)可見值:HASONEVALUE烛愧。以下是基于 HASONEVALUEBrand Name 度量值的更好實(shí)現(xiàn):

Brand Name :=
IF (
    HASONEVALUE ( 'Product'[Brand] ),
    VALUES ( 'Product'[Brand] )
)

此外僵朗,為使開發(fā)人員的更輕松,DAX還提供了一種功能屑彻,該功能可自動(dòng)檢查列是否包含單個(gè)值,如果包含顶吮,則將其作為標(biāo)量返回社牲。如果有多個(gè)值,則還可以定義要返回的默認(rèn)值悴了。該函數(shù)為SELECTEDVALUE搏恤。先前的度量也可以定義為

Brand Name := SELECTEDVALUE ( 'Product'[Brand] )

通過包含第二個(gè)可選參數(shù),可以提供一條消息湃交,指出結(jié)果包含多個(gè)結(jié)果:

Brand Name := SELECTEDVALUE ( 'Product'[Brand], "Multiple brands" )

最新度量值的結(jié)果在圖3-15中可見熟空。

圖3-15 如果Brand Name列有多行,則SELECTEDVALUE返回默認(rèn)值

如果不是要列出 “Multiple brands”這樣的信息搞莺,而是要列出所有品牌怎么辦息罗?在這種情況下,一種選擇是迭代Product [Brand]的VALUES并使用CONCATENATEX函數(shù)才沧,即使存在多個(gè)值迈喉,該函數(shù)也會(huì)產(chǎn)生良好的結(jié)果:

[Brand Name] :=
CONCATENATEX (
    VALUES ( 'Product'[Brand] ),
    'Product'[Brand],
    ", "
)

現(xiàn)在绍刮,結(jié)果包含用逗號(hào)分隔的不同品牌,而不是籠統(tǒng)的消息挨摸,如圖3-16所示孩革。

圖3-16 *CONCATENATEX* 用連接表達(dá)式從表中構(gòu)建字符串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末得运,一起剝皮案震驚了整個(gè)濱河市膝蜈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熔掺,老刑警劉巖饱搏,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瞬女,居然都是意外死亡窍帝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門诽偷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坤学,“玉大人,你說我怎么就攤上這事报慕∩罡。” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵眠冈,是天一觀的道長飞苇。 經(jīng)常有香客問我,道長蜗顽,這世上最難降的妖魔是什么布卡? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮雇盖,結(jié)果婚禮上忿等,老公的妹妹穿的比我還像新娘。我一直安慰自己崔挖,他們只是感情好贸街,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狸相,像睡著了一般薛匪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脓鹃,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天逸尖,我揣著相機(jī)與錄音,去河邊找鬼。 笑死冷溶,一個(gè)胖子當(dāng)著我的面吹牛渐白,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逞频,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纯衍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苗胀?” 一聲冷哼從身側(cè)響起襟诸,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎基协,沒想到半個(gè)月后歌亲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡澜驮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年陷揪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杂穷。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悍缠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耐量,到底是詐尸還是另有隱情飞蚓,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布廊蜒,位于F島的核電站趴拧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏山叮。R本人自食惡果不足惜著榴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屁倔。 院中可真熱鬧兄渺,春花似錦、人聲如沸汰现。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞎饲。三九已至,卻和暖如春炼绘,著一層夾襖步出監(jiān)牢的瞬間嗅战,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驮捍,地道東北人疟呐。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像东且,于是被迫代替她去往敵國和親启具。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354