|本節內容爲Excel輸出日報(週報、月報)的自動化實例講解,篇幅較長,文末可獲取本節課講解的數據案例。數組
涉及知識點:ide
一、Sum函數求累計函數
二、插入組合框控件工具
三、Vlookup函數開發工具
四、Match函數spa
五、Index函數blog
六、環比&同比圖片
七、If函數嵌套開發
八、Text函數字符串
九、Concatenate函數
十、offset函數
十一、組合公式
十二、Excel粘貼爲圖片
背景:
事情是這樣的,小明天天都要進行日報通報,統計天天的全量用戶數、消費用戶數以及潛在用戶數,算出價值用戶數佔比,且每一個數都要與前一日對比,輸出一大串文字並生成圖片。天天的內容都是同樣的,只是數字不同,以前小明是天天都算出這些數字,而後再從日報中更改相應的部分,這樣的工做重複個一兩年也是會把人的精氣神熬沒了的呀。小明問我爲何他學了那麼多公式,卻依舊用很差Excel?
傳統日報:
【5/16日報】
一、截止目前,全量用戶數累計XX,環比昨日上升XX;
二、價值用戶數佔比爲XX,環比昨日降低XX
(大段文字,單調枯燥,工做重複)
自動化後的日報:
所以我決定寫一篇Excel實例應用的文章,用Excel進行日報自動化。固然本文應該算是半自動化,數據仍是要手動錄入,若要實現徹底的自動化,還需仰仗VBA,這個本章暫不涉及,因此是半自動化。
注:本篇文章所用數據爲虛構的非真實數據,並沒有實際意義。
1、原始數據區
原始數據是這樣的:日期、全量用戶數累計、消費用戶數(累計)、潛在用戶數(累計)
2、原始數據計算輔助列
首先我要算出消費用戶數的累計佔比,用累計消費用戶數除以累計全量用戶數獲得。
潛在用戶數的累積佔比同理:
還要算出價值用戶數累計佔比,爲消費用戶數累計佔比加上潛在用戶數累計佔比
好了,累計的數目所有算好了,下面來算每日的用戶數,這個很容易理解,5月2日的全量用戶數等於5月2日的累計全量用戶數-5月1日的累計全量用戶數。
同理,求出消費用戶數每日和潛在用戶數每日,以及消費用戶數每日佔比、潛在用戶數每日佔比和價值用戶每日佔比。
PS:這裏插一句題外話,上文是已知累計求每日的數,是用當日減前日,若已知每日求累計,如何求?咱們發現用當日的數加上前日的數好像不對了,由於當公式下拉的時候,獲得的每一項的值都是當日加前日,就只有兩個數據相加,實際上我須要的是當日之前全部的數據相加,這裏就要用到sum函數。Sum($I$2:I2),什麼意思呢?$I$2是被絕對引用了,不能變,能變的是沒有被引用的I2,第一個單元格不明顯,那咱們看第三個單元格,從I2加到I4,明白了吧。
收~
3、數據過渡區
數據源表太寬了,咱們新建一張數據過分表,點擊開發工具——插入——組合框。當鼠標變爲十字的時候在Excel空白區畫一個大小得宜的框,右鍵設置控件格式,在數據源區域選擇原始數據中的日期一列,單元格連接隨便選一個空白區域,下拉顯示項數默認。這樣我下拉框選擇一個日期,如5月1日,在I1單元格就會出現日期對於的天數,1。
好,如今個人需求是每在下拉框中選擇一個日期,在左面的數據通報表中便生成當前的數據。其實數據咱們都有了,只有用一個vlookup函數就搞定了。
複習vlookup函數,=vlookup(找什麼單元格,在哪一個區域找,找目標區域哪一列的值,模糊/精確)
觀察發現,每下拉日期會在I2單元格顯示日期的天數,那麼咱們就以I2單元格爲找什麼的單元格,那麼咱們須要在原始數據中新增一列輔助列序號。
當日的數據給你們提供了一個vlookup的思路,那前一日的數據怎麼v呢?v不了了,想一下在查找引用裏咱們還介紹過的其餘的函數,match和index,現在派上大用場了。
再來回顧一下match函數,match函數主要是用來肯定座標的,Match函數返回指定範圍內值所在的序號。
Lookup value:是要查找的值,這裏是G26單元格張三
Lookup array:是要查找的範圍,張三屬於姓名,因此範圍是姓名一列
Match type :同vlookup同樣精確匹配0
要想實現咱們想要的選擇日期數據變換的效果,前日的數據的行應該爲I1-1,列咱們來用match函數選擇。
=MATCH(A3,原始數據!C1:I1,0),要找的是A3單元格全量用戶數每日這個字段在原始數據表字段行中是第幾個。加上絕對引用下拉公式出來了列的座標。
接下來咱們在前日裏用index函數來查找match座標下的值,先來複習一下index,
Array:查找區域,這裏的區域是原始數據中數值所在的區域
Row num:第幾行,用match函數算出
Column num:第幾列,用match函數算出
這樣,前日的數據就經過match+index函數獲得了。
其實當日的數值也能夠用match+index函數獲得,能夠本身練習一下。
接下來求環比,今天的環比=(今天-昨天)/昨天。另外說一下,環比和同比的區別,舉個列子,今天和昨天比是環比,今年的5月和4月比也是環比,但今年的5月和去年的5月就是同比,今年的今天和去年的今天是同比,明白意思了哈。
累計的數值一樣能夠用vlookup函數求出,在次就不贅述了。
再把這些環比佔比的轉化成百分比兩位小數
在日報生成區輸入生成日報的字符串,其中經過環比來判斷上升降低的,應用if嵌套條件判斷。=IF(D3>0,"上升",IF(D3<0,"降低","持平"))
上升降低的環比數雖然也是引用了數據通報區的數,但最好用text函數轉化一下。
最後日報生成區的效果是這樣的
在日報區用concatenate函數鏈接日報生成區的每一行單元格,連成一句話。
看這裏,若是在日報生成區沒有用text函數處理數值,在日報區就會出現如下效果,是咱們不想要的。
日報區的最後效果是這樣的,當選擇不一樣的日期時,文字內容自動變化。
4、進階
對本身要求高的人還想要動態地展現前7天的圖表,這裏用到offset函數,offset函數是以指定的引用爲參照系,經過給定偏移量獲得新的引用,返回的引用能夠是一個單元格或區域。
首先要框選N2:T8區域,而後插入offset函數,按下圖填入公式內容,並按下「ctrl+shift+enter」組合鍵,完成函數錄入。
這裏涉及到一個數組公式,同時按「ctrl+shift+enter」鍵,Excel會在公式兩邊自動加上{}大括號,數組公式是能夠同時進行多重計算並返回一種或多種結果的公式。
如此對價值用戶佔比生成圖表,圖表即可隨下拉控件框日期選擇的不一樣進行前7日數據的變化了。以下動態圖所示:
最後生成一個每日通報
效果以下動圖,隨日期的改變通報數字和圖表也相應變化。