關於數據分析工具的終極問題 (Excel、PowerBI/Tableau、R/Python)
昨晚在CPDA微課堂做了場直播,聊了一個終極問題,也是很多人在關注的話題。 我把內容整理下來供讀者們閱讀、質疑和思考。 (全文長6000多字)
-----------------------------
各位好,我是馬世權,感謝大家抽出週末的寶貴時間,參加此次直播。 相信大家來到這裡也是同一個學習目的,就是掌握一些創新的技術知識,並且利用他們來增強自己的實力。 那我就不多囉嗦了,直奔今天的主題,先給大家做個分享,再多留一些給大家提問交流的時間 。
今天我想分享的是一個非常重要的話題,就是關於數據分析工具,這也可能會影響到大家的職業發展路線。 因為選擇一個工具開始學習是要花很多學習成本的。 如果不清楚這款工具會給你帶來什麼價值,就盲目開始學,很有可能誤入歧途。
PowerBI這個產品上線了大概兩年多的時間,其實我也是在一年多以前才開始接觸它,先是百度各種搜索,又找了很多外文的資料,但一開始就有一個很大的疑惑,就是市面上的數據分析工具有這麼多,它跟其他的工具相比有什麼區別? 哪個更好? 比如常見的一個問題 PowerBI與R、Python語言相比 哪個更強? 我應該學習哪個?
雖然這個問題有點俗套,但是很重要。 我也一直努力在追求這個終極問題的答案。 如果大家在網上去搜索這方面相關的訊息,你又很難看到一個公平的觀點。 因為評價某一個工具的好壞評論者都可能站在不同的角度,帶上一些個人的感情色彩或者是站在利益相關方的角度,比如我比較擅長用PowerBI,講PowerBI課程,那平時就會更傾向於講PowerBI的優勢。
所以,我今天想拋開這些個人色彩的東西,力求客觀地與大家淺談一下我個人對市面上幾款數據分析工具的看法,供大家參考。 我共選了三類工具, Excel是第一類,PowerBI/Tableau BI工具是第二類, 第三類是程式設計類語言,R和Python。 (其實之前在設計今天的演講話題的時候,還放了一個SQL語言但後來把它拿掉了,因為我覺的SQL是查詢語言,它是與資料庫交流必備的工具,不能算作數據分析語言。 如果大家對它有疑惑,咱們可以在後面的交流中聊聊)
現在就開始聊聊剛才說的三類工具吧。
一、Excel
咱們先講講Excel,數據科學家在用,不懂數據的人也會用。 它可以說是無人不知,無人不曉。 如果與其他幾個工具放在一起, Excel、PowerBI/Tableau、R和Python,我們把這些都比作軍事戰鬥武器的話,Excel絕對是航空母艦,因為它的體系太龐大了。 從簡單的表格製作,數據透視表,寫公式,再到VBA語言,還有無數的外掛程式供你使用。

比如我之前在的一家公司里學習過使用一種外掛程式,叫@Risk,不知道大家有沒有聽過,沒聽過也沒關係,我用到這個外掛程式的功能叫,MonteCarlo 蒙特卡洛分析,是一種統計類比方法。 這個詞是來源於摩納哥一個城市賭城Monte Carlo。 如果大家出國去一些賭場,也可能會看到MonteCarlo這個詞,我找了張照片,這是大概兩年前在吉隆坡雲頂賭場,也是馬來西亞唯一合法的賭場,當時路過的時候看到有個門口寫著Monte Carlo。 哎,這不正是我用過的Excel外掛程式功能嗎? 就拍了張照片作為留念。

