我們上一篇數(shù)據(jù)可視化:教你打造升職加薪的報表教大家如何制作清晰美觀的報表以及相應(yīng)技巧,但是報表是結(jié)果的呈現(xiàn),并不是數(shù)據(jù)分析的過程。
數(shù)據(jù)分析師更多用到的報表是BI。
BI全稱商業(yè)智能(Business Intelligence),在傳統(tǒng)企業(yè)中,它是一套完整的解決方案。將企業(yè)的數(shù)據(jù)有效整合,快速制作出報表以作出決策。涉及數(shù)據(jù)倉庫,ETL,OLAP,權(quán)限控制等模塊。
今天的學(xué)習(xí)我們只著重于數(shù)據(jù)分析過程,使用Power BI打造數(shù)據(jù)分析師DashbOArd報表。為了更好的學(xué)習(xí)和實踐,我們依舊會使用數(shù)據(jù)分析:手把手教你Excel實戰(zhàn)的數(shù)據(jù)進行操作。這是做出的簡單作品。
圖1 簡單作品
如果你還沒有數(shù)據(jù),請在會話頁發(fā)送關(guān)鍵詞「練習(xí)數(shù)據(jù)」獲取下載地址。
Power BI在微軟官網(wǎng)有下載(注不注冊無所謂的),只需要下載Desktop桌面操作版,大小約120MB。暫時只推出Win版本。
大家如果在下載過程中出現(xiàn)CAB文件損壞錯誤,大概是某軟哪方面又出錯了,可以換瀏覽器下載,也可以下載中文繁體版。反正我是一直報錯。
為了方便大家偷懶,可以在會話頁發(fā)送關(guān)鍵詞「BI下載」獲取官網(wǎng)下載地址。
什么是Power BI
BI工具主要有兩種用途。一種是利用BI制作自動化報表,數(shù)據(jù)類工作每天都會接觸大量數(shù)據(jù),并且需要整理匯總,這是一塊很大的工作量。這部分工作可以交給BI自動化完成,從數(shù)據(jù)規(guī)整、建模到下載。
另外一種是使用其可視化功能進行分析,BI的優(yōu)點在于它提供比Excel更豐富的可視化功能,操作簡單上手,而且美觀,如果大家每天作圖需要兩小時,BI會縮短一半時間。
BI作為企業(yè)級應(yīng)用,可以通過它連接公司數(shù)據(jù)庫,實現(xiàn)企業(yè)級報表的制作。這塊涉及數(shù)據(jù)架構(gòu),就不深入講了。
Power BI是微軟家的。如果大家熟悉Excel,應(yīng)該會知道微軟推出的Power Query、Power Pivot、Power View和Power Map,是Excel上非常強大的四個插件。Power BI則是微軟將它們作為集合推出。
Power Query是用于數(shù)據(jù)提取、整合、搜索的插件。它偏向數(shù)據(jù)模型的建立,而不是單元格的使用。
Power Pivot是數(shù)據(jù)透視表的高級應(yīng)用,使用DAX能進行大量的科學(xué)計算。性能方面,比Excel函數(shù)要快兩個量級,百萬級的處理不成問題。
Power View是圖表的高級應(yīng)用,實現(xiàn)了過濾、聯(lián)動、拖拽等功能。
Power Map是可視化地圖。
如果大家熟練掌握以上四個插件,那么在Excel上也能實現(xiàn)部分BI。畢竟Excel是企業(yè)中人手一款的工具,和BI相比有輕量級的好處,雖然數(shù)據(jù)分析師需要掌握的工具更多。
BI的步驟
市面上有很多豐富的BI工具,Tableau,QlikView,BDP等,各有側(cè)重,也各有價格。但是操作過程都是相似的,大體分為五個步驟:數(shù)據(jù)源讀取、數(shù)據(jù)清洗、數(shù)據(jù)關(guān)聯(lián)、圖表制作、Dashboard整合。熟悉了其中一個,再學(xué)會另外的就不難。
因為我工作用的BI是私有化部署到服務(wù)器,直接連接生產(chǎn)環(huán)境的,演示不方便。所以才用Power BI演示,實際我也說不上熟練。
數(shù)據(jù)源讀取
我們打開Power BI,它會讓我們登錄,不用管它。
圖2 打開Power BI
界面和Office軟件比較接近。上面是操作工具項,左側(cè)欄是導(dǎo)航欄。
Power BI 的左側(cè)導(dǎo)航欄對應(yīng)三個模塊:儀表板、報表和數(shù)據(jù)集。儀表板或報表需要數(shù)據(jù)才能操作,我們先讀取數(shù)據(jù)集。
點擊工具欄的取得資料(奇怪的翻譯)。
圖3 取得資料
Power BI支持各類豐富數(shù)據(jù)源(市面上絕大部分BI都支持,只是讀取方式略有差異),除了Excel和CSV 文件,它還支持Acess、SQL數(shù)據(jù)庫、Hadoop/HDFS、Spark、第三方API等。
這是新手教程,連接CSV即可,選擇載入練習(xí)數(shù)據(jù)DataAnalyst。
圖4 載入練習(xí)數(shù)據(jù)DataAnalyst
這里可以針對數(shù)據(jù)編輯,先略過,選擇載入。
自動跳轉(zhuǎn)到數(shù)據(jù)報表頁,數(shù)據(jù)報表(Report)是數(shù)據(jù)規(guī)整和清洗過程。
大家還記得實戰(zhàn)篇中演示的數(shù)據(jù)清洗嗎?之前我們體驗了一遍Excel函數(shù)清洗的過程。這次需要用BI再進行一遍清洗。數(shù)據(jù)清洗是分析師最蛋疼且耗時持久的工作,沒有之一。
數(shù)據(jù)清洗
Power BI有一個高級功能叫DAX(Data Analysis Expressions),它是整個 Power BI 使用的公式語言。
DAX近似Excel函數(shù)(大多數(shù)第三方BI,函數(shù)均接近Excel),故它針對新手非常友好。如果大家已經(jīng)熟悉Excel函數(shù),上手速度會很快;旧虾瘮(shù)名字都一樣,如果不熟悉,可以查閱官網(wǎng)提供的文檔。
我們先清洗報表中的薪水salery,和實戰(zhàn)篇過程一樣,需要將其拆分成兩個新列,并且計算平均值。
圖5 清洗報表中的薪水salery,將其拆分成兩個新列
點擊模型項的新建資料行(這里的翻譯應(yīng)該不對,應(yīng)是column列,后文我都用列表示),此時新增加的列沒有任何內(nèi)容。我們需要做的操作就是以salery生成兩列。
圖6 以salery生成兩列
這里需要用到DAX。當(dāng)成函數(shù)使用它就行,不過Excel是單元格級別的引用,而DAX中的任何引用、計算、匯總等,都是以列為單位的。
='Table Name'[ColumnName]
這是最簡單的引用,Table Name是我們這張報表的名字,我載入的csv叫DataAnalyst,那么報表就叫做DataAnalyst,ColumnName是我們需要引用的列,名字叫做salary。下圖公式就是范例。
圖7 范例公式
如果表名中有空格,需要加引號,如果沒有則不需要。如果是跨表引用,TableName是必須的,否則只需要ColumnName。DAX支持自動填充,可以通過模糊輸入+回車快速輸入。
我說過它近似Excel,那么Excel加減乘除的習(xí)慣可以直接使用在上面。
='Table Name'[ColumnName1]+'Table Name'[ColumnName2]*3
接下來繼續(xù)清洗步驟,我們查找k所在的字符串位置。
=search("k", DataAnalyst[salary],1)
利用left函數(shù)截取工資下限。
=left(DataAnalyst[salary],search("k", DataAnalyst[salary],1)-1)
圖8 截取工資下限
搞定。資料行重命名為bottomSalery。接下來是工資上限topSalery,使用”-“截取的時候報錯了。
=search("-", DataAnalyst[salary],1)
檢查一下發(fā)現(xiàn)原來是有“10K以上”這類字符串。DAX查找不到“-”,這時需要返回一個出錯時表達的值。因為10k以上的描述無法確定工資上限,那么我們就把返回的值限定為bottomSalery。
在這里請記住,DAX的容錯性比Excel低,只要DAX中有一行返回Error,那么整列都是Error。我們需要用Iferror函數(shù)保證容錯性。
這里給出topSalary的計算,比較繁瑣。
topSalery = IFERROR(mid(DataAnalyst[salary],SEARCH("-",DataAnalyst[salary],1)+1,LEN(DataAnalyst[salary])-SEARCH("-",DataAnalyst[salary],1)-1),DataAnalyst[bottomSalery])
圖9 topSalary的計算
之后新建一列使用(DataAnalyst[bottomSalery]+DataAnalyst[topSalery])/2 計算該崗位的平均工資。
大家看到這里,是不是覺得DAX公式非常長?新手可以多增加輔助列來進行計算。
Excel中有比較方便的分列功能,那么Power BI中是否擁有呢?答案是肯定的,右鍵點擊列,選擇編輯查詢選項。
圖10 編輯查詢
這里依舊吐槽翻譯。分割資料行就是我們熟悉的分列功能。選擇自定義,用“-”即可完成分列(原始數(shù)據(jù)會被拆分,所以建議先復(fù)制一列)。
圖11 分割資料
實戰(zhàn)篇提到過,我們的北京數(shù)據(jù)是有重復(fù)值的,那么我們通過positionId這職位的唯一標(biāo)示,來刪除重復(fù)項。右鍵點擊移除重復(fù)項目即可。
我們再看一下查詢編輯的其他功能。
分組依據(jù)可以認為是數(shù)據(jù)透視表。可以選擇多個字段進行分組。對結(jié)果進行求和、計數(shù)等操作。
圖12 數(shù)據(jù)透視表
如果是訂單、用戶行為、用戶資料等大量數(shù)據(jù),一般會以分組形式進行計算。不同分組字段,會生成不同的維度,像范例中的城市、工作年限,教育背景都是維度,也是圖表的基礎(chǔ)。如果生成的維度足夠多,我們能利用維度組成數(shù)據(jù)模型,這是OLAP的概念。
除此以外,也能利用過濾直接篩選數(shù)據(jù)。我們選擇出含有數(shù)據(jù)分析、分析的數(shù)據(jù)。排除掉大數(shù)據(jù)工程師等干擾職位。
圖13 過濾直接篩選數(shù)據(jù)
這里支持多條件復(fù)雜邏輯篩選。
到這里,我們已經(jīng)完成實戰(zhàn)篇中的清洗過程中,我這次簡單化了。以上步驟都能通過右側(cè)的套用步驟還原和撤銷。這里不會出現(xiàn)bottomSalery這類列。
圖14 套用步驟還原和撤銷
之后選擇工具欄的關(guān)閉并套用,報表數(shù)據(jù)就會更新。最后數(shù)據(jù)2300多行。
通過數(shù)據(jù)查詢和報表DAX公式,我們就能完成數(shù)據(jù)清洗和規(guī)整的步驟。主要思路是:移除重復(fù)值、過濾目標(biāo)數(shù)據(jù)、清洗臟數(shù)據(jù)、數(shù)據(jù)格式轉(zhuǎn)換。
數(shù)據(jù)關(guān)聯(lián)
我們工作中會用到很多數(shù)據(jù),不可能依靠一張表走天下。若是在Excel中,我們經(jīng)常用Vlookup函數(shù)將多張表關(guān)聯(lián)匯總。Power BI則用拖拽關(guān)聯(lián)數(shù)據(jù),更方便。一般是先關(guān)聯(lián)再清洗。
因為我的數(shù)據(jù)只有一張表,用不到關(guān)聯(lián),以官網(wǎng)截圖為例。
圖15 拖拽關(guān)聯(lián)數(shù)據(jù)
很簡單,用拖拽將Product的manufactureId和Manufacturer的manufactureId關(guān)聯(lián),我們可以理解成做了vlookup引用,也可以想成SQL的Join。
分析會涉及到很多復(fù)雜因素,這些因素相關(guān)的數(shù)據(jù)不會安安靜靜給你呆在一張表里,而是不同的表,所以需要用到數(shù)據(jù)關(guān)聯(lián)。
數(shù)據(jù)關(guān)聯(lián)在學(xué)習(xí)到SQL后會更加清晰,這是SQL的核心概念之一。
圖表
進入圖表設(shè)計階段,點擊側(cè)邊欄第一個項。BI比Excel好的地方在于,它只要拖拽就能設(shè)計和生成。
圖16 圖表設(shè)計階段
點擊任一圖表,畫布上會自動生成圖形,要切換圖表類型直接點擊其他即可。我們把城市和平均工資拖拽到視覺效果下的欄目,它會自動生成圖表。不同圖表需要的維度、軸都不一樣,具體按提示進行。
圖17 自動生成圖形
視覺效果下有設(shè)計選項,可以將圖表調(diào)整的更美觀,這里不詳細介紹了。
點擊新增視覺效果(繼續(xù)吐槽翻譯),可以繼續(xù)在畫布上增加圖表。絕大部分BI,都是支持聯(lián)動的,所謂聯(lián)動,通俗講,就是點擊圖表上的維度元素,其他數(shù)據(jù)也會按此維度相應(yīng)變化。
圖18 新增視覺效果
上圖就是一個很好的聯(lián)動例子,點擊城市維度的北京,其他圖表都變了,平均工資由14.23變成15.23。而學(xué)歷則變成突出顯示,顯示出了北京的博士們薪水遠高于平均水準(zhǔn)。
圖表聯(lián)動帶來更好的數(shù)據(jù)洞察,將不同數(shù)據(jù)維度的組合和選取,為分析師帶來決策能力的提升。當(dāng)然我最喜歡的特點之一是省時間。
通過不斷的圖表組合,就能生成數(shù)據(jù)分析師自己的分析畫布。這塊畫布叫作Dashboard。當(dāng)然圖表好看與否,就取決于分析師的設(shè)計品味了(這個我教不了你們,哈哈)。
圖19 分析畫布
如果維度過多,大家可以插入視覺選項中的交叉篩選器,添加過濾功能,常用于精細化的分析,例如時間維度。圖表右上角按鈕,還能選擇導(dǎo)出數(shù)據(jù),導(dǎo)出一份該圖表的csv數(shù)據(jù)。
我們也能將其發(fā)布到網(wǎng)上,作為同事和企業(yè)間協(xié)作,或者手機端瀏覽數(shù)據(jù)用。當(dāng)然這里需要注冊賬號,就看大家意愿了。
更多功能留待大家學(xué)習(xí),到這里,Power BI的新手教程就結(jié)束了。我列舉了常用的功能,不知道大家有沒有從Excel圖表水平躍升到一個新階段,大家可以自己拿數(shù)據(jù)做圖表報告作為分析師行業(yè)的敲門磚。如果還有疑問,就借助官網(wǎng)文檔學(xué)習(xí),BI作為一個領(lǐng)域,它值得數(shù)據(jù)分析師深入。
以下是一些補充:
范例
因為時間的關(guān)系,我沒有講解更多的樣式設(shè)計內(nèi)容。大家可以去官網(wǎng)下載范例,含有原始數(shù)據(jù)練習(xí)。主要是學(xué)習(xí)他人的報表匯制思路。
圖20 報表匯制范例
另外Power BI的圖表偏少,類似標(biāo)靶圖、箱線圖都沒有。不過官網(wǎng)有各類圖表下載。搜索pbiviz即可,沒有中文。
圖21 Power BI的圖表
R集成
Power BI在它內(nèi)部已經(jīng)集成了R語言,沒錯,就是統(tǒng)計學(xué)中的R語言。如果你覺得視圖功能還不夠強大,那么我們可以利用R來繪制圖表,甚至借助R做回歸分析等。當(dāng)然R是第七周的內(nèi)容。這里只以官網(wǎng)截圖為例。
圖22 利用R來繪制圖表
數(shù)據(jù)更新
BI很重要的一個功能是數(shù)據(jù)更新,它是報表自動化的基礎(chǔ),它通常和SQL關(guān)聯(lián)。我們使用CSV,只能往里面黏貼數(shù)據(jù)更新,還是繁瑣了些,只屬于半自動化。這將在學(xué)會SQL后解決。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:數(shù)據(jù)可視化:手把手打造BI
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10820620459.html