Posts

Showing posts with the label Excel VBA

Excel VBA - 自動生成分析報告

Image
案例分析 上一篇文章介紹了VBA跟Macro,也寫了一個簡單的應用,想必你們會覺得沒有挑戰性,那麼現在一起開發一個更實用和複雜的應月! 假設你已經懂得使用Excel的內置工作表函數(公式),突然你親愛的老闆要求你今天之內提交這個月的顧客分析的報告,儘管你忙於其他事情,但你也不能拒絕,又要保住飯碗,那怎麼辦了?如果你學會了VBA的話,這個問題便迎刃而解了!因為你只要按幾個鍵,便可以自動生成一份報告,你應該會覺得這是瘋了,當然在自動化之前,我們先要把報告的格式先寫好,然後再Macro把生成的動作記錄起來,並作出少許的修改,每次激活這個Macro便完成了!而現在,你手上有一連串的交易記錄(csv格式)和客戶的資料(xlsx格式),目標是用最快的速度去完成這個悶人的報表! 先給大家介紹這個應用的運作,根據下圖,我會先把客戶的資料貼在一個excel活頁簿裡面,之後把這一個月的銷售記錄再貼進去,已經寫好的Excel Formula會把資料會變成一個總結起來,而一些圖表,例如Pie Chart亦會顯示出來。整個過程只需要幾秒,可是製作過程可是大工程了,不過為了未來可以省點時間,這是很值得的! 流程: 準備 首先,先打開新的活頁簿 (Workbook) 和儲存檔案,格式為" 啟用巨集的活頁簿 "。因xlsx的格式不會儲存任何的巨集(Macro),會把你寫好的巨集,在你關掉這本子的時候自動洗掉,所以千萬要記得另存為xlsm的格式啊! Remember to save as Excel Macro-Enabled Workbook! 先從Dropbox下載 原始檔案 : 1. Members.xlsx:會員的資料 2. Transactions.csv: 六月份的交易記錄 製作範本 在寫巨集之前,要先設計好報告的樣式,先把三張工作表的名字改成:"Raw_data", "Member_profile" and "Report"。打開"Raw_data"的工作表,接著根據下圖,把第一列的儲存格改成,G至L欄是透過公式計算出來的,所以我先把它塗成了綠色,在G2至L2的儲存格寫下公式。 小提示:下面的公式是用作尋找和取得會員的資...

Excel VBA - Generate a report in dashboard format

Image
Application with Case Study For the example in previous articles, I bet you guys think it is not much challenging. Let's develop more complicated application! I am going to assume that you are competent to take the advantage of worksheet functions in Excel. Imagine that your boss requested you to submit a monthly report for customer analysis. Nevertheless, you now are busy enough but cannot refuse and even lose the job. Come on~poor guy! To prevent from this happen again, I strongly recommend to build a report template for next monthly reports. In this case, a lists of transaction records (Transaction.csv) and members data (Members.xlsx) in your hand. Of course, our target is to generate a complete report with raw data as soon as possible. Process Flow: Preparation First of all, to open a empty workbook and save as macro-enabled workbook (.xlsm) which allows to save the macros. Otherwise, you could not lose all macros after closing the workbook as excel workb...

Excel VBA - The Powerful Automatic Tools

Image
Nowadays, many tools for data analytic and reporting dashboard have been well developed and taken advantage of by the analysts. Frankly speaking, I am HongKonger and have worked in several companies. The most common analytic tools in the Hong Kong enterprises should be Microsoft Excel. For the data transformation and calculation, it consists of built-in formula with aspects of logical, mathematical, statistical and financial function. Conditional Formatting also saves much time to update the formats in the summary report. I believe many people should know how to use Excel but they seldom hear about Excel VBA. Even heard that, they still think VBA is difficult to learn. In fact, the processing time of repetitive task in Excel still could be eliminated by running macro which consists of visual basic scripts. As you may know, many employees in Hong Kong need to work overtime and under the pressure. Consequently, VBA plays an important role to deal with such heavy workload. I am going ...

Excel VBA - 強大的自動化工具

Image
近幾年,或許也是大數據被吹捧之下,愈來愈多數據分析和報告工具流出市面,分析師現在能更方便地利用這些工具。其實筆者是個香港人,在港工作數年,發現大部分香港企業主要用Microsoft Excel來做分析的。這也算不上奇怪的,香港的企業文化偏向保守及避免錯誤,所以趨向選用比較舊式和穏定的software。而Excel本身有強大的功能,無論在數據轉換,報表和統計分析,條件式格式和設計,再加上內置和自定義的函數,用家可以製造出不同的Application(應用)。 我相信大部分的朋友也對Excel不是很陌生,可是一說到VBA,大家的反應不是覺得很難,就是沒有聽過這東西。 其實在Excel寫VBA真的不是太困難,能把一些重覆性的動作,自動的執行,筆者當時在工作用上了VBA,基本上兩個小時的工作,大概10分鐘就完成了,效率令我嘆為觀止,從此我就愛上了它了。但VBA是不是值得學的,筆者認為就數據分析而言,VBA不久將來會被遺忘,因為現在和未來的統計軟件會比Excel的更多功能和更快的運算速度。加上R和Python,Excel也不再是他們的首選,更為Excel VBA響起警號了。但以定期報告來說,有一些香港的打工仔,需要使用Excel來做每月或每年的報告,在巨大的工作壓力和超時工作的情況下,VBA實在是舒緩工作量的良方。 在這裡我會介紹Excel VBA的功能和常用的函數,希望對初學習VBA的朋友有幫助! 簡介 巨集 (Macro) 你可能曾經聽過巨集,其實是一個集合了數個用VB script寫的Sub和Function。一般,我們能透過點擊按扭或是快捷鍵來啟動巨集。 Sub和Function 筆者還是VBA菜鳥也是搞不清楚,Sub跟Function的分別。基本上,它們只是本質不同: Sub 可以透過指定巨集,來啟動巨集,但它不能夠輸出任何值或物件 Function 是能夠輸出任何值或物件,但不能由按鍵來激活。此外,在VBA定義的Function能夠應用在 儲存格裡面(例如: MyFunction($A$1, $B$1)) 物件 (Object) Excel裡的物件早已被定義在Visual Basic Library。為了更清楚顯示Excel的常用物件,我把它們列在層次結構裡: Excel的常用物件 很明顯的,這裡的應用...