新建列
在現有表格基礎上新增一列,最基本的做法,是使用列工具中的新建列:
簡單實用,就是我們常說的計算列,計算列在模型設計時的作用也很重要,有些逐行生成的值需要固定下來,不再變化的我們就可以使用計算列。
ADDCOLUMNS函式最初接觸這個函式,大多是學習DAX查詢的時候,我們要在Excel中做一個鏈回表,應該算一個實體表吧,經常看到這樣的寫法:
我們把這句放到Excel表中的DAX查詢:
就會生成一個這樣的表,這個表再連線到Power Pivot中就是鏈回表。鏈回表的應用也很廣泛,從明細表到統計表這個過程,我們就可以使用DAX查詢的方式,計算出統計結果,再鏈回到模型為下一步的運算做準備。
直接運用ADDCOLUMNS函式生成列的時候通常不會改變資料表的行的數量,原來多少行,新增列之後還是多少行,如果在ADDCOLUMNS函式的第一引數上使用了CROSSJOIN函式、或者SUMMARIZE函式,或者其他篩選函式,就會對原表的行進行修改,通常都是減少行數。
SUMMARIZE函式SUMMARIZE函式能夠像ADDCOLUMNS函式一樣實現新增列的運算,SUMMARIZE函式是在去除指列的重複項之後新增列,所以功能上還是有區別的。
表1_2是鏈回表,我們用ADDCOLUMNS函式添加了合計列的表,重新連線到模型中,SUMMARIZE函式直接對名稱列做了去重複,然後對合計列做運算,同時去掉了其他沒有選擇的列。SUMMARIZE函式生成的表更像我們在Excel中的資料透視表。當然也和資料透視表一樣,你選擇的列越多,顯示的細節越多,表的行數越多,列數越少,越概括,行數越少。
我們同樣可以使用DAX查詢讓結果顯示在Excel表格中,或者,顯示在Power BI Desktop的表中:
Power BI Desktop我沒修改資料,所以顯示的行數多,Excel中的資料B變成A所以顯示行數少。
SUMMARIZECOLUMNS函式SUMMARIZECOLUMNS函式與SUMMARIZE函式很接近:
第一引數由原來的表,直接變成去重複的列,雖然函式名稱複雜了點,但是使用方法比SUMMARIZE函式更簡潔。
SUMMARIZECOLUMNS函式與SUMMARIZE函式是對原表的統計,當然ADDCOLUMNS函式也能完成這樣的統計,需要與VALUES函式、CROSSJOIN函式配合。
如果是多列的去重複統計,就要使用CROSSJOIN函數了。
我們在DAX學習過程中,DAX Studio這個工具是必備的工具
有了這個工具,可以非常方便的檢視計算的中間結果,很直觀,用來排錯特別方便。
好了,表操作增加列就介紹到這裡。