ExcelMail應用簡介三(如何確保大量批次寄信資料的正確性與安全性?以五專分區聯合免試報名作業處裡範例)

為什麼會想寫這篇文章?因為最近又收到上級單位來函要求保護學生個資的公函,大概是因為最近又爆發學校幫學生集體報名考試,不慎將大筆學生個資洩漏的情況,所以教育局再次發函提醒基層的業務單位。

 

image

 

資料數位化帶來大量的便利性,例如學籍資料沒有數位化之前,畢業學生要回校補辦畢業證書,註冊組要從存放紙本學籍檔案室調出學生的資料,要耗費不少時間,學籍數位化之後,承辦人只要動動鍵盤滑鼠就可以完成。但凡事很難只有利而沒有弊,學籍資料數位化之後使用上很便利,但是資料安全管理沒有做好,一個隨身碟就把所有資料帶走,而紙本的學籍資料使用上是不便又佔據大量空間,但也是因為這樣的缺點,想拿的人會考慮成本。但這不是說數位化是錯的,現代化的社會數位化是利大於弊的必然發展,學校單位會出現個資外洩的事故,絕大部分是承辦者看待個資數據的心態,現在是數據時代,數據已經變成有價的東西,尤其是個人資料。有價值就會引來覬覦,所以保管資料的人要有一種態度,你保管的不只是數據,而是有價的財產。

以我擔任教務處試務組工作為例,就屬於經常會接觸到大量學生個資的單位,也常需要傳遞大量學生的個資。現在各種考試入學報名,大部分承辦的委員會都要求學校以集體報名方式辦理,所以辦理學生集體報名的業務承辦人只要處理不慎,可能就會面臨大量個資外洩的問題。一旦個資外洩,後續的處理就是一場災難。

所以在我工作過程中,我會同時關注學生報名資料的正確性與安全性,為什麼會想要開發ExcelMail這個工具,其中一個目的是希望資料能夠直接給當事者,避免透過第三者轉達造成資料外洩的疑慮。在前面兩篇文章我們說明如何利用ExcelMail大量寄送個別收件者的信件內容與檔案,我們看到利用ExcelMail的便利性,但是便利之餘也存在一些安全性風險,常遇到的就是寄錯收件對象,寄出去的電子郵件如潑出去的水,萬一這情況又發生在信件中有學生的個資,事情就會變得很難處哩,弄不好說不一定還會被告,所以一定要避免這樣的情況發生。

 

我以今年五專分區聯合免試報名作業為例,以往五專報名作業流程包括兩部分實體紙本報名資料與報名費的收取,及學生報名資料電子檔案的建立與上傳。今年因為三級警戒的關係學生沒有辦法到校,原本預計發給學生檢核的紙本個人五專報名資料,只能轉成電子檔透過網路方式傳遞讓學生進行檢核確認,ExcelMail恰好能派上用場。

另外因為五專報名除了填寫網路資料還要繳交紙本的報名表,往年學生紙本報名表收回來後要耗費大量的時間去逐一檢查學生的報名表手寫的資料是否正確,如果有錯還要請學生修改簽名蓋章,經常要來回好多次。但是今年因為疫情的緣故沒辦法讓讓學生回校,所以紙本報名表如果有錯要修改是一件麻煩的事,所以釜底抽薪的做法就是不讓學生手寫報名表,幫學生將報名表套印好存成PDF檔案,寄給學生檢核如果沒有錯請學生自己印出來給家長簽名,學生若發現報名表資料有錯,請他們回電子郵件給我,再幫他修正之後產生新的報名表PDF再寄給他。

在上述我們作業的過程中有多次的資料傳遞,我關注的有兩個重點:一、如何將資料正確的傳給正確的收件者?二、如何保護寄出的資料不被不相干的人拿走?

針對第一點:要避免這種情況發生,只單靠在大量寄信之前寄件者細心人工檢查是不夠的,很難保證不會出錯,我自己就出過幾次這樣的錯誤,後來我採取的是透過程式進行資料比對,無法用程式比對的資料再用人工檢覈。所以降低採用人工檢覈的情況,就要想辦法將寄給學生的資料儘量做成可用程式比對的型態。