簡單的舉個例子關於MonteCarlo,你可能會做一個分析模型,做一些假設,比如不同情境下的收入、成本、獲利率多少,如果你想求不同情境下發生的可能性,就可以用到這類外掛程式做類比。 模擬的過程就好像,扔硬幣一樣,正面、反面,當你扔硬幣的次數非常多的時候,這個正面或者反面的概率就會接近二分之一。
這是非常強大的一個統計計算,也是基於我使用到過的一款Excel外掛程式,但這對於Excel的外掛程式來講只是冰山一角,我們聽過的外掛程式還有PowerBI,包括PowerQuery、PowerPivot、PowerView、PowerMap,以及市面上還有更多無數的第三方開發的外掛程式可以裝載到Excel裡使用。
所以,Excel 不僅是一個武器,更像是航空母艦,它是一個載體,可以按照你的需求來配備各種高級的武器。
Excel 第二個最強大的地方是,它的客戶群體是世界第一。 地球人都知道,以致於我在PowerBI的課程中講一些用法的時候,都會聯繫到Excel里是怎樣操作的。 比如介紹在PowerBI中如何做"合併查詢"或者"關聯",這幾個詞第一次聽你可能不知道是什麼含義,但如果我說他們的功能比較像Vlookup,很多人就馬上明白意思了。
交流經驗用Excel的方式來舉例,別人與你探討數據,發的檔可能大多也是Excel格式的。 從這個角度來講,因為使用人群非常多,Excel可以說是已經成為了一種工具語言。
當很多人問,我想轉行做數據分析,但是我只會用Excel,不會其他的工具,能不能做數據分析呢? 其實你連Excel都會,轉行做數據分析真的是再完美不過了。
當然也有人認為自己非常精通計算機程式設計語言,不屑於使用Excel這種工具,我也有聽到過很多人講Excel不能處理大數據這類抱怨的聲音。 但換個思維想想,除了不能處理大數據這一條以外,還有什麼Excel不能做的呢? 這個局限的大數據,又是指多大呢? 我們在日常中用到的數據是否超過了這個極限呢?
在我看來,Excel屬於萬能型的選手,解決小數據當然最適合,加上外掛程式也可以處理到百萬、千萬、甚至億行級的數據。 所以對於有抱怨Excel想法的人,我希望你可以多花些時間瞭解Excel。
有些事情我們很可能還沒有看得全面就下了定論,就好像我用了這麼多年Excel,近兩年才聽說過還有Power系列的外掛程式。 說不定你會跟我一樣,發現在做的很多事情,其實都可以在Excel中找到更快捷的解決方案。 只不過是不知道而已。 真的是一葉障目,不見泰山。
總結一下,基於Excel的強大的功能和它的用戶規模,我的看法是,它是必備工具,我可以不用PowerBI、Tableau、以及其他類型的工具,但是真的不能沒有Excel。
二、BI工具
我們來講講BI工具吧。 BI,Business Intelligence 商業智慧,這是為了數據分析而生的,它誕生的起點就非常高,目標是把從業務數據到經營決策的時間縮短,如何利用數據來影響決策。
而我們看Excel的產品目標不是這樣的,Excel可以做很多事情,你用Excel可以畫一張課程表,做一份調查問卷,當作計算機來算數,甚至還可以用來畫畫,用VBA寫個小遊戲,這些其實都不是數據分析功能。

我找了張Excel畫蝙蝠俠的圖片,網上這類Excel作畫的圖片有很多。 顯然,用PowerBI和Tableau你做不了這些事情,術業有專攻,BI是專攻數據分析的。
當你學習PowerBI的時候,你會發現它是完全按照數據分析的流程來設計的,先是PowerQuery數據處理,整理清洗,再到PowerPivot數據建模,最後數據可視化,展現圖表,用圖來講故事,發掘問題影響決策。 這些是數據分析的必經之路,同時這個流程裡面也存在著從業者的一些痛點:
- 比如清洗數據這種重複性,低附加值的工作,可以用PowerQuery簡單化,記錄工作步驟,來解決;
- 做數據透視分析,由於數據量很大,傳統Excel工具就很吃力,卡掉、死機。 PowerPivot可以解決這個問題,讓你隨心所欲地實現計算度量。
- 做圖形展現,用Excel可能會花費很多時間編輯圖表,包括顏色、字體的設定,甚至大家經常看到一些Excel技巧類的文章,實現一些精美的圖表需要花很多偏門的小技巧才能夠完成,而用PowerBI的圖表庫,可能一鍵就可以生成。
這些痛點都是BI工具能夠給我們帶來改變和增值的地方。

那麼再來談談PowerBI和Tableau相比較。
我是這樣看的,其實PowerBI和Tableau的核心本質是一樣的,這個核心就是Excel的數據透視表和數據透視圖。 它們都是通過拖拽欄位的方式,實現數據透視分析,並一鍵生成圖表。 這也是為什麼說如果你對Excel數據透視表很掌握,再去學習這兩門工具上手會很快。
Tableau可以說敏銳地發覺了Excel的這個數據透視特性,較早地切入了BI市場,把這個核心價值發揚光大了。 而PowerBI之前是以Excel外掛程式作為產品,受限於Excel本身這個航母,發展情況並不理想,於是從Excel的外掛程式中剝離出來,獨立成一門派,脫胎換骨。 但作為後來者,每個月都有反覆運算跟新,追趕速度非常快。
關於兩個工具相比較,聽到的觀點和優勢劣勢的比較分析也很多。 但我想說的是,對於微軟巨頭和Tableau這兩家實力型公司,在產品功能上的差別(比如Tableau介面操作可以實現不同時間軸對比,PowerBI沒有這個功能,需要間接的方式來操作;PowerBI可能有一種圖形、Tableau沒有),這些細微的差別可能只是時間差,預計未來也是你追我趕,互作標杆,這些其實都不是核心競爭力的東西。 核心競爭力是什麼呢? 我認為主要有兩點:
先講Tableau。

