Excel 到底有多厲害?

Mathematica 到底有多厲害? - Wolfram Mathematica
MATLAB 到底有多厲害? - 編程


作者:雨聲敲敲
blog:http://blog.sina.com.cn/rainssong
homepage:http://rainsgameworld.sinaapp.com/
weibo:http://weibo.com/rainssong
轉載請註明

Excel就像一把天山寒鐵淬鍊而成的殺豬刀,本身已經很厲害,但具體有多厲害取決於用它的人。

Excel最牛逼的地方在於它不是小李飛刀也不是軒轅劍——需要練個10年8年才能用,它只是一把菜刀,老百姓可以用來切菜,高手可以用來刮鬍子,絕世高手拿著直接從南天門一直砍刀蓬萊東路。

////////////////////////////////////////////////
要你命1000:數據管理
////////////////////////////////////////////////
表格是什麼?表格就是數據容器,對於非IT人士來說,這輩子可能都不會用資料庫,但是!Excel讓每個人都可以管理資料庫了!其提供的基本功能足以完成大部分數據管理統計工作。

(進度條效果:http://jingyan.baidu.com/album/09ea3ede275d8ac0aede39bb.html)
打個比方,同事拿到全國資料開始挨個數每個省有多少個客戶數了半個小時,而你只是點了兩下滑鼠就完成了工作。沒錯,在同事眼裡你就是那個百年難得一見的練武奇才(以後就可以承擔更多工作了,可喜可賀)!

////////////////////////////////////////////////
要你命2000:數據處理(函數)
////////////////////////////////////////////////
別人向你扔屎,你可以躲。客戶扔給你屎,你只能接住!比如這種屎:

這種亂七八糟表格是沒有任何數據意義的,如果只有三坨,動手處理一下就好了,如果有100坨,怎麼辦?不要緊張,我們只需要處理一行,其餘99行交給excel即可。。。

首先,數據-分列:

然後,直接查找替換,將沒用的天字去掉:

最後這個毛比較難以處理,動用函數:先找出具體數字,如果裡面有「毛」字,直接將結果乘以0.1,一個規範的表格就誕生了:

(如無特殊需要,最後帶漢字的D列可以用E列覆蓋掉)
======================================================================
Excel也可以為自己所用,再來舉一個例子:
時間管理。與一般時間管理App不同,因為我們可以自己設計研發,做出最適合自己的版本!Go
首先寫兩行

拖動一下右下角的小圓點

同理增加橫軸

填寫數據,編寫公式。這樣計算當天任務量:

=COUNTA(B2:P2)

這樣計算完成量

=SUM(B3:P3)

這樣計算完成度

=Q3/Q2

最後完成度那裡設置單元格格式-數字-百分比。最後填寫數據。最終效果圖(點擊看大圖):

只要三個函數,每天的工作生活一覽無遺!
P.s 還可以拓展一些功能,比如當天完成度到達xx就有獎勵/懲罰之類

總結:掌握了函數,只要是和數據相關的工作,就可以考慮用Excel來處理。

////////////////////////////////////////////////
要你命3000控制一切
////////////////////////////////////////////////
著名籃球員赤木剛憲曾經說過,掌握代碼就等於掌握了整個Excel,此言非虛。Excel自帶編程功能,只有想不到,沒有做不到!接下來就用解決吃飯問題做一個簡單例子展示一下:
對於有選擇困難症的人,讓上天來決定吃啥是最好了,我們先填一點數據,如圖:

然後選擇開發工具-VisualBasic(為了做例子專門下了一個office365,我也是拼了= =),然後什麼都不管,直接粘貼代碼:

Dim a As Integer "定義公共變數
Sub 隨機()
Dim x As Integer
Dim y As Integer
a = 0
Randomize "初始化
reselect:
x = Rnd() * (3 - 1) + 1 "生成2至7的隨機數,代表列數
y = Rnd() * (4 - 1) + 1 "生成2至6的隨機數,代表行數
Range("a1:d3").Interior.ColorIndex = xlNone "去掉填充色
Cells(x, y).Interior.ColorIndex = 3 "填充為紅色
a = a + 1
If a = 300 Then Exit Sub
GoTo reselect
End Sub

然後保存回到excel,選擇開發工具-插入-表單-按鈕,畫一個按鈕在excel上,命名為「吃啥好」

在按鈕上點右鍵,指定宏,選擇我們剛才做的函數,然後點確定:

至此,一個聽天由命的菜單就出現了。。。點一下看看什麼效果:
http://ww4.sinaimg.cn/mw1024/59fc3998gw1eofwet4475g20d703zglo.gif
========================================================
貼一點別人的作品,看看Excel的強大之處:
Excel製作的半即時戰鬥模擬(原文地址Excel潛能系列——Excel遊戲(2v2戰鬥~5v5戰鬥模擬器)【更新V1.5】 Einsphoton_Einsphoton_新浪博客)

Excel製作的超級瑪麗(日本人很閑啊= =)
超牛的EXCEL版《超級瑪麗》總結:掌握了代碼,理論上可以用它來做任何小型項目!

================================
要你命4000:一些奇奇怪怪的事情
================================
用來畫像素畫(只要把格子調到寬高一致即可),矢量畫亦可

用來做動畫:
[Excel]Bad Apple!!
推薦書籍:
你早該這麼玩Excel(數據管理、工作用)
Excel 2013高級VBA編程寶典(裝逼、開發用)

另外光有技巧是不夠的,表格美化也很重要。(做人也一樣,牛逼不夠,還得帥。。。)

雨聲的軟體小科普系列:
有哪些看上去很高大上,但實際很簡單的 Ps 技巧?


(在做投行、行研、諮詢等金融崗位,有沒有什麼好用的找數據技巧呢? - 何明科的回答中重點講了如何利用爬蟲來收集數據和做出炫酷的表格,這篇主要講講如果用程序來替代人工,一個頂倆:雖然不如AlphaGo,但也是機器替代人類的一個小側面)
(在專欄文章中粉絲回饋:程序讓你更性感 - 數據冰山 - 知乎專欄,提供學習VBA的實戰技巧。)

許多高級程序員瞧不上VBA。因為程序員是有鄙視鏈的:彙編 &>C &>C++ &>Python &>Java及C#及PHP(這三者相互撕) &>VB &>HTML。在這長長的鄙視鏈中,甚至都沒有VBA的位置。

可是,Excel+VBA是圖靈完備的(謝謝 @Octolet 的精闢總結),所以被程序員用來耍酷的各類性感語言能實現的大部分功能,Excel+VBA都能實現,而且往往是以更高效更快捷的方式,在這裡不談效率和優雅。而且考慮到大部分普通群眾是沒有編程環境的(各種依賴各種包,各種OS各種編譯環境,還有IDE),然而使用VBA,只需要打開裝機自帶的Office,然後按下Alt+F11就自動進入編程和執行環境;甚至可以更簡單的通過錄製宏來解決寫程序的問題,只需要在簡單的代碼基礎上修修補補就可以執行。再考慮到VBA和Office各軟體的完美整合,所以在便捷性方面,VBA是無可比擬的。最後,Office+VBA的分享性和移植性很強,任何測試通過的程序放到別的機器上也可輕易執行;而其他程序,哪怕是一段最簡單的「Hello World」,也不一定。

因此本文討論各種通過Excel+VBA能實現的各種炫酷功能(也會拓展到Office+VBA),主要是為Professional Service以及各行各業不寫程序但是又嚴重依賴於Office的職場人士服務的。

曾經有一個朋友和我說,「Excel根本不需要編程,像我這樣的Excel大牛靠函數和自定義函數能解決所有的問題。」對於這樣的評論,我想起自己小學時的一段經歷。因為不能理解虛數i(i^2 = -1)的價值,問我爸i有卵用?我爸說,「等你長大了,遇到更多的問題,就知道i的價值。」

1、自動列印
剛進職場的新人,只要爸爸不是李剛,基本都做過影帝影后(影=印,各種複印列印的體力勞動)。特別是諮詢投行服務行業,在某次給客戶的大彙報或者大忽悠會議之前,花數小時或者整晚來列印數個文件,並不是天方夜譚。而且這件事情是對著同樣一堆不斷修改的文件,會經常不斷重複發生。

我加入BCG的第一個項目,就是幫助某大型企業從上到下設計KPI體系並實施。從上到下涉及到幾十個部門,大概有100多張的KPI表格需要完成,這些KPI表格分布在各個Excel文件里。我們4個諮詢顧問的任務:

  • 設定好KPI的基本格式,然後每個顧問負責幾個部門,在Excel里不斷修改KPI表格,列印出來後去各個當事人及其領導那裡討論並修改
  • 每周把所有的Excel文件中的KPI表格歸集在一起,按順序分部門列印出來,並需要多份,找負責該項目的HR頭兒彙報進度和情況

這裡面有個費時費力的環節,每周需要在多個Excel文件中找出目標Worksheet,然後選定合適的區域作為輸出的表格,按照一定的格式和一定的順序,列印出這100多張表格。之前我們全是憑藉人力,每周由一個Analyst把所有最新的Excel文件收集在一起,然後挨個打開文件選中合適的Worksheet,選中區域設置好格式進行列印。每進行一次,幾乎耗費一兩個小時,還不能保證不出錯。

於是寫下了我的第一個VBA程序,而且基本上是宏錄製之後來改的,沒有使用參考書及搜索引擎,全靠F1和自動提示,所以貼出來特別紀念一下。實現的功能就是將上述的人肉實現的功能全部自動化。按下一個妞,就慢慢等著印表機按順序出結果吧。

後來這個程序的升級版是:調度多台印表機,進一步提高效率,以及將印表機卡紙造成隊列錯誤的概率降到極小的範圍內。

2、製作圖表及GIF動畫
圖表製作是每個Office一族的必備任務,製得一手好表格,絕對是升職加薪和偷懶放風的利器。在回答(黃燜雞米飯是怎麼火起來的? - 何明科的回答),就利用Excel+VBA做出數張炫酷的信息地圖,利用VBA為每個省的圖形塗色。

(塗色部分來自於網上的一段程序,製作GIF動畫的是自己完成的)

同時,為了進一步增強炫酷結果,還利用VBA將這些連續變化的圖表做成了GIF動畫,可惜知乎不支持GIF的顯示。

3、製作複雜的分析圖表
下圖是研究各個車型之間的用戶相互轉換關係,因為要將一維的轉化率向量,變成兩維的矩陣,所以使用了如下的複雜公式。

=IF(ISERROR(OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",COLUMN(A4)),$D$3:$D$600,FALSE),0)/OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",ROW(A4)),$D$3:$D$600,FALSE),0)),"",OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",COLUMN(A4)),$D$3:$D$600,FALSE),0)/OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",ROW(A4)),$D$3:$D$600,FALSE),0))