以寄給學生五專報名表PDF檔為例,我的作法是先建立學生的基本資料與報名學校志願Excel工作表

image

,然後以上面的Excel工作表為Word/[郵件]的收件者來源資料,修改委員會提供的報名表Word檔案為合併列印檔案樣版。

image

(關於上述兩個檔案的範例歡迎來信索取quiz_cssh@mail.cssh.ntpc.edu.tw)

執行合併以產生所有登記報名五專學生的報名表在一個WORD檔,再利用WORD程式提供轉存成PDF檔案。

image

因為要將每個學生的報名表個別寄給學生,所以必須將已經轉成PDF的全部學生報名表PDF檔進行分割成一個人一個檔,網路上有很多免費的分割PDF檔案的軟體,我是使用PDFill這套軟體,有興趣可以到他們的官方網站下載https://www.pdfill.com/,PDFill這套軟體提供一個PDFill FREE PDF Tools,裡面有蠻多好用的處理PDF檔案的小工具。這裡我們按下表單上[2.Split or Reorder Page ]這個按鈕來分割報名表的PDF檔。

image

按下[2.Split or Reorder Page] 選擇要分割的PDF檔案。

image

設定分割PDF檔的參數,設定下圖紅色框起來的兩個參數,整個北區報名表PDF檔共有68頁,程式不會呈現要自己打開PDF檔看它共有幾頁,全部68頁都是分割的對象,所以設定Split Pages From 1 To 68,再來因為每個學生的報名表是正反兩面,所以要每2頁分割為一個檔案,所以設定Extract Pages As Separate Files Pages 2 。

image

設定好按下[Save As…],選擇存檔的目錄與檔名的開頭,因為按照我們的設定總共會產生34個PDF檔案,程式會自動編號存檔。我們在檔案名稱輸入S,按下[存檔]完成分割之後,程式會打開存檔的資料夾,就可以看到S_Part_1、S_Part_2、S_Part_3…….。

image

image

這樣的檔名排列順序會和我們作為合併列印資料來源的Excel工作表資料中的資料順序一樣,所以將這個工作表的班級、座號、身分證統一證號與學生姓名等四個欄位複製到新的工作表,注意資料的順序不要異動(以免我們要對應的學生報名表檔案目錄與學生資料對不齊),用此新的工作表來做為ExcelMail的寄件通訊錄資料。

image

接下來我們要在工作表上加入學生的電子郵地址資料,前面j文章我們示範建立學生電子郵件帳號,我們以上面的範例作為電子郵件地址的資料來源,如何快速的將報名學生的工作表加上學生的電子郵件地址資料?我是利用[資料處裡過濾增益]\[正規比對資料過濾]\[工作表資料擷取]

image

在[工作表資料擷取]表單進行擷取參數設定,先在工作表[五專聯合免試報名名單]的E1輸入"電子郵件"作為標題,我們要把擷取出來的電子郵件寫到這個欄位,然後將工作表上"班級"、"座號"這兩欄的資料選取作為[進行比對的條件範圍]這項的參數資料。

image

再選取工作表E欄作為[進行資料寫入的欄位]這項的參數資料

image

切換到[9年級電子郵件]工作表,一樣選取"班級"、"座號"這兩欄資料作為表單[資料比對範圍]的參數範圍

image

