列運算 DAX表操作基礎第二招 增加列

2021-10-25 13:26:28 字數 1838 閱讀 9824

在現有**基礎上新增一列,最基本的做法,是使用列工具中的新建列:

簡單實用,就是我們常說的計算列,計算列在模型設計時的作用也很重要,有些逐行生成的值需要固定下來,不再變化的我們就可以使用計算列。

最初接觸這個函式,大多是學習dax查詢的時候,我們要在excel中做乙個鏈回表,應該算乙個實體表吧,經常看到這樣的寫法:

我們把這句放到excel表中的dax查詢:

就會生成乙個這樣的表,這個表再連線到power pivot中就是鏈回表。鏈回表的應用也很廣泛,從明細表到統計表這個過程,我們就可以使用dax查詢的方式,計算出統計結果,再鏈回到模型為下一步的運算做準備。

直接運用addcolumns函式生成列的時候通常不會改變資料表的行的數量,原來多少行,新增列之後還是多少行,如果在addcolumns函式的第一引數上使用了crossjoin函式、或者summarize函式,或者其他篩選函式,就會對原表的行進行修改,通常都是減少行數。

summarize函式能夠像addcolumns函式一樣實現新增列的運算,summarize函式是在去除指列的重複項之後新增列,所以功能上還是有區別的。

表1_2是鏈回表,我們用addcolumns函式新增了合計列的表,重新連線到模型中,summarize函式直接對名稱列做了去重複,然後對合計列做運算,同時去掉了其他沒有選擇的列。summarize函式生成的表更像我們在excel中的資料透視表。當然也和資料透視表一樣,你選擇的列越多,顯示的細節越多,表的行數越多,列數越少,越概括,行數越少。

我們同樣可以使用dax查詢讓結果顯示在excel**中,或者,顯示在power bi desktop的表中:

power bi desktop我沒修改資料,所以顯示的行數多,excel中的資料b變成a所以顯示行數少。

summarizecolumns函式與summarize函式很接近:

第一引數由原來的表,直接變成去重複的列,雖然函式名稱複雜了點,但是使用方法比summarize函式更簡潔。

summarizecolumns函式與summarize函式是對原表的統計,當然addcolumns函式也能完成這樣的統計,需要與values函式、crossjoin函式配合。

如果是多列的去重複統計,就要使用crossjoin函式了。

我們在dax學習過程中,dax studio這個工具是必備的工具

有了這個工具,可以非常方便的檢視計算的中間結果,很直觀,用來排錯特別方便。

好了,表操作增加列就介紹到這裡。

python基礎04 列表操作

資料型別 列表,列表也是序列式的資料型別,跟字串一樣,支援下標和切片操作,但列表跟字串不同的是它是可變型別,這個資料型別在後續我們程式設計中用的非常的多,比如將讀出的ip放到列表中,然後讀取執行,這些後續我們寫實際指令碼時再說,我們先從最基礎的,如何建立列表開始 1 建立列表方式,一種是用,一種是用...

python基礎二 列表簡介

知識點 列表定義 表示初始化,引用,刪除,插入,新增,組織,修改,訪問 列表常見操作 列表意義 列表可以在乙個地方儲存成組的資訊,可以包含幾個或數百萬個元素不等。是python最強大的功能之一。定義 列表由一系列按照特定順序排列的元素組成。初始化 利用range和list完成初始化。num trai...

Python基礎學習筆記二(列表)

本文繼續python基礎進行學習,內容接連上篇文章 python基礎學習筆記一 變數和資料型別 希望我的經驗可以幫到大家!注 文中例項均於jupyter notebook下編譯。列表是python中內建有序可變序列,列表的所有元素放在一對中括號 中,並使用逗號分隔開,如果你讓python將列表列印出...