同時為了用顏色的深淺來表示轉化率的大小關係而便於比較,使用了VBA對下面的矩陣進行著色。當然有人肯定會說可以使用條件化格式,但是使用VBA保持了最高靈活度和效率。

4、根據格式化信息,生成標準的word文件
這是幫朋友實現的一個項目,他們實驗室是研究某類事故並對重大事故進行鑒定,最後發布word版的正式報告。之前的工作流程是在專業的軟體中完成計算和模擬,最後按照正式報告八股文的行文,把各種關鍵信息填進去,最後寫成word文件。寫報告的過程枯燥而沒有技術含量,但卻要反覆進行。

通過下圖的Word+VBA,完成主要的交互界面並連接計算軟體。在通過簡單的交互獲取主要信息後,在後台完成計算並將主要信息填寫入八股文的word模版,最終完成報告,同時將結構化的信息存入Access資料庫。

希望有機會和 @Raymond Wang 和 @金有元 等大律師合作,將Termsheet的書寫及Termsheet到SPA及MA等的法律文件書寫工作徹底自動化。

5、通過Excel管理分布的任務流,並將Excel表格輸出到Powerpoint
這是協助某國際大型汽車製造廠完成新品牌及其新款車型上市,面臨車型即將斷檔的窘境,該新車型的上市非常關鍵,不能錯失時間節點。然而,新車型上市涉及到無數分支:製造、產品、市場、渠道、營銷、公關、財務等等,同時還要協調歐洲的兩個總部以及中國的兩個分部。

這次諮詢的核心任務就是項目管理,總控整個大項目的進度,並每周向中國區的CEO彙報進度並發掘出易出現問題的關鍵節點以調配資源。我們4個諮詢顧問分配下去各自負責幾個部門或者項目分支,和團隊一起規劃流程、畫甘特圖、確認里程碑及時間點、安排負責人等等。當每天回到辦公室大家將進度匯總在一起的時候發現了挑戰及難點,每條任務線並不是獨立發展的,而是各條任務線交織在一起並互相影響。

  • 某些核心人員在多個任務線出現。比如:負責預算的財務人員,幾乎要出現在各條線中負責相關預算的審批環節
  • 某些任務線的里程碑是其他任務線里程碑的必要條件而相互關聯。比如:新車的下線時間影響發布會的時間,相關法規測試的通過又影響車輛的下線時間等等

當任務線增多以及任務線之間的交叉越發頻繁的時候,匯總的任務將會幾何級數增加,這就是我們在項目過程中遇到的問題。於是我利用Excel+VBA完成了這個工作的自動化。主要實現的功能:

  • 自動將4個顧問手中分散的Excel文件彙集在一起形成一個大的總表,如下圖
  • 各顧問手中的表格是按照部門維度來劃分的,匯總後需要按照不同的維度來輸出不同類型的表格,比如:按任務線輸出表格、按責任人輸出表格、所有延誤任務的表格、所有需要資源重點投入任務的表格等等

在此基礎之上,還要將上面提到的各種維度下的所有表格(大概有200多張),按要求格式粘貼到PPT中,每周提交給中國區的總部進行彙報和評估。密密麻麻的表格如下圖。於是,我又寫了一個程序將Excel中的表格輸出到Powerpoint中,將一個秘書每次需要數小時才能完成的工作,簡化成了一鍵發布,並可以在Excel中完成對PPT的更新。

這個項目的程序量不小,近似於寫了一個迷你版的Microsoft Project來進行項目管理。

最後,下圖中密密麻麻的PPT每周需要更新一次,每次都是快100張的工作量,然而基本上都是靠Excel來自動完成更新的。因為PPT的模版每次變化不大,我將這些模版記錄下來,每周更新的時候只要根據Excel中最新的數據更改PPT中的數據即可。

6、根據結果倒推假設
一般的Financial Model都是根據重重假設計算最終結果。而在為某頂級手機品牌服務的過程中,我們卻遭遇了逆向的尷尬。本來是根據地面銷售人員的一定服務水平,計算所需要的銷售人員數量;結果在項目過程中,總部已經確定好了銷售人數的Head Count,轉而要求我們根據HC確定服務水平。然而,服務水平不是一個單變數,是由零售店的覆蓋率、銷售拜訪頻率、拜訪中的服務深度等多重因素來決定的,同時還可以根據一線至無線城市來變化。

於是只好再次祭出Excel+VBA法寶。先根據常規思路建立好Financial Model,得出HC的初步結果。然後寫VBA程序,根據不同的情景、不同的優先順序以及不同的權重來調節零售店的覆蓋率、銷售拜訪頻率、拜訪中的服務深度等多因素,同時設定這幾大因素的可接受範圍,逐步逼近HC的預設值。

如果沒有程序,以前基本是靠人工手動調節來湊結果,而且因為各種情景的不同,還需要多次調節。而通過程序,基本是自動完成,還可智能得設置優先順序及權重,無需人工參與。

7、海量下載Bloomberg數據並完成分析
通過Bloomberg的VBA API,海量下載數百隻目標股票的tick data以及order book。

並根據實現構建好的數學模型,在後台完成計算,將上述的實時數據轉化成每隻股票實時的trading cost,實時展現在交易員最常用的Excel界面中,方便交易員評估當下的交易成本以便於優化交易策略。

8、結語
計算了一下,我在BCG做了三年諮詢顧問,大概寫了幾萬行VBA程序(都是自己手工輸入的,沒有複製拷貝和系統自動生成),每個項目一千至幾千行程序不等。最後將Excel用成了中控界面,類似EMACS,在Excel可以隨意操控全公司的印表機、Word、Powerpoint等等,自動完成各種任務以及數據更新和抓取。因為Excel的數據更結構化,所以將其作為中控平台,比Word和Powerpoint更有優勢。

一些學習VBA的小技巧在這個回答里:Excel VBA 如何快速學習? - 何明科的回答。

最後,這些程序中的一些公共模塊,打包給了BCG Global IT,BCG給了我一個Sponsorship去Stanford GSB讀書。程序的注釋行裡面有我幾個好朋友、親人及導師的名字,祝他們一生平安。