從發展歷史和當前的市場的一些反饋情況看,Tablueau在可視化方面更勝一籌,這個優勢我認為並不是圖表有多炫酷,而是它的設計、色彩、操作介面給人一種簡單,清新的感覺。 這一點的確是像Tableau自己所宣傳的,投入了很多學術性精力研究人們喜歡什麼樣的圖表,怎樣在操作和視覺上給消費者帶來極致的體驗。 此外,Tableau也在日趨完善,比如加入數據清洗功能和更多智慧分析功能。 這也都是Tableau可預計的產品發展優勢。
再看PowerBI,我個人選擇PowerBI的原因,是看好微軟的商業模式和產品的數據分析功能。 商業模式是軟體免費,這樣你不用擔心盜版、破解版的問題,因為正版都是免費的,這一點相比Tableau的動輒幾千元的售價實在是很有誘惑力。
另一方面是數據分析功能,就是PowerPivot,DAX語言,它可以讓我用類似Excel寫公式的方式,實現很多非常複雜的高級分析。 比如前些日子,有位朋友問我一個問題:
一張銷售訂單表,每一條都是一筆訂單,每種商品都有很多顧客購買,比如A商品,有的顧客買了1次,有的買了2次、3次... 我們想求購買2次以上的人數怎麼求呢?

我把答案寫在了圖上,你會發現只需要寫兩個簡單的度量值就可以完成。 這個公式的邏輯是先提取出不重複的顧客ID, 再篩選哪些顧客購買的次數是大於2次,如果>2次就計為1,最後再把這些1加總,求得想要的結果。
其實這種思考的方式與平時使用Excel做分析也是非常相同的。 而且我舉的這個例子,僅僅是一項比較簡單的應用,有很多複雜的分析,我們都可以寫DAX公式來完成,DAX,Data Analysis Expression 數據分析表達式 也是微軟的獨家專利。
以上是我認為PowerBI和Tablueau各家的看家本領,至於選擇哪個工具,就好像買手機一樣,你喜歡三星、蘋果還是華為呢? 根據大家能接受的成本、實際工作需要和個人風格偏好來選吧。 但無論哪個,BI工具都是未來的主流數據分析工具的方向。
三、R和Python
第三類工具,這是最難的回答的,也是我一直想要回答的終極問題。 主流的數據分析程式設計語言是R和Python, 那麼這類程式設計語言與PowerBI 這種BI工具相比又有什麼區別呢? 或者說PowerBI可不可以替代這些語言呢?

其實我個人並不精通這兩門語言,在工作中也基本用不到。 但前面我提到過,早在一年以前我就有這個關於Excel、BI與程式設計語言相比較的疑問,也把它列為我想要回答的終極問題。 我想即使我們不懂R、Phthon語言,平時工作不會接觸,我們也有必要瞭解不同工具的優勢劣勢,來決定自己是否需要擴大學習知識體系。
為了找到這個問題的答案,更接近真相,我在業餘時間也學習了些R、Python、機器學習、人工智慧方面的教程。 就以個人初淺的認知來談談吧:
先來講講相比較之下BI工具的優勢。
首先第一大優勢,PowerBI和Tableau都屬於傻瓜化操作工具,可視化的介面操作學習成本比較低,而程式設計語言是純寫代碼操作。 比如教你怎樣用Excel做一張數據透視表,選中數據區域插入數據透視表,拖拽你想要的欄位到行、列、值,再選擇值的計算方式是求和還是計數等等。 演示一遍,幾分鐘的時間你就能夠學會。
但是如何寫代碼來完成這項工作,可能要從語言的基礎開始努力學習一段時間才能記下來。 這就好比電腦系統,Windows出現以前是DOS系統,在黑屏介面上輸入代碼操作和滑鼠操作相比,對使用者的接受程度和學習門檻是完全不同的。
事實上,即使對於精通程式設計語言的人群,大家也非常喜歡用可視化介面的工具。 比如我們需要修改一列數據的格式,把數值類型變成日期,在PowerQuery里,點擊一下就完成了,更重要的是,你能夠看見這一列的數值變成了日期,這種用戶體驗,是更優越的。
所以為什麼說PowerBI可以讓人人成為數據分析師這件事成為可能呢? 其實就是這個道理,學習門檻不高。
第二個PowerBI工具的優勢是靈活性
如果你剛剛學習PowerPivot,創建度量值,你就會發現度量值的神奇,它被稱作移動的公式,建立了一次以後就可以無限量的重複利用在各個場景,調整時間軸,選中不同的城市,就可以迅速得到對應的時間和對應城市的計算結果。
這一招PowerBI對於程式設計語言可以說是致命一擊。 這種差別通俗地來講,利用PowerBI做的數據透視表是"動態"的,而程式設計語言生成的表是"靜態"的。
------------------
補充說明: 有些朋友對我使用的"動態"和"靜態"這兩個詞有些質疑,我在這裡插入個解釋說明。 舉個例子,之前曾寫過一篇關於帕累托分析的文章,最實用的帕累托分析範本,比如按照70%、20%、10%的銷售額比重把產品分為ABC三個類別,選擇不同的城市 (北京、杭州、上海),分類(酒類、咖啡、飲料),時間(年份月份),顯然都會得到不同的產品清單,70%、20%、10%的銷售額比重計算也是不同,ABC的分類結果自然也是隨之變化。 這裡的動態是指在PowerBI中只需要寫一個公式,該公式可以基於不同的選項可以得到不同的答案。

