《The Definitive Guide to DAX》說話很嚴謹,所以會使用标量值這個詞。
标量:不考慮方向的量,比如60元,30克,5升,60Km/h,"孫興華","sunxinghua"
問:考慮方向的量是什麼量?
答:學物理的時候,很多數值既要由大小(單位),又要由方向才能完全确定,而這些叫矢量。對你來說,你沒必要在DAX課程中研究這些,凡是你工作中能接觸到的,你分不清它是标量還是矢量那就都是标量。凡是能用到矢量的人都懂這些,不懂的就是用不到。
二、DAX中單行單列的表可以用标量值輸出單行單列:就是一個單元格現在有一張表,表名是'Sheet1':
一共6位UP主,有些UP主隻做一家媒體,有些做多家媒體建立度量值:媒體數量 = COUNTROWS('Sheet1')
由于我這張表,每個人對應的網站并沒有重複,如果你的表是這樣的情況:
我們在統計時,就要考慮去重問題,這時就用到了上節課學到的知識:媒體數量1 = COUNTROWS(Values('Sheet1'[網站]))媒體數量2 = COUNTROWS(DISTINCT('Sheet1'[網站]))
上節課已經講過,這兩個函數在滿足實時參照完整性的情況下,效果是相同的。接下來我隻用Values舉例就好了,但你知道用DISTINCT效果相同
【2】顯示隻做一家網站的UP它做的是哪一家網站,實現下圖效果想實現這個功能我們需要先做一個測試:<1> 先新建一張表,我們隻篩選UP主是張三的表格表 = filter('Sheet1','Sheet1'[UP主]="張三")
【2】對這張表的網站列去重values表 = values('表'[網站])
現在得到1行1列的表了(不算表頭),那我們思考一下,什麼時候才能得到1行1列的表?答:當【媒體數量】=1時
如上圖,度量值我們可以寫成:【就我這個案例而言以下3個都可以】
返回唯一值 = IF(COUNTROWS('Sheet1')=1,VALUES(Sheet1[網站]))
返回唯一值 = IF(COUNTROWS(VALUES('Sheet1'[網站]))=1,VALUES(Sheet1[網站]))
返回唯一值 = IF([媒體數量]=1,VALUES(Sheet1[網站]))
《孫興華講PowerBI火力全開》筆記第16課.02.HASONEVALUE函數【判斷是否隻有一行數據】
我們将它配合IF語句來使用就可以了:
返回唯一值 = IF(HASONEVALUE(Sheet1[網站]),VALUES(Sheet1[網站]),"不僅一家")
返回唯一值 = IF(HASONEVALUE(Sheet1[網站]),VALUES(Sheet1[網站]))
《孫興華講PowerBI火力全開》筆記第16課.03.SELECTEDVALUE函數
SELECTEDVALUE(Sheet1[網站]) 如果這個列是唯一值,我們就返回它,否則返回空
返回唯一值 = SELECTEDVALUE(Sheet1[網站],"不隻一家")
返回唯一值 = SELECTEDVALUE(Sheet1[網站])
如果需要顯示每個人對應的所有網站怎麼辦?
《孫興華講PowerBI火力全開》筆記25課03.CONCATENATEX【将多個值連接到一起,以文本的形式輸出】
所有網站 = CONCATENATEX(VALUES(Sheet1[網站]), Sheet1[網站], ",")
總計欄看着很不舒服,想讓它顯示為空,安排:
《孫興華講PowerBI火力全開》筆記25課04.【案例】CONCATENATEX綜合案例
所有網站 = IF(HASONEVALUE('Sheet1'[UP主]),CONCATENATEX(VALUES(Sheet1[網站]), Sheet1[網站], ","))
想讓總計不顯示的通用方法,就是IF HASONEVALUE,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!