最後的彩蛋,還可以用VBA來畫油畫,零基礎成為用美術作品把妹撩漢的藝術青年(Excel 有什麼奇技淫巧,讓你相見恨晚? - 何明科的回答)。

_________________________________

更多精彩文章請看:數據冰山 - 知乎專欄


蛋疼會計師:Excel 里做 RPG 遊戲

每一個會計或即將成為會計的人兒都會驚嘆於 Excel 的強大功能與神力。但這款名叫 Microsoft Excel 的神秘辦公軟體卻並不是你想駕馭就能駕馭得了的。Cary Walkin 是一名來自加拿大多倫多的會計師。Walkin 在 Excel 軟體里製作出了一款完成的 RPG 遊戲,而且,真的可以玩了啦...

這款遊戲名為「競技台.Xlsm」(Arena)~文件可以在 Excel 2007,2010和2013版上運行。不幸的是,魷魚由於這是微軟的辦公套件,所以在 mac 系統中無法打開。遊戲內容包括:

  • 隨機對手:超過2000個隨機對手,每個都具有不同的 AI 能力。
  • 隨機物件:39個不同物件可組成超過1000種不同組合和物品屬性。
  • 四個不同結局,8個擁有不同戰術的大 boss。
  • 4種預先設定的競技台和更多衍生競技台,每個關卡都不同。
  • 31個咒語,超多通關策略。
  • 15種特殊屌爆掉寶。
  • 36項成就。
  • 全都能在 Excel 中實現。
  • 據說這個遊戲玩起來就像是一個 RPG 遊戲被搬到了科學計算器上,蛋友們蛋疼的趕快下來玩玩吧,順便打開好久沒用的 Excel!

    下載鏈接:
    Arena.Xlsm 1.3


    以前的Excel叫厲害,現在結合Power BI 系列插件那叫一個無敵,就橫掃千萬行數據這一條就足以讓很多人重拾希望。


    有興趣的同學,可以看看我整理的近兩年國內的一些介紹的帖子,請叫我雷鋒

    內容來自:

    知乎專欄Excel_Power BI - 知乎專欄


    首先為什麼要學習自助式BI,我們看看高飛老師在PowerBI極客中給出大家的答案:

    自助式BI,全面提升你的數據分析能力 - 知乎專欄

    前言:PowerBI簡單介紹:

    Power BI 是基於雲的商業數據分析和共享工具,它能將複雜的數據轉化成最簡潔的視圖。通過它,你可以快速創建豐富的可視化互動式報告,即使在外也能用手機端 APP 隨時查看。甚至檢測公司各項業務的運行狀況,只需它儀錶板的一個界面就夠了。一切,就是這麼簡單、快捷和靈活。

    不管你是哪種行業,什麼職能,何種角色,只要在使用數據,Power BI 總能為你提供幫助。

    《PBI重新介紹:Power BI全面簡體中文化》

    《PowerBI相關組件下載安裝(附操作截圖):-雷公子個人博客》

    在開始之前我們說說學習PowerBI包括的三個核心內容吧,當然這三個核心內容在Excel中都有對應的商務智能插件,他們分別是:PowerQuery,PowerPivot,以及可視化。
    我們先扒一扒第一部分吧:

    第一章節:PowerQuery篇

    如果你還不清楚PowerQuery是什麼,能幹什麼,強烈建議您讀下由Excel120博主宗萌老師整理的文章:

    《什麼是Power Query – 簡單得不像超級查詢實力派》

    關於介紹的文章,我們也可以參考如下文章:

    《Microsoft Power Query for Excel 簡介》

    PowerQuery最新功能GET

    《Power Query新特性:你給答案,我來計算 - 知乎專欄》

    相信讀完這篇文章後,你肯定會對powerquery有一個比較全面的了解及認識,那麼powerquery到底能做什麼呢,這裡再給大家一些實例:

    《用PowerQuery動態匯總文件夾下的多個Excel文件(支持動態增刪自動更新)-雷公子個人博客》

    《數據逆透視-多維數據轉回一維 | Excel120》

    《PQ:一個快速創建整數序列及字元序列的方法 | Excel120》

    《PowerQuery處理典型的中國式二維表格轉一維》

    《(視頻)URL分析之參數批量快速提取之Url.Parts函數 - 知乎專欄》

    《利用Power Query進行採購發票校驗》

    《PowerQuery語言M函數中文翻譯文檔面世 - 知乎專欄》

    《查看PowerQuery函數的幾種方法》

    PowerQuery技巧類文章:

    《同一Excel文檔中多個智能表格如何批量添加到PowerQuery - 知乎專欄》

    《PowerQuery實現動態查詢(與文件的路徑無關) | Excel120》

    《PowerQuery技巧篇--詞根串聯(生成笛卡爾積數列) - 知乎專欄》

    《PowerQuery的參數表格用法》

    PowerQuery進階的一些知識:

    《PQ:多行屬性合併到一個單元格 | Excel120》

    《PowerQuery分表函數簡單應用Table.Partition(分表) - 知乎專欄》

    《PowerQuery作為ETL系統 - 自助裝載大數據(amp;>100W)最佳實踐》

    第二章節:PowerPivot數據建模分析篇

    學習PowerPivot離不開DAX函數的學習,在學習PowerPivot之前,我們先看看高飛在公眾號《PowerBI極客》里對DAX的介紹:

    《認識DAX數據分析語言 - 知乎專欄》

    DAX函數中重中之重的一個函數就是CALCULATE函數,我們先整理幾篇CALCULATE函數的介紹大家了解下:

    《Power Pivot聚合函數與Calculate函數詳解 - 知乎專欄》

    《PowerBI,PowerPivot中篩選函數CALCULATE的介紹 - 知乎專欄》

    《DAX-CALCULATE工作原理 - 知乎專欄》

    DAX其他函數介紹

    《PowerBI學習 第二階段函數 Divide/If/Switch/Related/Lookupvalue - 知乎專欄》

    《Power BI中的ALL家族函數 - 知乎專欄》

    《PowerPivot中的文本函數 - FORMAT函數(附其他日期函數)》

    DAX函數高級用法

    《高級DAX:USERELATIONSHIP | Excel120》

    《Power Pivot 中如何執行 lookup+find操作(數據分析操作篇)》

    《Power BI 多指標切片展現 - 知乎專欄》

    《運用參數表提升Powerpivot實戰技能》

    《如何使用DAX精確計算年齡 - 知乎專欄》

    第三章節:數據可視化展現篇

    《亮瞎雙眼的Power BI自定義可視化圖表 - 知乎專欄》

    《數據可視化字典 - 知乎專欄》

    《當Power BI遇上歐洲杯-案例-北京敏捷艾科數據技術有限公司-Power BI|Power Pivot|PowerPivot工坊》

    《運營分析儀錶板-案例-北京敏捷艾科數據技術有限公司-Power BI|Power Pivot|PowerPivot工坊》

    《當Power BI遇上恐怖主義-案例-北京敏捷艾科數據技術有限公司-Power BI|Power Pivot|PowerPivot工坊》

    第四章節:PowerBI+行業篇

    《「大數據+HR」不再是忽悠 | Excel120》

    《用Power BI獲取實時股票數據並快速選股》

    《案例-北京敏捷艾科數據技術有限公司-Power BI|Power Pivot|PowerPivot工坊》

    《用Power BI觀察經濟與健康的關係》

    第五章節:其他資源分享篇

    1、PowerBI國內學習網站:

    Excel120.com(宗萌老師個人博客)

    pbihome.net(國內唯一PowerBI交流論壇,論壇剛起步,內容較少,但是相關這方面相關大咖均已入駐,大家學習過程中遇到什麼問題都可以發帖交流)

    PowerQuery - 簡書

    Power BI - 知乎專欄

    Power BI 專欄 - 知乎專欄

    2、PowerBI國外學習網站:

    SQLBI

    PowerPivotPro - Transforming your Business with Power Pivot and Power BI

    Power Query Archives – The BIccountant

    Chris Webbamp;#x27;s BI Blog

    3、PowerBI公眾號推薦:

    《Powerpivot工坊》

    《PowerBI極客》

    《PowerBI大師》

    《Excel120》

    4、PowerBI學習線路圖推薦:《PBI系列學習框架地圖 | Excel120》

    如果你想下載閱讀這些電子書可以直達我們PowerBIhome論壇下載《點擊直達電子書下載》

    5、國內課程推薦:

    1)、PowerPivot工坊 文超老師系列課程

    2)、劉凱老師系列課程

    3)、張文洲老師網易雲課堂系列課程

    4)、搜索引擎營銷行業可以了解我個人課程,其他行業忽略(《Excel數據分析必備技能》覆蓋初/中/高級 | 艾奇學院)

    6、PowerBI Excel交流群:

    M與DAX的恩怨糾葛 545814382(偏PowerQuery交流)

    Excel120B群 125836108

    微軟Power BI技術交流群2 553499910

    雷友會-Excel_PowerBI交流 198086726(專註PowerBI及系列插件交流)

    最新更新,歡迎大家訪問Powerbi.cc,關注知乎專欄【Power BI】

    註:以上所有文章版權均歸原作者所有,如因版權問題,可聯繫刪除。


    說個故事。

    當年和我老婆談戀愛,一開始一直不冷不熱,直到有一天,我見她眉頭不展,便詢問何事。
    曰:工作好忙,來不及對數據。(她在某通訊公司做數據稽核類工作)
    仔細詢問教會她使用幾個函數與數據透視表以後,她的工作量降低了約三分之一。
    於是就有時間和心情與我愉快地約會了。
    再然後就成了孩子她媽了……

    所以,你說EXCEL厲害不厲害。
    ======================
    另,我轉行很多次,保險、中介代理、智能家居、政府。
    只有Excel的技能一直伴隨著我,具有持續性和可發展性。
    我個人認為每一個有可能和數字打交道的學生都有必要去學習、進階下Excel。
    ======================
    為了增加本故事的真實性,只能上我女兒照片了


    一句話:Excel除了不能生孩子,其他的事情都能幹。至於你能夠用Excel來幹什麼,那就要看你的修鍊水平了,個人覺得要想學好Excel並不難,只要你循序漸進,比別人多付出20%的努力,就可以超過80%的人,但是你想要超過剩下20%的人,那麼你可能就需要比別人多付出80%的努力。

    個人認為,掌握Excel的以下幾個功能基本上可以算是精通Excel了,此外,系統地學習Excel可以參考以下十個步驟:

    第一階段:熟悉Excel界面

    簡單來說,就是把Excel上方工具欄中的那些按鈕都點開看一下,熟悉一些都有哪些最基本的功能,以及如何使用這些功能。這些都是最基本的點擊式操作,沒有任何難度。

    第二階段:學習Functions

    函數不需要所有的都學習,最基本的統計求和函數要會用,最基本的查找匹配函數要會用,接下來就是函數之間的嵌套應用,這些都掌握了之後,你再可以學習一下與自身業務相關的一些函數,這都沒有什麼難度,當你把這些函數都搞定了之後,再學習數組。掌握了數組,你就很了不起了。在這裡推薦一本關於Excel函數方面的書,書中介紹了最基本的75個函數,只要掌握基本用法,後面的靈活運用就靠自己了,書名為:75個Excel函數搞定一切。當然,如果你對統計感興趣,推薦閱讀Use Excel系列書籍:Use Excel:統計分析入門。

    第三階段:基本的Graphs

    Excel幾乎可以繪製各種各樣你所看到的圖,而且十分方便,只要你掌握這些繪圖的基本方法與原理,你同樣可以繪製出非常漂亮的圖表。當你掌握這些基本的圖表製作技巧之後,你就可以進行自我創新,創造出讓別人佩服的圖表。市面上關於Excel圖表的書籍很多,個人覺得最適合新手的是這本書:EXCEL 2016圖表達人(增強版)。

    第四階段:數據透視表

    當你對Excel界面十分熟悉,對函數和數組掌握到了一定程度,也對繪圖有了一定的造詣之後,你在實際工作中,可能需要提升效率,這個時候數據透視表就是最好的神器。它在好多方面都能夠大大提高你的工作效率,是Excel高手必備的技能之一。市面上很多講透視表的書都是直接上案例,而沒有對數據透視表進行最基本的講解,個人比較推薦的是:玩轉Excel數據透視表。

    第五階段:錄製宏和VBA

    當你想要處理重複的工作時,可以通過錄製宏,然後自定義快捷鍵來實現,當你要實現某個特殊的自定義功能時,這就需要學習VBA了,VBA的基本語法並不難,難在它是無底洞,永遠也研究不玩,就像一門武功,永遠也練不到盡頭。

    第六階段:Powerquery

    當你將傳統的Excel都掌握到了爐火純青的地步時,下一個你要學習的就是Powerquery,在Excel2016當中,它已經成為內置插件了,可以直接使用,它可以讓你的數據清理與處理工作變得非常的方便和快捷,起初,你還是需要了解一下它的基本界面,然後,你可能需要學習一門新的語言——M語言,目前國內會這門語言的人可能並不多。個人認為在這方面的書籍,推薦搞懂Power Query的第一本書。

    第七階段:PowerPivot

    當你掌握了Powerquery之後,你還需要繼續學習PowerPivot,PowerPivot就像它的名字一樣,是數據透視表的加強版,它又有點像資料庫,需要創建表之間的關係,有主鍵和外鍵,它在處理大量數據時比Excel具有更快的速度,目前也是國內商務智能領域的一些認識正在研究的內容,這裡推薦一本書:Power Pivot入門手冊。

    第八階段:PowerBI

    當你掌握了Powerquery和PowerPivot之後,學習PowerBI對你來說已經不是什麼問題了,它相當於Powerquery+PowerPivot+PowerView+PowerMap的組合,主要用於數據可視化,是微軟用來對抗Tableau的一款產品,目前在國內正逐步流行。個人推薦這本書:Power BI Desktopí?±íê?_??¨?o??…è′1èˉ?èˉ。

    第九階段:靈活運用

    當你掌握了上面的這一些基本之後,接下來的就是結合自己的需要,創造出比其他人更快、更好、更專業的東西來,就拿繪圖來說,你如何將上面所學到的東西綜合運用,打造出和別人不一樣的圖表來,就像近年來必究留下的Dashboard,這裡同樣推薦一本不錯的入門書籍:Excel 2016商業儀錶盤基礎。

    第十階段:模仿學習

    最後,這是本人第一次在知乎上認真寫答案,還寫了這麼多,希望大家多多支持,更多關於Excel、R、數據分析以及金融方面的問題,歡迎去本人博客查找資料:悟君居士 - Welcome to my blog


    Excel已經非常厲害了.無所不能,只有想不到,尤其是在大數據的背景下,在商業智能自助分析領域狂飆突進.感覺每個月都在更新補丁..

    像最近更新的功能.以前畫個這樣的地圖可累了.現在就容易了.還有小圖標哦,蠻好玩的.雖然不是很完善,但大公司值得信賴,會越來越完善的.可不低估大公司進入大數據分析領域的決心.Excel的又一次里程碑,讓舊時王謝堂前燕,飛入尋常百姓家.不過上圖更新的功能只有365用戶才能用...而且可以使用團隊型power bi...
    數據可視化體驗也會越做越好.只要建立好數據模型,可以做許多很炫的動態圖.估計很多人一定會被一些頂級商業雜誌的數據圖表嚇到.其實不需要題主所講的那些很嚇人的專業數據分析軟體,用EXCEL同樣也能出來.
    如圖

    還有很多玩法.藉助EasyChart插件更是能更有效率地做出許多高端大氣上檔次的諮詢公司級別的圖表.再放AI里再美化美化一下,做成炫酷到爆的信息圖去,,那更是漂亮.可以當商業雜誌圖表編輯了.^_^ exccel圖表本身就是矢量文件,AI是大型矢量平面設計工具,相得益彰.
    有贊放源文件....
    不知道別人怎麼玩Excel的.用Excel來畫畫或打遊戲那真是一代巨擘...不過好像不太實用.對於Excel的玩法,我覺得必須使用超變態函數組合的表格肯定一般數據不幹凈不標準。數據表乾淨的那基本上函數都會簡單甚至不怎麼想使用函數,就是透視兩下。如果數據表能標準到第二範式。那基本所有的表能像畫電路圖一般串聯在一起搞出一套數據分析模型。能搞出數據分析模型,那基本上為企業或部門的運行狀況開出一張企業經營診斷書成功了一半。如果經常寫這類診斷書,那毫無疑問差不多快要做到企業決策者的位置了。我覺得這才是王道玩法(好漢饒命,不喜輕噴)
    傳統玩法就是函數一直到VBA.有些人的功力真是會嚇死人.當年初入江湖時,就被一位風清揚級別的師傅嚇死.用Excel+Access+vba+sql整出一個高度完整複雜精密的ERP.正是這一場異緣,也來了興趣研究研究兩下Excel與access,隨拜倒在其門下.當然我的玩法和風清揚級別的師傅玩法不一樣,他是非常程序員級別的玩Excel..我比較喜歡用數據分析角度去玩Excel.搞數據分析豈能不會畫圖表漂亮.

    畫單個圖表好像沒多大意思.

    組合一下好像更有氣場.乾脆來畫dashboard吧,函數,VBA,SQL,透視各種東西一起往上招呼.

    這公司也是屌爆了,無限修仙^_^.好像還夠不上能良好的展開數據分析.好吧,開始用power pivot數據建模來畫.

    看看後台是什麼東西.

    原來這就是我剛才說的電路圖..玩函數不需要範式的概念,玩數據透視數據表必須滿足第一範式才行。玩數據倉庫必須達到第二範式。玩資料庫必須至少達到第三範式。資料庫之所以要求高,是因為數據表太動態了。就像去銀行取錢存錢,吊銷存摺或變更存摺,如果範式不完美一不留神會出現數據插入變更刪除等異常。而數據倉庫很靜止,只需要接收一下數據。而且範式要求太高會導致畫電路圖像資料庫一般複雜,最致命的是導致映射現實業務的事實屬性欄位碎片化的散落在各個小表裡,這不利於開展數據分析,所以數據建模才有反規範化的說法。powerpivot就是個數據倉庫,不能認為為access和powerpivot的功用是一樣的,還是有差別的。。powerpivot最典型的就是星形模型,看上面的圖好像是有點像星,中間一張大表,向四周擴散的維度指標小表..鑽取,旋轉,切片,切塊等花哨動作就靠它了.從函數,數據透視,到powerpivot,access能看出一條清晰的脈絡,學習起來才可以一貫之,提綱挈領打通一切隔閡。越說越抽像.還是繼續我們的輕鬆之旅行.好像還不是很過隱啊,乾脆用power bi來畫吧.

    看看這玩意到底能畫出多少種效果來

    哎呀媽呀,亮瞎眼睛了.不能再寫了.
    有人問我數據分析,我也搞不懂.只能說一些很業餘的行外話.就像做一份PPT,本身要漂亮,還要演講者本身口才好,有足夠的專業知識去支撐.
    像這副圖本身稀鬆平常,但一解說,就增加了很多專業魅力.

    這則圖表表達的贏利現金比率分析.經營現金凈流量與當期凈利潤的比值稱為贏利現金比率.它的值越大說明企業營利能力越強,而當它的值接近於1時,則說明企業贏利能力弱,小於1時即使贏利也可能發生資金鏈的斷裂,甚至引發破產.因此許多資深財會在報告中會提及贏利現金比率,並在繪製時著重添加一條現金短缺警戒線,以方便非財務決策層閱讀.
    再如下面

    這張圖就好看點,這圖在財務上叫米勒奧爾現金餘額管理模型.像圖中所示,現金額已經超出合理上限,就可以考慮一些其它投資,如有價證劵,讓企業獲取一點主營業外收入.蚊子腿再小也是肉啊.若持有的現金低於模型算出來的最低現金儲備,可以考慮出售有價證券.讓現金保持最佳的儲備性.所以一張圖表得醒目,得傳達你想表達什麼觀點.至於老總接受不接受,是另一碼事.
    再比如

    對於營業收入波動不大的企業,使用直觀的現金收支法編製現金預算,無穎省時省力.當預算表編製完成後,為了方便決策層直觀了解資金收入支出與結餘,,採用經濟學人典型的蝴蝶圖結構,是很好的選擇.


    這個必須推薦Excel大師朱鶴年老師。。。
    詳細請見朱鶴年老師的《新概念基礎物理實驗講義》後的Excel附錄。

    朱老師教導我們要用授權軟體。。。所以Excel無法上傳,大家需要瞻仰的只能購買這本書了。。。

    簡單說一下就是,像處理器wafer一樣的Excel表格(你縮小縮小看上去就像wafer一樣,嗯還有匯流排RAM什麼的,性能不足的電腦基本直接卡住了),完成各種正常同學用Matlab、MMA完成的計算。。。多個sheet,數據相互調用。。。

    佩服得五體投地。。。我室友花了好幾天試圖研究清楚這些Excel,研究得差不多了趕快用Matlab重新寫了一個。。。我反正有生之年是看不懂了。。。
    ====================
    既然有人要截圖。。。嗯來了

    Level 1

    看上去真是太弱了。。。你一定覺得你也會

    Level 2

    這個看上去複雜多了,好像還不是大師級

    Level 3

    這個怎麼樣。。。

    Level 4

    哈哈哈哈愚蠢的人類(10%,Office for Mac最小的縮放比例)

    Level 5
    由於本人分組實驗時候沒有分到朱老師組下,沒有Level 5的Excel,不過親眼看到室友縮放Level 5的時候Excel苦苦載入的情況。。。

    ================
    看到有人說VBA實現,朱老師的Excel主要就是做計算,不含有任何的腳本,全部靠複雜的函數表達式(包括IF函數)以及Excel的自動填充完成。這使得這些Excel兼容性很強,在Office for Mac上運行和修改毫無壓力,考慮不周的VBA代碼跑到Mac上多半會殘廢。
    這個回答不是黑老師,我們必須要理解當年計算機剛剛開始普及的時候,老一輩人並沒有我們這麼好的環境,他們並沒那麼容易接觸到Matlab、MMA、各種編程語言,所以Excel的確是一種選擇,雖然複雜程度很高,但是它的確work。我依然佩服老師把自己的的研究deploy到Excel上所花費的努力(哦大概對大師來說很簡單)。


    看到大家都在各種炫,我也是不淡定了,我是個畫圖的所以呢,只能從可視化角度來裝逼了,好吧,廢話不多說,直接上圖:

    這是以前練習的時候做過的案例圖:

    後來學的有些心得了,就開始自己找案例做

    案例|全球創新國家1000強研發投入變動趨勢

    圖表案例——一個小小的圖表所折射出的作圖哲學

    圖表案例——雲計算背景下國際科技巨頭的戰略轉型

    充分發揮想像力,Excel也可以成為黑科技!

    Excel史上最好看的堆積柱形圖(以下連續三圖)

    圖表案例——全球主流社交平台「網紅」收入統計分析

    既能高大上、又能小清新,如何用excel來拯救你的圖表顏值!

    交叉柱形圖

    蛇形圖

    後來感覺只用Excel有些不爽,就用Excel+PPT來作圖:

    (未公開案例)

    桌面文件:

    未公開案例(練習信息圖之用)

    桌面源文件:

    未公開案例(練習信息圖之用)

    桌面源文件預覽:

    --------------------------

    實習期間參與2017中國貿促會出口路線圖報告設計工作,實例在

    國家報告(貿促會出口路線圖網站)

    官網截圖:

    承辦單位:

    -----------------

    實習了時候,老闆非要做幾個裝逼的,我說做不出來……最後還是勉強做了兩個:

    (實習期間參與2017貿易大數據報告內圖表,工作內容,本人無源文件)

    出處:國家信息中心:「一帶一路」貿易合作大數據報告2017

    報告封面:《「一帶一路」貿易合作大數據報告2017》

    -------------------------

    知乎動圖效果不好,我的動態儀錶盤就不發了!

    最後PS一句,我才懶得告訴你,以上50%的案例都是我個人公眾號裡面推送過的教程。連數據源和步驟都在呢~個人公眾號——"數據小魔方",一個除了乾貨窮的什麼都沒有(包括節操)的公眾號~

    =====

    原文出處

    =====

    Excel依然是一款強大的數據可視化利器~

    學習R語言我都做了那些有趣的事情!!!


    前面大家答了一大堆很fancy的應用,確實很厲害。不過,其實有一個事實可以終結這個問題:

    MS Excel(加上它的VBA, Visual Basic for Applications),是圖靈完備的(Turing completeness)。

    所以,Excel究竟有多厲害?它跟任何一個圖靈完備的語言都是圖靈等價的,所以它們都一樣厲害。你可以理解成,凡是其他圖靈完備的語言(比如,C語言)能做的,Excel在理論上都能做。所以,能用Excel做出遊戲來並不奇怪。甚至你用Excel實現一台虛擬機應該也是可以的。

    話又說回來,理論上能做,不代表實際上做起來很方便,否則也不會出現那麼多種不同的語言了。我在身邊經常看到的一個現象是,很多人Excel水平極高,他們不管做什麼都用Excel. 比如我的一個大神同學,之前需要做一些矩陣運算,竟然是用Excel做的,讓我大開眼界。但是事實上這些tasks明顯有更加方便的完成方式,比如剛才說的矩陣運算,用Matlab明顯方便得多。

    所以,沒有必要過於神化Excel,它在有些環境下是非常優秀的工具,但是有些任務,雖然能夠用它完成,但是它明顯不是最快捷最優雅的解決方案。

    以上。


    這是一個用於Win7掃雷的修改器,是很久以前無聊的產物...如圖所示,可以鎖定時間及獲取地雷的位置。
    代碼如下,另附圖片種....

    【組件】

    窗體:frmMain
    按鈕:btnCatchGame,btnRefresh
    選擇框:chkGameTime

    "【代碼】

    Option Explicit

    "如果是64位系統,則「必須更新此項目中的代碼。請檢查並更新 Declare 語句,然後用 PtrSafe 屬性標記它們」。
    Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long
    Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long
    Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Private Const TH32CS_SNAPPROCESS = H2
    Private Const TH32CS_SNAPmodule = H8
    Private Const CB_SHOWDROPDOWN = H157
    Private Type moduleENTRY32
    dwSize As Long
    th32ModuleID As Long
    th32ProcessID As Long
    GlblcntUsage As Long
    ProccntUsage As Long
    modBaseAddr As Long
    modBaseSize As Long
    hModule As Long
    szModule As String * 256
    szExePath As String * 1024
    End Type

    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * 1024
    End Type

    Private Const PROCESS_ALL_ACCESS = H1F0FFF
    Private hProcess As Long
    Private PID As Long

    Private Type asmNum
    nuM1 As Byte
    nuM2 As Byte
    nuM3 As Byte
    End Type

    Private adrTime As Long
    Private adrMine As Long

    Private Function GetProcIdByName(ByVal ProcName As String) As Long
    Dim PE32 As PROCESSENTRY32
    Dim Procid As Long
    Dim hSnapShot As Long
    hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)
    PE32.dwSize = LenB(PE32)
    Process32First hSnapShot, PE32
    Do
    If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then
    Procid = PE32.th32ProcessID
    Exit Do
    End If
    PE32.szExeFile = vbNullString
    Loop Until Process32Next(hSnapShot, PE32) = 0
    CloseHandle hSnapShot
    GetProcIdByName = Procid
    End Function

    Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long

    Dim ME32 As moduleENTRY32, ModuleBase As Long
    Dim hSnapShot As Long
    hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)
    ME32.dwSize = LenB(ME32)
    module32First hSnapShot, ME32

    Do

    If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then
    ModuleBase = ME32.modBaseAddr
    Exit Do
    End If

    ME32.szModule = vbNullString

    Loop Until module32Next(hSnapShot, ME32) = 0
    CloseHandle hSnapShot
    GetModuleBaseByProcName = ModuleBase

    End Function

    Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long
    ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0
    End Function
    Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)
    WriteProcessMemory hProcess, Adderss, NumVal, 3, 0
    End Sub

    Private Function FindGame() As Boolean

    PID = GetProcIdByName("MineSweeper.exe")

    Select Case PID
    Case 0
    FindGame = False
    Case Else
    Dim adrBase As Long
    adrBase = GetModuleBaseByProcName("MineSweeper.exe")
    adrTime = adrBase + H21446
    adrMine = adrBase + H868B4
    FindGame = True
    End Select
    End Function

    Private Sub TrainerState(ByVal State As Boolean)
    chkGameTime.Enabled = State
    btnRefresh.Enabled = State
    Select Case State
    Case True
    btnCatchGame.Caption = "ReleaseGame"
    Case False
    btnCatchGame.Caption = "CatchGame"
    chkGameTime.Value = False
    End Select
    End Sub

    Private Sub AsmState(ByVal State As Boolean)
    Dim asm As asmNum
    Select Case State
    Case True
    asm.nuM1 = H90
    asm.nuM2 = H90
    asm.nuM3 = H90
    Case False
    asm.nuM1 = HD9
    asm.nuM2 = H58
    asm.nuM3 = H1C
    End Select
    Call SetMemoryAsm(adrTime, asm)
    End Sub

    Private Sub chkGameTime_Click()
    AsmState (chkGameTime.Value)
    End Sub

    Private Sub isOpen(ByVal State As Boolean)
    Select Case State
    Case True
    If FindGame = True Then
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
    TrainerState (True)
    End If
    Case False
    If FindGame = True Then
    AsmState (False)
    CloseHandle hProcess
    End If
    End Select
    End Sub

    Private Sub btnCatchGame_Click()
    Select Case btnCatchGame.Caption
    Case "CatchGame"
    isOpen (True)
    Case "ReleaseGame"
    isOpen (False)
    TrainerState (False)
    End Select
    End Sub

    Private Sub btnRefresh_Click()

    Dim mineColumn As Byte, mineLine As Byte
    Dim adrPoint As Long, adrTemp As Long, adrColumn As Long
    Dim i As Byte, j As Byte

    btnRefresh.Enabled = False

    adrTemp = GetMemory(adrMine)
    adrPoint = GetMemory(adrTemp + H10)

    mineLine = GetMemory(adrPoint + H8) - 1
    mineColumn = GetMemory(adrPoint + HC) - 1

    adrPoint = GetMemory(adrPoint + H44)
    adrPoint = GetMemory(adrPoint + HC)

    For i = 0 To 30
    adrColumn = GetMemory(adrPoint + i * 4)
    adrColumn = GetMemory(adrColumn + HC)
    For j = 0 To 23
    If i &> mineColumn Or j &> mineLine Then
    Sheet1.Cells(j + 1, i + 1) = ""
    Else
    Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)
    End If
    Next j
    Next i
    btnRefresh.Enabled = True

    End Sub

    Private Sub UserForm_Initialize()
    TrainerState (False)
    Sheet1.Cells(1, 2) = 1
    End Sub

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    isOpen (False)
    End Sub


    幾百個工作薄、幾千個工作表,要匯總?怎麼辦?複製、粘貼……?搞死人,而且易出錯!多薄多表合併,一鍵幫你搞定! ——mergebooks.dll

    下載地址:請輸入提取碼 訪問密碼 a714

    多薄多表合併——excel 外接程序插件

    使 用 說 明

    一、功能:

    1、多薄合併:將當前文件夾或某一文件夾(可以選擇是否包含其子文件夾下)的所有工作薄合併到一個自動新建的「合併表」工作薄中。名稱相同的工作表合併,名稱不相同的工作表移到該工作薄中。默認按工作表名稱對應合併。按位置對應合併(如果對應位置缺少工作表,可插入空表佔位)。可以選擇「合併整個工作薄中的所有工作表(按名稱或按位置)、按位置選擇的工作表、按名稱選擇的工作表」,還可選擇「保留重複行(默認)」、「去除重複行」。各版本均可兼容。

    默認按工作表名稱合併當前文件夾(可以選擇是否包含其子文件夾)下的所有工作薄;在啟動excel後(未保存)的新工作薄中點擊該按鈕則打開「文件夾選擇」對話框。

    1. 多表合併:將當前工作薄中的工作表合併到一個自動生成且位於最後的「合併表」工作表中。可以選擇「合併所有工作表、選擇的工作表」,還可選擇「保留重複行(默認)」、「去除重複行」

      3、多薄匯總——求和(默認)、平均、計數、只計數數字:將某一文件夾或當前文件夾下(不包括其子文件夾)的所有工作薄中與當前工作表名稱相同工作表的按照所選擇的一個或多個單元格區域匯總到一個自動新建的工作薄中。按照所選擇的單元格區域位置對應匯總,沒有選擇的單元格區域則保留當前工作表中原有內容不變。多薄交叉匯總(求和、平均、計數、只計數數值):將當前文件夾下(不包括其子文件夾)的所有工作薄中與當前工作表名稱相同的工作表按照所選擇的包括首行首列在內的全部單元格區域按照首行首列進行交叉匹配匯總,並將匯總結果放置到另一個已打開的工作薄或自動新建的工作薄中。每個工作薄中對應的名稱相同的工作表的行列大小、欄位位置不必完全相同,但首行首列的單元格區域位置必須對應,而且必須盡量選擇某個工作表中可能出現的最大單元格區域。工作表名稱相同,首行首列位置、行列內容交叉對應匯總。

      4、多表匯總——求和(默認)、平均、計數、只計數數字:將當前工作薄中所有工作表按照所選擇的一個或多個單元格區域按照位置對應匯總(求和、平均、計數),並將匯總結果放置一個自動新建的「多表匯總」工作表中。多表交叉匯總(求和、平均、計數、只計數數值):將當前工作薄所有工作表按照所選擇的包括首行首列在內的整個單元格區域按照首行首列內容進行交叉匹配匯總,並將匯總結果放置一個自動新建的「交叉匯總」工作表中。單元格區域按照首行首列位置和行列內容交叉對應匯總。

      多薄(多表)交叉匹配匯總:(要求)要匯總的所有工作表的名稱相同,首行首列的個數或位置可以不相同,但所有工作表的首行首列位置(行號、列號)必須一樣;而且要盡量選擇某個要匯總的工作表中可能會出現的最大的單元格區域。

      5、拆分表格

      ⑴拆分工作薄:可以把一個工作薄中的多個工作表拆分成多個工作薄;反之,又可合回來(工作表與工作薄的名稱互換)。可以把當前文件夾下的所有工作薄(默認)、或選擇的多個工作薄中名稱相同的工作表重新組合到一個新工作薄中。工作薄與工作表名稱互換。

      ⑵拆分工作表:將當前單元格以下各行中不同內容拆分到多個工作表中。(以當前單元格以下各行內容命名工作表)

      6、跨表查詢:從當前文件夾(可以選擇是否包含其子文件夾)下的所有工作薄(或選擇的工作薄、或當前工作薄)的所有工作表(或當前已選擇的工作表、或當前工作表)中查找所選擇的表頭(欄位)內容,並將查找結果放到一個自動生成且位於當前工作薄最後的「查詢」工作表中。如果沒有選擇欄位,則默認為*(即:忽略欄位名,把各個工作表數據合併到「查詢」工作表中)。既可查詢行列不固定的表格,也可(選擇「最後一行的行號」)查詢行列固定的表格,還可對數據源不在第一列的表格(在SQL框中修改單元格區間)進行查詢。可編輯SQL查詢條件。查詢要求:工作表名稱相同、單元格區間對應。注意:如果查詢包括子文件夾下的所有工作薄,則子文件夾中不能有與當前工作薄名稱相同的工作薄,而且所有工作薄的「查詢」工作表不會被列入查詢之列。

      7、多薄修改:將已選擇的單元格(或多個單元格)中的數據(或公式)修改到當前文件夾下的所有工作薄(或選擇的工作薄)的對應工作表的相應單元格中。

      8、批量列印:列印某一文件夾(或當前文件夾)下的所有工作薄,可以選擇列印「整個工作薄」、按名稱「選定工作表」、按位置「指定工作表」,可選擇「列印份數」、「逐份列印」。

      9、插入圖片:根據單元格區域中的圖片名稱(無後綴),或直接選擇圖片插入到某些單元格中(或做為批註);可以選擇插入到當前工作表、所有工作薄、或選擇的工作薄中。單元格按位置、工作表按名稱。刪除批註:刪除所選擇的單元格區域的全部批註(圖片)。

      10、分類匯總:根據所選擇的單元格區域的首行首列進行交叉匹配匯總(求和),並將匯總結果放置一個自動新建的「分類匯總」工作表中。

      11、數據匹配:從所選擇的(包含表頭欄位的)兩個表格區域的第一列中匹配相同行(或不同行),返回第一個所選擇的表格區域的各列內容,並將結果放置到第三個選擇的單元格區域中。可跨工作表匹配,但不支持跨工作薄。提取數字:從所選擇的單元格區域中批量提取數字,並放置到所選擇的另一個單元格區域。提取中文:從所選擇的單元格區域中提取中文。提取英文:從所選擇的單元格區域中提取英文。

      12、數據有效性生成數據有效性:將所選擇的單元格區域的數據生成數據有效性下拉列表並放置到重新選擇的單元格區域中。刪除數據有效性:刪除所選擇的單元格區域中的數據有效性,並保存所選擇的數據。

      13、插入空行:在當前單元格下隔行插入空行。插入表頭:在所選擇的表頭區域下方,隔行插入表頭(如:工資條)。

      14、清除數據:清除當前工作表或當前工作薄中所有工作表的指定行以下的所有數據。 默認「取消」按鈕(即按Enter後)僅清除當前工作表中指定行號以下的所有數據。刪除空行:刪除當前單元格以下的所有空行或0值行。刪除某行:刪除當前單元格以下含有某內容的所有行。刪除單元格區域的重複值:刪除所選擇的單元格區域中的重複值。刪除表格中的重複行:刪除表格中的所有重複行(即表頭以下所有各列內容均相同的行)。

      15、特效開關:開啟/關閉高亮顯示當前單元格所在的行列效果,避免看錯行列。滑鼠放在表格已使用的單元格區域之外時不顯示特效。隱藏錯誤:隱藏所選擇的單元格內的公式計算錯誤。顯示錯誤:顯示公式計算錯誤。

      16、收發郵件:可給多人發送郵件,並添加附件。點擊「登錄郵箱」,可打開登錄郵箱窗口。發送郵件後下拉列表框中會顯示郵箱地址,可選擇或輸入郵箱地址,「回車」即可登錄郵箱。

      17、合併單元格:將所選擇的多行多列單元格區域中內容相同的相鄰單元格批量橫向合併;單列則縱向合併。取消合併:取消合併並自動填充內容。

      二、注意:

      1、本插件支持32位excel2003/2007/2010/2013/2016等多個版本,不支持64位excel;可在windows32位或64位系統上安裝。具體參照excel2003/2010

      2、多薄合併、多表合併、多薄匯總、多表匯總、多薄修改:要處理的工作薄(或工作表)首行首列位置必須相同。

      3、插件功能尚在不斷擴充、完善中,建議隔段時間從上面的360雲盤鏈接中下載安裝和使用,並提出寶貴意見和建議。

      三、安裝使用:

      1、下載、安裝時可能受360警告、攔截,甚至直接被當做木馬病毒消滅了,這是360對未知程序的正常處理方式,選擇「添加信任」、「信任程序所有操作「、「直接運行」即可,如果被消滅了,可以找回。

      安裝完成後,在excel203工具欄或excel2010「多薄多表」選項卡中會有下圖中的工具欄和功能按鈕。

      2、默認安裝位置: C:WINDOWSmergebooks.dll

      如果電腦進行了多用戶設置,可把Mergebooks.dll複製/粘貼到「COM載入項」點擊「添加」後出現的對話框中(按照下面第二步)

      3、Excel2003/2010中調出/安裝「多薄多表」方法:

      第一步:把「COM載入項」拖到工具欄上。(如有,可省略)

      第二步:點擊「COM載入項」進入「COM載入項」窗口(如圖所示)。先取消左邊框中勾,關閉工作薄;再複製Mergebooks.dll,然後打開工作薄再次進入「COM載入項」,點擊「添加」,「粘貼」,「確定」返回,打上勾,「確定」返回。

      Excel2010及以上版本中「調出COM載入項」方法如下:

      或者使用如下方法:

    4Excel2010調出「多薄多表」方法:文件——選項——自定義功能區——(右邊)「多薄多表」(打勾)

    5、開啟禁用項目:如果沒有出現「多薄多表」功能區按鈕,則看是否被列為「禁用項目」,可以手工啟用已被禁用的項目。


    開發者:hu73248@163.com;或QQ:2491

    65513


    1.最厲害的……打三國殺

    這個是著名的Excel三國殺,馬蜂窩團隊製作的。

    2.製作項目計劃
    基於Excel 2010的項目計劃模板

    古侯子老師的作品

    通過Excel 2010實現的項目計劃的模板,本模板實現的功能如下:

    1、通過Group的功能實現任務/子任務分層顯示

    2、節假日的設置說明,見Holiday表

    3、使用條件格式化,繪製條形圖,包括:計劃任務的條形圖、完成任務的條形圖、當前日期的日期線

    4、「完成率」手工填寫,未做自動計算

    5、「周期」計算的是工作日,扣除了節假日

    6、「當前日期」為工作日時,條形圖中以紅色線顯示

    7、右邊條形圖上方的日期只顯示工作日,每周5天,未扣除節假日

    8、「起始日期」為右邊條形圖上方日期條的初始日期。修改起始日期時,右邊條形圖上方的日期自動計算變更,但第幾周和月份需要手工處理

    9、使用時,最好通過插入行的方式,在當前任務區域內增加任務,如此不需要修改條件格式化的公式以及其他相關計算公式;條形圖日期長度不夠的時候,通過拖拽單元格,複製公式的方式增加條形圖日期長度

    製作方法http://www.houqun.me//articles/how-to-make-project-plan-template-based-on-excel.html


    3.計算器

    將 Excel 作為計算器

    微軟官方鏈接,不多說。


    4.彩蛋

    如何激活Excel2010內置遊戲《憤怒的小鳥》


    你可能聽說過舊版本的Excel內置的彩蛋賽車遊戲,現在新版Excel又添加了熱門的憤怒小鳥,不過激活它有點小麻煩。
    步驟

    • 打開一個空的文件,必須是Excel2007 SP以上版本。
    • 備註: 要關掉其它Excel表格
    • 把文件名改為「ARoofPill.xlsx」 ( ARoofPill 是微軟Excel內置宏的名稱)
    • 點擊單元格 C23,把寬度調為30(確保一定是30)
    • 把C23字體調為20
    • 把以下公式粘貼到C23

      =SUBSTITUTE(ADDRESS(BIN2DEC(1REPT("0",5)),6*7,4) CHAR(82)MID("SMILE",3,2) ADDRESS(2^5,57*3,4) MID("COOL",3,456789),"32","")

    • 點擊Enter

    然後……:)

    4.萬能的VBA

    ①寫遊戲

    除了三國殺外 還有這個

    用excel VBA 可以做哪些簡單的小遊戲? - ENZE HONG 的回答

    來自Excel潛能系列——Excel遊戲 2048_Einsphoton_新浪博客

    Einsphoton「獃獃」的作品


    好多人都來回答,我也來答一波吧!

    我記得知乎上之前有一個朋友說過:Excel除了不能給你生猴子,其他什麼都能幹!

    我主要做數據分析與可視化,而Excel就是處理的好工具,我尤其喜歡拿它來做數據可視化。

    圖表繪製軟體眾多,然而Excel才是我的最愛!

    Excel通過調整圖表的元素能實現其他繪圖軟體的圖表風格,如Python Seabron、Matlab和R ggplot2等

    還可以使用Excel繪製諸多意想不到的圖表:

    我們的表格也能美美的,哈哈哈

    歡迎關注我們EasyCharts,更多Excel源文件的獲取可以通過關注我們的

    微信公眾號:EasyCharts,

    或者

    QQ群:553270834!


    這是我大二的時候閑得蛋疼用Excel畫的畫。。


    最賺錢的商用系統企業是微軟。
    微軟最賺錢的商用軟體包是Office。
    Office系列中最賺錢的是Excel。

    曾經用過的部分儀器,涉表格輸出的,除一個較老舊儀器配套Lotus123外,其餘全部Excel。

    之前無聊時,用萬德大獎章提供的量化介面,在Excel上,順手搞了一個Level2實時行情接收和基本面數據分析系統,深市千檔報價分析實現!

    這玩意兒能幹的事,在不考慮效率和資源開銷的背景下,常見StepByStep邏輯的單線程任務,應該問題不大,尤其是處理格式化數據及其圖形化運用時。

    至於資源開銷大小,評價桌面級應用時,一般不用此類指標進行衡量。


    我也來一個,我也來一個,前面的都是碼農大神,我是買本書自學的,

    (本來目的是學習PPT,但是捆綁銷售,所以順便學了點EXCEL)代碼什麼的都不會,自己製作了一個時間管理的表格,跟大家分享一下。
    -------------------------------------------------咯咯噠----------------------------------------------------------
    1.首先把時間分為
    睡眠
    運動
    上課
    英語
    讀書
    總結
    工作
    娛樂
    其他
    因為自己創辦初高中英語培訓班,所以有上課這一欄。「其他」指的是吃飯,洗衣服,發獃,看電視啊,亂七八糟被kill的時間。

    每一欄表格可以下拉選擇

    2.選擇的數據會自動同步到這裡進行匯總

    3.然後當天的曲線圖出來了,

    4,最後是餅狀圖,直觀看到自己每天時間的分配

    5,最後來一張全家福,這就是一周的時間安排。繼續套用知乎句式「好用到哭啊」

    ------------------------------------------------------結束-------------------------------------------------------
    最後說明下,
    1,後面的時間總結表格,曲線圖,餅狀圖都是自動生成,自己需要做的僅僅是點點滑鼠,在表格中選擇時間用在哪裡。
    2,表格裡面的時間分配可以自己定義,比如你可以把「上課」修改為「加班」~~
    以上。點贊過9發表格連接。(為什麼是9?因為我家可兒 @一晴 生日是九月)

    -----------------------------------------------2015.1.17更新-------------------------------------------------

    1. 91個贊了,謝謝大家的抬愛,這個表格雖然真的很渣,但是基本算我目前的最高水平了。和上面用EXCEL作遊戲,作畫的比起來,我敢把自己的表格發出來,真的要贊下自己的勇氣了。。。
    2. 表格我發在百度文庫,大家自行百度「半小時表格」,第一個就是。免費的

      下面回答評論中我感覺比較好玩的:


    3. 我之前沒有注意到這個問題,JING LI應該是很認真的工科生吧。後來我觀察了下,你看睡眠那一欄,水平半徑和縱向半徑明顯不成比例,難道這幾塊分區組合起來不是一個正圓?是個橢圓?這個圓其實是放倒的圓,用到了畫畫裡面的透視原理?我猜的啊,不過感覺JING LI的關注點很萌~

    4. 還有這兩位,感謝第一位喜歡我的表格,感謝第二位站出來替我說話。你倆的評論比我的回答有意思,已贊~

    5. 還有丁天說的,其實我就怕這樣,我這個真的很渣,但已是我目前的渣水平的天花板。我貼出來不是炫耀的,說「拋磚引玉」不是謙虛的話,真的是磚。我是來向大神們學習的。

    6. 下面這位和我自己的想法是一樣的,我們是來向更懂的人學習的~謝謝瘋子周~

        1. 最後我想著重講一下這位,周江嶺

          看到這樣的評論,我不知道自己應該用怎樣的言語才能表達自己心中的感謝和感動。正是有著許多許多他這樣的人,才讓知乎成為知乎,你切切諾諾發表了自己的一些觀點,換來的不是大牛們的奚落,而是指點和建議。再次感謝~~



    PowerPoint----花美男
    word----經濟適用男
    excel----全能型男神


    我也來說幾個吧,我是工作之後才接觸到Excel,基本上也都是用於工作了
    不過還是先說幾個和工作不相關的吧:
    1. Excel做的一個簡單的住房管理系統,主要是旁邊這個搜索框,輸入的同時就能實時匹配最接近的結果,不論是輸入電話,房間號還是姓名,即輸即得。

    支持信息匯總:

    2. 無聊的時候想到李薩茹圖的繪製:
    這個是一個簡單的動畫,點擊start就會逐漸繪製
    視頻:
    視頻封面Excel 繪製 李薩茹圖視頻3. 指針時鐘:
    用數字作為指針,獲取當前時間更新數字的數值來控制指針,相當於是極坐標轉換為x-y坐標
    視頻封面Excel 虛擬鐘錶視頻
    4.隨機遊動的小球,用隨機數生成dx和dy,然後更新繪圖
    視頻封面Excel 隨機遊動小球視頻

    下面說說和工作相關的的吧
    5.這個是一個很簡單的試驗數據判定,只用了公式和條件格式

    6. 這個是我做的插件(xlma)之一,用來導入記錄儀和系統數據的,導入後進行格式更正和曲線繪製等。用到了FileDialog,這個是專欄裡面關於這個的介紹:
    Excel 數據自動化導入 - 有關 Excel 的一些總結與交流 - 知乎專欄

    7.幫同事做的一個項目
    有一個小模塊是文件樹,用的是遞歸:

    還有一大堆數據處理的東西……


    推薦閱讀:

    醫院的 CT 圖像是如何生成的,原始圖像要使用什麼軟體查看?
    能不能設計出一個終極傻瓜編程軟體,讓普通人可以完美編程?
    怎麼使用思維導圖?
    如果硬碟能達到內存的速度,那操作系統的設計是否會有變化?
    編程到底難在哪裡?

    TAG:微軟(Microsoft) | 軟體 | Microsoft Excel |