-------------------------
動態的方式非常適合回答商業分析問題,因為商業分析經常會有很多變化的問題:
比如環比怎樣? 同比怎樣? 當前時間段與某一特定時間段比較如何? 哪些產品有增長? 不同的城市經營狀況如何? 這種多維度多問題的分析,利用PowerBI來回答,只需要切片器調整,同一個度量值公式就可以得到不同的結果。 而在R、Python這類程式設計語言中操作,你需要反覆修改代碼,才能完成。
接下來,再來講講Excel和BI工具的局限性。 雖然這些軟體的設計已經盡最大努力考慮到大部分數據分析的應用場景,但本質上他們都是定製化的,如果沒有設計某一項功能,或者開發某項功能的按鈕,很有可能你就不能完成你的工作。 對於這一點,程式設計語言就不一樣了,語言是非常強大非常靈活的,你可以隨心所欲地寫代碼執行你想要的東西。 比如R和Python語言,作為數據科學家的必備工具,從職業高度上講,這絕對是高於Excel、PowerBI工具的。
那麼有哪些應用場景,R/Python 可以做,而Excel和PowerBI比較難實現呢? 我想到兩點:
第一、專業的統計分析
以R語言來講,它最擅長的是統計型分析,比如求正態分佈,利用演算法歸類聚群,回歸分析等。 這種分析就好比把數據當做一種實驗品,它能夠幫助我們回答的問題:
比如數據的分佈情況,是正態分佈、三角分佈還是其他類型的分佈? 離散情況如何? 是否在我們想要達到的統計可控範圍內呢? 不同參數對結果的影響的量級是多少? 以及假設性類比分析,如果某一參數變化,會帶來多大的影響? 我想基於這些功能,也是為什麼R會成為數據科學家的工具吧,它是以科學的視角來看待數據。
不過,對於統計分析場景、假設性類比分析這種應用,在前面提到的做Monte Carlo分析的類似外掛程式也可以實現,所以就像前面所說的,Excel是萬能型選手,它也可以實現專業級的統計分析,可能這個前提是數據量不是特別大的情況下。
第二個程式設計語言的優勢是,個體預測分析
比如我們想要預測一位消費者的行為,他會在我們的店裡停留多長時間,消費多少,或者通過一個人的淘寶消費記錄判斷他的個人信用情況,制定貸款額度;再或者根據你在網頁上的瀏覽記錄,推送不同的商品。 這也是涉及到目前比較火的機器學習、人工智慧概念。
對於個體的預測分析,這方面BI工具是做不到的。 當然,微軟也有針對機器學習方面的工具,叫Azure Machine Learning,是可以不需要精通程式設計語言就可以上手機器學習的軟體,但這又是另一款工具,另一個領域了。
以上的對比說明了幾個軟體的差別,我想總結的是,存在即合理。 ExcelBI程式設計語言,這些工具在應用上有交叉重疊的地方,也有互補的地方。 對於重疊的地方,無論是哪種工具,只要你能利用它解決你遇到的問題,它就是最棒的。
- 如果你會用R語言繪製一張圖表,用Excel也能繪製出同樣的,那麼它們在這張圖表的價值就是一樣的。
- 如果你用Excel可以做的更快,那就是Excel超越了R。
- 如果你用Excel分析出業務發展的動向,影響了管理層的商業決策,這就是最高價值的體現。
反過來講,即使你精通Excel、精通各類計算機程式設計語言,但最後做出來的數據分析沒有達到影響業務決策的目的,再多的知識也只是工具知識,並沒有發揮出它的最終目的。
最後總結一下,選擇哪個工具,首先要瞭解你自己的工作,是否會用到我剛才提到的那些應用場景。 或者想想你的從業方向,是朝著偏重數據的數據科學方向發展,還是偏業務的商業分析方向。
我今天分享的部分就先講到這裡,希望個人的一些見解能夠給大家一些啟發。 各位朋友如果有不同的看法或者想法也非常歡迎與我探討。 接下來的時間我來看看大家有沒有什麼問題,我盡量一一解答。