接下來選擇[9年級電子郵件]工作表的E欄作為[擷取資料的欄位或寫入的資料(以#為開頭)]的參數

image

設定參數後按下[確定]即可再[五專聯合免試報名名單]工作表上E欄電子郵件的寫入符合"班級"、"座號"的電子郵件地址資料。

image

建立好收件者的電子郵件地址資料,接下來要將我製作好的學生五專報名表PDF檔案設定為郵件的附加檔,首先我們要先對檔案名稱做更改,像S_Part_1.pdf這樣的檔名不容易辨識,所以打算將報名表檔名更改為學生的班級+座號+學生姓名.pdf,例如[五專聯合免試報名名單]工作表上第1位學生是901班01號漢宏林,我們把S_Part_1.pdf改成90101漢宏林.pdf,這樣我們要打開檢覈報名表是否有寄錯會比較方便。如何快速完成更改檔案的名稱的作業?我在[資料處裡過濾增益]\[WORD表單統計工]設計幾個處裡檔案目錄的功能,以下依序說明如何利用這幾個功能來完成批次檔案名稱修改的作業。

image

首先我們要利用[讀取檔案目錄資料]將檔案目錄資料寫入工作表,先在[五專聯合免試報名名單]工作表上選取資料格H2,這個動作是讓程式將讀取的目錄資料依序寫入H2、H3、H4….,將[檔案類型]切換到PDF檔案類。

image

image

按下[讀取檔案]開啟報名表PDF檔案所在目錄,將所有報名檔案依序選取,然後按下[開啟]

image

[資料處裡過濾增益集]會將選取的PDF檔案完整的目錄位置依序寫入工作表

image

接下來我們要利用[資料處裡過濾增益]\[WORD表單統計工]\[更改檔案名稱]來進行檔案名稱的批次更改,首先我們將工作表A、B與D欄複製至I、J與K欄,利用[資料處裡過濾增益]\[資料型態轉換]\[資料格以字串形式合併]將三個欄位資料合併。

image

然後選取L欄複製再以選擇性貼上,選取以值貼回L欄,然後刪除I、J與K欄,讓H欄pdf檔案目錄資料與I欄班級座號姓名資料相鄰。

image

接下來我們再將I欄班級座號姓名每筆資料前面加上"D:\工作目錄\ExcelMail範例\"字串,後面加上".pdf"字串。可以用公式處裡,我直接利用[資料處裡過濾增益]\[正規比對資料過濾]\[工作表資料內容處理]

image

將I欄班級座號姓名每筆資料選取,點選[工作表資料內容處理]表單中[資料處理範圍]的[選取]按鈕將選取的工作表資料範圍設定為[資料處裡範圍],同樣也選取設定為[資料處理後寫入的欄位],這樣處理完的資料直接會覆蓋原來的資料,接著在[加在資料前的字串]輸入"D:\工作目錄\ExcelMail範例\",在[加在資料後的字串]輸入".pdf”,再按下[確定]。

image

即可產生要變更的新檔名資料。

image

接下來將H欄與I欄檔名資料範圍選取,按下[資料處裡過濾增益]\[WORD表單統計工]\[更改檔案名稱]即可批次更改檔名。

image

image

程式會提醒使用者如果更改將無法直接復原,按[是]即執行更改。打開原來放報名表的目錄發現,原本的檔名都被修改為班級座號姓名.pdf 。

image

接下來我們只要將I欄的資料作為ExcelMail寄信的附件資料[請參考ExcelMail應用簡介二(教育會考成績單PDF電子檔寄送範例)]來源即可。但是這個檔案含有學生個人的資料,所以我通常會把檔案加密多個保險,預防寄錯對象。因為用word轉換產生的pdf檔案分割之後,要以pdf進行批次加密有點麻煩,word2019可以讓使用者再轉換成pdf時輸入密碼,PDFill也可以讓我們進行pdf加密,但是目前都要逐一的個別檔案加密,而且我們每次寄信的檔案不一定是pdf檔,所以我直接利用免費的7-zip進行檔案壓縮並加密,7-zip提供用以命令列輸入指令方式壓縮加密的功能,我把利用7-zip壓縮解密的功能寫到[資料處裡過濾增益]\[特殊操作]\[利用7z批次建立縮檔],要使用這個功能必須先安裝7-zip,使用可以到7-zip的7-Zip 繁體中文版官方網站下載,下載安裝之後。點選[資料處裡過濾增益]\[特殊操作]\[利用7-Zip批次處理壓縮檔]。

image

第一次啟用這個功能,要在程式表單中[指定7-Zip壓縮程式所在目錄]設定7-Zip執行檔目錄位置。

image

按下[瀏覽]尋找7-Zip安裝的目錄。

image

接下來我們要建立加密的zip檔,只要在範例工作表中I欄的下一欄J輸入每一筆檔檔要設定的密碼即可,每個學生應該知道他自己的身分證字號,我們就用這個當作密碼,我們將範例工作表C欄的資料複製貼到J欄。(範例中的示範的身分證字號是隨機產生非真的身分證字號)

image

接下來選取I、J兩欄中的資料區域,將區域指定為[7-Zip處理檔案目錄資料範圍]的範圍

image

設定好後按下[確定],程式執行完後打開學生報名pdf檔所在的目錄,會看到與pdf檔案相同的zip壓縮檔。

image

試著打開其中一個壓縮檔,確定輸入該學生的身分證字號是可以開啟檔案即可確定產生的檔案是正確的壓縮檔。

image

我們只要再利用[資料處裡過濾增益]\[WORD表單統計工]\[讀取檔案目錄資料]將壓縮檔的目錄資料讀取到工作表及可,為了避免寄出的檔案被修改產生爭議,我們可以將壓縮檔的md5碼也寄給學生,要產生md5碼只要將[讀取檔案目錄]表單上[建立檔案MD5碼]設定勾選,再讀取檔案即可。

image

image

最後只要按照ExcelMail應用簡介一(使用Gmail帳號進行Excel工作表資料批次寄送範例)ExcelMail應用簡介二(教育會考成績單PDF電子檔寄送範例)這兩篇文章的操作,即可將信件寄給學生,記得信件中提醒學生請用自己的身分證字號為密碼解壓縮檔案。

結語:以上是我在今年的五專聯合免試報名作業的報名表檔案透過ExcelMail寄送時所作的相關處理流程與大家分享,寫得有些瑣碎,最後把我有應用的相關軟體應用整理如下,希望對相關的同行有所幫助。


a.利用google表單的應用來進行資料調查與反饋。(例如信件資電子郵件地址的蒐集與信件收件狀況調查)


b.利用「資料處裡過濾增益集」裡的資料擷取功能來降低資料對應出錯的機率。


c.利用office word 產生自動化文件資料並轉成pdf格式檔案。


e.利用「資料處裡過濾增益集」裡的檔案目錄功能來更改檔案名稱,再利用資料擷取功能降低資料對應出錯的機率。


f.利用「資料處裡過濾增益集」裡的使用7z批次壓縮功能來進行檔案壓縮與加密(避免檔案太大,大量)

ExcelMail應用簡介二(教育會考成績單PDF電子檔寄送範例)

因為疫情的關係,學校很多與學生相關的事務處理只能改為線上處理,例如畢業生的升學報名作業與考試成績單的發放,這次國中教育會考除了紙本成績單,心測中心還提供學生紙本成績單的PDF格式的電子檔,讓學校可以先把電子檔給學生,紙本等疫情穩定之後再請學生回來領。

這個想法是不錯,但是實務上學校如何在顧及資訊安全下傳給學生是一個挑戰,雖然每個學生的會考成績pdf檔心測中心都額外加上密碼保護,但是以資訊安全而言還是不適合大喇喇的放在網路上讓學生自行下載。

所以我是利用ExcelMail進行學生成績檔案的批次寄送,以下說明我的整個流程步驟。

1.首先蒐集九年級學生的電子郵件,拜這陣子遠端上課所賜,以新北市的學生應該都用過校務行政系統,新北市教育雲提供學生一個以校務行政系統帳號為帳號名稱的gmail郵件帳號,所以只要以公務需求請資訊組長協助提供全校九年級學生的校務行政系統帳號即可。(取得學生的自訂帳號大概像以下這個樣子,這個是示範自訂帳號資料不是真實資料,但是這不是學生的電子郵件地址,以新北教育雲所提供的gmail帳號格式是學生的自訂帳號+@apps.ntpc.edu.tw,所以還要將自訂帳號資料進行處理)

image

要自訂帳號資料加上@apps.ntpc.edu.tw字串可以用公式去完成,我是習慣直接用[資料處理過濾增益集]處理,這樣就建立好學生的電子郵件資料。

image

2.接下來要建立成績單檔案的目錄資料,也就是我們要建立電子郵件的附件檔案的目錄位址,我們在學生帳號的工作表新增一欄標題為"成績檔",然後建立要寄成績檔案目錄資料。

image

假設心測中心給的學生成績檔名是以報名時的班級+座號,那麼901班01號的成績檔名為90101.pdf,我們預先在d磁碟區建立1個名為"會考成績"的目錄,再將所有學生的會考成績檔案集中放到該目錄,那麼901班01號學生成績檔的目錄就是d:\會考成績\90101.pdf,所以我們在"成績檔:"這個欄位建立每一位學生的成績檔案目錄資料可以這樣做,先把工作表上班級、座號這兩欄資料複製到I、J這兩空白的欄位上,在H2資料格輸入d:\會考成績\,在K2資料格輸入.pdf,然後在L2資料格輸入=CONCAT(H2:K2)。

image

接下來分別用自動填滿(將滑鼠游標移到資料格右下角,游標符號變十字連按滑鼠左鍵兩次即可快速自動填滿)將H、K、L填滿資料,完成目錄資料建立。

image

然後將L欄目錄資料複製,以值的選擇性貼到"成績檔"欄位,這樣就完成我們要寄信的成績檔附件資料。

image

,接下來我們就用ExcelMail進行寄件的步驟說明:

1.首先要選擇一個可以大量轉信的郵件伺服器,因為我要寄給全部學生一次要寄出400封,免費的郵件帳號的郵件伺服器通常會有所限制,以避免使用者濫發廣告信,所以我沒有使用gmail,而是與學校的資訊組協調,請資訊組設定學校的郵件伺服器允許轉發學校的辦公室電腦寄出的大量信件。

2.打開上述已建立的學生郵件資料Excel檔案,啟動ExcelMail增益集,登入郵件帳號密碼,開啟ExcelMail的主程式畫面,選擇收件者姓名、E-Mail地址、信件主旨與內容等,最後附加檔部分要選取我們建立好的成績檔案的目錄資料。

image

image

3.注意!!!選完[附加檔案]後,還要勾選[批次對應附加檔案],如果沒勾選此設定,則所有學生都會收到全部學生的成績檔。勾完設定之後,程式會要求重新輸入名稱已便與原來的作區別。

image

我們輸入一個新名稱"會考成績",[附加檔案]的設定會變成下圖所示,這樣每位收件者只會收到自己的成績檔

image

4.設定好之後,還是建議先[測試寄信]不要直接[開始寄信],測試幾封確定沒有問題再正式寄出,我們測試5封看看結果如何?發現我們帳號收到5封帶有附件且主旨為會考成績單的信件。

image

打開第5封看看收件者是不是正確?附件檔案是否為正確?正確就可以開始寄信!

image

image

本文僅簡單介紹如何大量分別寄出每位收件者個人的檔案資料,ExcelMail更進階的功能,後續再做介紹!

ExcelMail3.2免費教育版與資料處理過濾增益集5.1發佈提供下載







程式版本 md5
資料處理過濾增益集5.1(64位元版) f12aa01e1758018d8161373f5c9b2f4e
資料處理過濾增益集5.1(32位元版) 17bcac30ee5d7b4dd20d250328d49ee3
ExcelMail3.2免費教育版(64位元版) 8bb1a828323173ab42aa6cdabebbedba
ExcelMail3.2免費教育版(32位元版) bedb57cca2e358b1d511b92d1fe05807

請至增益集工坊下載

資料處理過濾增益集5.0下載點

請至增益集工坊下載

32位元Office版本適用之資料處理過濾增益集5.0

檔案md5碼:

 

04734efae37435db21b36f82e58b7a60

檔案md5碼:64位元Office版本適用之資料處理過濾增益集5.0

 

 

b64ab752106cef772baec55c16447bd1

2.64位元版本資料處理過濾增益集5.0安裝編譯過程需要較長時間請耐心等候。1.系統未安裝Visual Studio 2010 Tools for Office Runtime,在安裝64位元Office版本適用之資料處理過濾增益集5.0時,安裝過程會出現錯誤訊息停止安裝動作,請至微軟網站下載Visual Studio 2010 Tools for Office Runtime 下載後進行安裝再重新執行資料處理過濾增益集5.0安裝。安裝注意事項:

資料處理過濾增益集5.0發佈倒數

經過這麼久距離上個版本3.9發佈已經間隔一段不算短的時間,主因是自己的懶散,次要的原因是前段時間自己孩子面臨升高中,大部分下班空閒的時間都忙於接送孩子上課補習。雖然陸續對程式有所增補,但是並沒有進行發表只是自己在工作上使用,直到最近才動念要發佈新的版本,原因是發現再不整理發表,有些寫的一年只用幾次的功能連自己都忘記如何操作,所以決定給自己一點壓力發佈,5.0版本算是一個階段的開始吧!

『資料處理過濾增益集3.8』新功能「產生相片檢核檔」

這學期新增一項數位學生證業務,要協助五十幾所高國中小製作有悠遊卡功能的學生證,在開學前開了一次會議,會議中有學校反應以往的檢核程式有一個缺點,就是學生的相片檢核檔列印的時候沒有一班同一頁,一頁裏面有其他班級的學生,檢視以前的相片檢核檔的樣式類似下圖,但是所有學生的相片是連續排在頁面中,所以雖然程式有依班級排序,但是因為一頁呈現的人數不一定剛好一班會有其他班的資料,使用者希望一個班的資料在一起,不要混有其他班的資料在其中,否則註冊組必須手動剪裁給各班,這項要求依我的了解應該不會太難,只要報名進行修正就好,在會議中答應各校會請設計檢核程式的軟體公司進行修改。

image

在還沒有得到軟體公司的答覆是否可以修改,離開學已經很接近了,為了避免開天窗,就思考如果單純只是列印學生的相片檢核檔,其實這個功能在以前幫學生進行升學報名的時候,把收來的相片電子檔要印出來給學生檢查是否本為本人已經用『座位表製作增益集』處理過,所以就把以前的程式碼修改做為一個預備方案,不過後來電腦公司有按照需要進行修改,這個預備方案就沒有用上,不過我想其他非新北市的學校註冊組長也許也會用上,所以把它使用的方法分享出來。

我把這個功能加入『資料處理過濾增益集3.8』中[特殊操作]\[產生相片檢核檔]。

image

程式的表單如下:

image

 

要利用此功能產生相片檢核檔首先要建立一個Excel工作簿其中要有一個工作表(例如下工作表一),工作表中必須提供基本的幾個欄位資料,第一列必須是標題列,除學生的基本資料外,其中"相片"這一欄必須是學生資料對應的相片檔名(不需要附檔名,因為在選擇[相片格式]時會自動對應相片的格式),另外要有分割檔案的依據欄位,例如我們要一個班一個檔案,必須要有"班級"這個欄位資料,其他欄位資料主要是要標記相片提供檢核的目的,例如"姓名"或"座號"。

image(工作表一)

 

以下分別將表單上參數說明

1.[相片大下]:此下拉選單提供1吋與2吋的大頭照選項

2.[相片格式]:此下拉選單提供.jpg、.bmp、.png、.gif等檔案格式選擇

3.[輸出版面大小]:此下拉選單提供輸出之檔案版面的選擇,有B5、B4與A4、A5的選擇

4.[輸出檔案格式]:此下拉選單提供.docx、.pdf、.xps選擇

5.[指定分群組欄位]:此參數主要是提供相片輸出檔案內容分割的依據,在學校通常是以班為單位,所以必須在工作表上建立學生班級的欄位,程式會自動進行依此欄位進行排序。

6.[相片資料所在目錄]:指定照片所在目錄

7.[相片檔名資料範圍]:即上述"工作表一"中"相片"那一欄,把產生的資料範圍選起來,程式只會產生選取的範圍部分。

8.[相片標記資料欄位]:這個參數是要加入相片底下的標記,例如"年級"、"班級"、"座號"、"姓名"等,建議不要選擇太多欄位,因為相片底下標記的文字長度與相片寬度有關,2吋相片約提供11個12點字的長度。

讀者可以下載範例,以下表單的參數去操作試試看。

 

image

產生的檔案如下,一個班一個檔案。

image

如何利用『資料處理過濾增益集』分割地址資料?

註冊組開學都要進行學生資料建檔的工作,學生的聯絡地址與戶籍地址是其中一個重要資料,校務行政系統為了方便註冊組建立資料除了提供單筆新增修改的功能,也提供Excel格式的批次匯入,但是比較麻煩的是校務行政系統的Excel格式要求將戶籍地址或通訊地址依照下列欄位分別建立:

戶籍地址-郵遞區號 戶籍地址-縣市(請填入完整的縣市名稱) 戶籍地址-鄉鎮市區(請填入完整的名稱) 戶籍地址-村里(請填入完整的名稱) 戶籍地址-鄰(請填入半形數字) 戶籍地址-住址(包含路巷段號樓等)

雖然我們可以從學生入學管道或會考資料取得大部分高一新生的戶籍地址或通訊地址的電子檔,但是並不會依照上述欄位分割,而是全部在一個欄位如下

新北市中和區安平里130鄰中和路292巷21弄70號1樓
新北市土城區廷寮里136鄰永豐路255巷340號
新北市土城區埤林里350鄰學府路1段826巷40號11樓
新北市土城區頂福里19鄰中央路4段125巷2弄54號
新北市土城區日和里123鄰中央路1段299巷28號一樓
臺北市信義區莊敬路800號30樓
新北市板橋區公館里17鄰文化路1段385巷36號
新北市中和區興南路133巷16弄18號四樓
新北市樹林區柑園里28鄰大雅路303號24樓
新北市板橋區忠孝路10巷81號16樓
新北市板橋區九如里150鄰民享街224號21樓

 

在Excel中有提供『資料剖析』的功能

image

可以用分隔符號或固定的寬度來將地址分割,使用特定的分隔符號是可以用文字來將資料分割,但是沒有辦法只取得我們要的資料。而使用固定寬度分割資料的方法,如果提供資料者有依照地址書寫的順序規則提供,是有機會取得部分正確的資料,例如『縣市』或『鄉鎮市區』。但是因為地址資料是家長或學生提供給學校,經常不是完整的資料,有時會將一些地址內容省略或不按正常書寫順序,所以依照資料固定長度來分割不是很好的選擇,除了切完之後也許部分資料是正確,但是錯誤的部分要檢查出來是麻煩。

所以我在『資料處理過濾增益集3.8』的「正規比對資料過濾」\「工作表資料內容處理」中[用來取代符合篩選資料的字串]參數,新增一個#i#的參數選擇。

image

以下表為例,我們要將A欄的地址資料依序分割出"縣市"、"鄉鎮市區"、"村里"、"鄰"、"住址(包含路巷段號樓等)",然後依序寫入B、C、D、E、F等欄

image

我們在「工作表資料內容處理」表單的參數設定如下

image

解釋一下[用來取代字串的規則]此參數是代表我們要取代的正規比對規則,舉例我們要在B欄寫入縣市資料,所以我們要比對地址資料把縣市資料找出來並用某一個字串來取代它,
"\w{2}市|\w{2}縣"這個比對規則代表的就是比對xx市或xx縣,\w{2}是代表任意兩個字,所以新北市或台北市或彰化縣都符合。

[用來取代浮合篩選資料的字串 ]此參數是用來取代符合[用來取代字串的規則]的字串,例如地址資料中的"新北市"符合篩選規則"\w{2}市",則程式會用[用來取代浮合篩選資料的字串 ]此參數來取代這筆資料,如果[用來取代浮合篩選資料的字串 ]此參數輸入#i#,則代表是用是符合[用來取代字串的規則]規則的字串來取代,舉例地址是:"新北市中和區安平里130鄰中和路292巷21弄70號1樓",則用上述的參數設定處理的最後結果整筆資料會被"新北市"三個字取代,這樣就可以達到將縣市資料分割的目的。

如果要分割"鄉鎮市區"資料寫入C欄,則參數可以如此設定

image

讀者可以自行試試看村里、 鄰、 住址(包含路巷段號樓等)的操作。

範例檔下載

『資料處理過濾增益集3.8發佈』

最近把資料處理過濾增益集更新至3.8,有興趣的網友可以至http://www.addinfactory.com免費註冊下載,先版的資料處理過濾增益集除了修正bug之外,新增一些與教育行政工作相關的功能,主要是增加上學期承接教育局任務所設計的功能。

包括以下新增功能

一、資料輸入統計

1.T分數計算

2.Z值計算

image

二、全部工作表批次工具

1.分割工做表為工作簿

2.多工作簿合併為一

3.工作表合併

4.清除每個工作表相同區域內容

5.設定每個工作表相同列印區域

6.設定每個工作表相同未鎖定區域

7.保護美個工作表

8.解除保護每個工作表

9.移除每個工作表公式

image

三、特殊操作

1.產生相片檢核檔案(報名時收照片檢核用)

image

四、正規比對資料過濾

1.工作表資料內容處理:用來取代符合篩選資料字串,新增參數#i#代表用符合樣版的字串來取代。

image

如何批次在每個Excel工作表插入樞紐分析表?(『資料處理過濾增益集3.7』之『全部工作表批次工具』使用範例)

前言:Excel在學生資料處理上非常好用,以我擔任的行政角色經常需要一個班級分在一個工作表去進行處理,這時候如果能同步進行多工作表處理,可以省下很多時間,尤其像我服務的學校有6個年段100多個班,為此我設計了幾個多工作表處理的巨集程式。

以前陣子收到高三學生的第一次英聽成績為例,大考給我們的成績是全校高三的成績,成績格式如下(成績內容是電腦產生之假資料):

image

 

學生個別會收到成績單,而老師們希望行政單位能夠給各班全班的成績並有等級人數的統計方便老師進行教學方析,如果是給全校各班的統計分析,以英聽成績來說處理不難,我們只要將報名序號利用Excel\[資料]\[資料剖析]以[固定寬度]切出班級與座號即可,再利用插入樞紐分析表進行簡單的分類統計,如下圖:

 

image

 

但避免不必要爭議,原則我們不會給老師全校的成績,只會給老師所任教的班級,所以我們要提供的是像下圖所示的資料:

 

image

 

要製作這樣的資料,首先我們要把各班的成績分開來,要進行分開的步驟可以參考這篇文章的影片資料處理過濾增益集3.5.1應用範例:如何快速分割工作表資料?,步驟都差不多只是分割的參數要改成下表:

 

image

 

執行分割後的結果如下圖,每班成績分在一個工作表上:

 

image

 

接下來只要在每個工作表上插入等級計數的樞紐分析表,一個個做太麻煩,所以我設計一個功能可以批次將每一個工作表加入指定欄位的計數樞紐分析表。點選『資料處理過濾增益集3.7』\『全部工作表批次工具』\[加入計數樞紐分析表]

 

image

 

程式會自動選取資料範圍並將第一列欄位標題擷取至[指定欄位進行計數]表單中,以逗號分隔。

 

image

 

我們只需要針對"等級"去進行統計計數,所以輸入值只保留"等級",按下[確定]。

 

image

 

執行後即可在每一個工作表表插入計數樞紐分析表。

image

『資料處理過濾增益集』3.7版本發佈

這個版本將『格式設定』的功能改為『全部工作表批次工具』,將所有與批次工作表處理相關的功能集中於此。
image

『全部工作表批次工具』之下所有功能都是針對全部工作表或工作簿進行批次操作,這些都是因為業務上經常要針對多個工作表或工作簿之間操作或設定而設計出來的功能,因為本校的班級數100多班,要產生各班單獨的工作表或工作簿都是一件繁複的工作,有了這些工具可以節省很多的時間。有興趣的網友可以至http://www.addinfactory.com 增益集工坊下載。