走過路過不要不過,
分享一下我自己學習的”大數據”處理的成果吧:
本文主要講解了
1、員工工作深度優化思路。
2、打開Excel宏命令的神秘大門。
3、Excel高級應用【表】的存在。
4、揭開神秘數據庫的面紗。
5、函數調用【表】內數據的神奇結合。
拿一個客服同學登記返現的表格作為例,這個是客服同學以前每天都要登記的返現表格。
旁白”等等,為什么是以前? ”
“因為現在全部用優惠券,付款的時候就直接優惠了!”
“趕緊上天貓買個美的電熱水壺壓壓驚!沒錯就是那個美的贏聯專賣店”
下面有這些字段(列)
每當有一個顧客前來索要返現我們的客服同學都要把顧客的訂單信息挨個粘貼到表格里面的對對應的這22列里面。
工作的重復性,枯燥,繁瑣可想而知。
我們希望客服同學將更多的時間和精力放在接待顧客提升自我能力上面,而不是花大把時間去做枯燥乏味的工作。
分析:
根據客服同學反饋的信息得知大部分登記返現都是活動期間的促銷活動。
店鋪后臺導出的訂單里面除了
而我們在整理活動返現明細的時候,正好這15項都要整理出來。這15項之外,其他的7項所有訂單信息可以在原始訂單里面體現。
那也就是說我們其實是知道客服同學要登記的每個訂單的每個字段(22列中每一列的數據)。
結論:
如果一個人把這些數據全部都整理好話,客服同學只需要在做好框架的表格里面粘貼訂單號。其他的數據就全部都能通過函數檢索訂單號就出現了。(然后只需要看一下顧客發過來的個別信息是不是一樣即可,我們把對應需要核對的列用高亮色標記即可方便客服同學核對)
比起復制粘貼22項數據大大節省了客服同學的工作量。
一、準備工作,準備一個表格模板
模板的基礎是后臺導出的訂單明細表,并在訂單明細表里面插入后臺沒有的這15個字段(列)。
但是我不想每次做表格的時候都插入15列數據,那樣工作量太大了。我想點一下就自動生成15列,并且15列里面是固定的這15個表頭。Vba腳本我不會寫,但是Excel有錄制功能,即將用戶的操作以代碼形式記錄。
首先打開店鋪后臺導出的文件。錄制功能在開發工具選項欄里面,Excel默認是不顯示錄制按鈕的。
不知道怎么設置可以百度一下【Excel 開發工具顯示】
[知識點1]
A、開始錄制:
1.點一下左下角的
這個錄制按鈕,彈出的窗口里面注意【保存在】-【個人工作簿】-【確定】(方便后面調用)錄制按鈕就變成正方形了
。就開始錄制了。(點了錄制之后就不要做多余的操作,即使是鼠標單擊某個無關的單元格都不要,因為這個時候對表格的每一項操作都會被錄制)
2.選中訂單編號后面的15列,右鍵【插入】就直接插入15個空列。
[知識點2]
3.依次填入我們的上面15個表頭的內容
4.結束錄制(即點擊左下角變成正方形的錄制按鈕)
B、調用錄制的宏命令:
點擊Excel窗口左上角的【文件】-【自定義功能區】-【從下列位置選擇命令】-【宏】
即可看到剛剛制作【插入表頭】的宏
接著看右側的【自定義功能區】下面的【主選項卡】選中【開始】,然后點擊下面的【新建組】按鈕,就會出現一個【新建組(自定義)】,可以重命名和更換圖標。
將這個新建的組直接拖拽到【開始】的下面(這一步是調整按鈕最終顯示的位置)
最后點一下中間的【添加】-右下角的【確定】
就會發現【開始】菜單里面多了一個這個:(圖標和命令名稱以及組名稱都可以修改的)
下次打開后臺導出的新文件之后點一下這個按鈕就自動出現了我們想要的15列表頭了。
當然這個方法也可以用在其他很多需要頻繁重復的工作表格上面。
將對應的訂單返現信息填完之后保存表格,快捷鍵是【F12】直接彈出另存為窗口[知識點3]
xls或者xlsx格式,千萬不要是csv不然訂單號超過15位的數字就變成0了。[知識點4]
關閉表格,關閉的時候會彈出提示窗:
點【全部保存】,否則剛剛的錄制工作就白做了。
二、將Excel文件導入微軟數據庫文件中
這么做的目的是可以避免后期Excel文件數據量過大導致加入新的數據時Excel卡死的情況。[知識點5]
操作步驟:
1.打開 - 新建【空白數據庫】
我個人比較喜歡用單個文字作為數據庫的名稱,或者盡量簡化,一方面此文件格式的拓展名比較長,如果用長名稱時瀏覽的時候肉眼不容易識別。我想把懶的境界發揮到極致。
2.點擊【外部數據】選項卡-【新數據源】-【從文件】-【Excel】-【瀏覽】-選擇剛剛制作的表格
第一次導入的時候選擇第一個【將源數據導入當前數據庫的新表中】
3.在彈出的【導入數據表向導】窗口中
選擇對應的工作簿-下一步
勾選第一行包含列標題-下一步
到了這一步要注意一下,訂單號的數據類型設置為短文本,需要計算的字段設置為雙精度型(如:付款金額、返現金額)方便后期計算,如果把需要計算的數據類型弄成了短文本,最后用的時候就不方便了。需要將文本格式轉化成可計算的數字格式。
4.將訂單編號設置為主鍵,這么做可以防止出現重復的訂單號導入數據庫
在導入包含重復的訂單號會提示重復。一般一個訂單只有一次活動返現機會所以建議選擇訂單編號作為主鍵。
5.導入到表vba 將當前日期轉化成數值,這個表的名字最好也簡單一點,最好也是單個字符如“F”。最后【完成】-【關閉】
6.將原有的【表1】鼠標右鍵關掉。
7.以后有新的數據需要導入就按照第二步走一遍即可。兩點不同的是,一、不用再新建數據庫文件了而是打開最開始做的那個。二、導入的時候選擇追加:
確保表格的表頭是一模一樣的,不然導入的時候會提示【下標越界】或者【數據庫中沒有包含某字段】
不過用宏命令插入表頭的話一般是不會出現這種情況的。
如果在成功導入數據之后,出現了第二個【表】有兩種情況:
一種是提示數據類型轉換失敗,這種直接把錯誤的表格刪掉就可以了。
另一種情況是忘了選擇追加直接導入了到了新的表,這種情況也是刪掉新出現的表vba 將當前日期轉化成數值,再重新追加導入數據。
8.保存并關掉數據庫程序,一般導入了數據就等于保存了保險起見還是保存一下。
三、 反過來用Excel調用數據庫文件的信息
這樣即使有上百萬條訂單數據我們也完全不用擔心Excel會卡。因為原始數據在數據庫文件里面。[知識點6]
我們只是用Excel作為輸出端調用這些數據,不會因為改變數據的原始形態而導致Excel計算大量的數據卡死。
操作步驟如下:
1.打開一個空白的Excel
2.選擇【數據】選項卡-最左側的【自】-選擇我們剛剛新建的accdb格式的數據庫文件-【打開】-【確定】
沒錯,就是一直點即可。
3.接著我們就看到了數據庫文件里面的數據了,這個里面的內容是直接關聯數據庫的。
這些數據以【表】 的單位出現在Excel工作簿里面,鼠標單擊有數據的單元格就會彈出【表格工具】-【設計】選項卡。
這個【表】有名稱,且每一列的標題都稱為【字段】。我們要把這個【表】的名字改一下,改成單個字符。
我這邊改成了F,【保存】文件名稱就叫FF.Xlsx
做到這一步數據庫里面的文件就同步到Excel文件里面了,以后只需要把新的數據導入數據庫,然后在這個Excel文件里面的【表】區域點一下鼠標右鍵,會發現這個地方有一個【刷新】按鈕。
點一下刷新按鈕,Excel就自動完全同步數據庫里面的信息了。
四、 最終的數據輸出表格了
現在這個Excel文件里面的【表】有64列,并且有完整的訂單信息,我們不需要那么多。只需要其中的22列即可,并且要實現在對應的列粘貼訂單號就能得到訂單號對應的下列信息。
1.在FF.Xlsx文件里面新建一個工作簿,并在第一列輸入上述22列,這個是一次性工作,不用錄制宏。步驟如下:
2.在日期下面的單元格里面輸入=now()[知識點7]
得到當前的系統日期和時間,但不會實時更新,只會返回我們輸入的時間節點。我們不要具體時間,只要日期即可,按CRTL+1設置單元格格式.[知識點8]
3.當我們在第二行數據函數之后即可選中這個單元格,點擊【開始】選項卡-然后點擊【條件格式】右邊的【套用表格格式】,找一個自己喜歡的配色。點一下之后直接再點【確定】
這樣就在第二個工作簿里面又新建了一個【表】。
4.在門店下面輸入函數=( 然后點一下訂單號下面的單元格,就會發現這個【表】和普通的表格不太一樣,因為它自動變成了“=([訂單號]”,最終我們要輸入這個(有沒有” @”結果都一樣):
=([@訂單號],F,(F[店鋪名稱]),0)
解析一下這個函數表達式:[知識點9]
使用的參數是(1要查找的內容,2查找內容的區域且只在區域的第一列中查找,3找到之后得到的區域中對應行的從左往右數的列數,4精確匹配或廣泛匹配)
1.[@訂單號],也就是當前公式所在【表】的所在行與【訂單號】字段交叉的單元格。
2.F也就是當前文件下的F【表】,F【表】的第一列就是訂單號,所以可以直接匹配。之所以給表的名字命名為F 也是為了使得這個最后的公式看上去更簡潔直觀。
3.(F[店鋪名稱]):這個結果也就是在F【表】中從【訂單號】開始往右邊數第幾個是店鋪名稱,因為列數太多了,要數的話也得數半天。另外一個好處是即使后期不小心更改了字段的順序也不會影響公式的結果。只要【訂單號】的位置永遠在A 列(第一列)就不會有問題
4.0:在計算機語言里面,要表達TRUE【真】 或者 FALSE 【假】的時候可以用1或者0來表示;
1表示真,0表示假
使用的時候如果想要的到精確的結果最后一個參數就必須是0或者FALSE,否則得到一個模糊的結果沒有任何意義。暫時還沒有研究過為什么這個函數要在最后面加一個真假的參數。
接著我們把其他的列也輸入對應的函數,只需要把的第三個參數中的店鋪名稱改成其他對應的列即可。
比如:
在【分類】下面,輸入=([@訂單號],F,(F[分類]),0)
在【型號】下面,輸入=([@訂單號],F,(F[產品型號]),0)…
5.由于沒有填寫訂單號的對應列的單元格返回的結果全部都是#N/A,這樣的表格看上去就像一推雜草令人非常不愉快,那么我們在外面再套一個公式:
=IFNA(([@訂單號],F,(F[買家實際支付金額]),0),"")
像這樣,IFNA即,如果我的括號右邊的表達式返回的結果是#N/A的話,那就顯示空白,否則的話就返回公式本身的結果。雙引號內如果有文字的話就以文字體現,如果是雙引號中間什么都沒有話就顯示空白.
這樣一來話的表格最終就做好了,我們不必在使用單元格填充工具去將空的單元格套入公式,當我們在下面的訂單號對應的空白列粘貼數據的時候,【表】會自動將格式套到下一行。
最后保存一下,后面我們更新了數據庫之后,直接在F【表】區域內點一下右鍵【刷新】,然后保存。發給客服同學。
客服同學只需要在第二個【表】里面粘貼訂單號即可得到該訂單對應其他所需要的數據。
堅持看到這里的同學應該發糖果獎勵一下哈哈~
估計多年后再回來看這篇文章肯定會有不一樣的感觸。
如果沒有看明白的話可以直接找我。保證傾囊相授!