2010/02/04

最長的一日

昨天接到社發科傳來的 Excel 檔案請我調整格式方便列印,內容是各縣市彙整出來的莫拉克風災罹難者家屬的社工訪視情況,有 22 張工作表。業務單位的工作性質與量果然不一樣,看到高雄縣住營名單加非住營名單洋洋灑灑列了 59 + 226 人就膽戰心驚。早上訂便當沒空,下午花了約三小時整理好,快下班前交回去,但承辦人顯然還有一大堆事情做不完,例如對照官方名單 641 人和各縣市彙整出來的名單的差異,找出哪些家屬還沒有社工訪問。(我猜測這沒辦法由各縣市自己做,因為死亡名單是列罹難地點,和家屬所在地不一定相同,而社工得到家屬所在地,所以必須在縣市之上的層級進行分配。)六百多筆資料剛好是個有趣的中間值,已經不太可能人工比對,但對機器又是相當小的數字。因此我稍微猶豫一下發現沒別的選擇,就直接把鍵盤拿過來打 VBA 了。很快地過了下班時間,情況也愈趨複雜:L1 :=「官方名單 - 縣市彙整名單」和 L2 :=「縣市彙整名單 - 官方名單」都不是空的,而且都是七、八十人的規模,乍看之下這種差額完全無法解釋。於是我開始人工排除 exact match 無法處理的情況,例如字無法顯示所以打個問號、字打錯、名字打反之類的,縣市彙整名單中少數幾個重複出現於不同縣市要排除,有些沒列在官方名單內(因為官方名單是算那些已領慰助金的人,但縣市有呈報未領者)也要排除。最後 L2 成功清空,L1 剩下 23 人,但其中有出現在縣市名單的一人不知為何沒被 VBA 程式劃掉,手動劃掉之後數字就合了!

結果事情還真的沒想像中簡單。事後又突然發現那個人沒被劃掉是因為他在官方名單和縣市名單都出現兩次,我是把縣市名單的每個人名取出來,對官方名單做線性搜尋,所以兩次都劃掉官方名單上的第一次 occurrence,留下第二次 occurrence 沒碰到。因為兩筆的資料不同,我們只好假設這出現兩次的人名其實是兩個同姓名的人。(至少假設這樣,作業上就會是正確的。)但數字就兜不攏了,縣市名單又多一個人!最後在審視縣市名單時,過來關心的同梯正好看到兩個相同人名,其中一個後面有加註解,電腦比對上視為不同,但實際上是同一人!That settled the matter. 我把差額解釋打一打,再把全部的縣市名單印出來就結束了,承辦人和科長看起來都很感動 XD,此時已超過十點… 特地過來的管理幹部中間幫我買了晚餐,並堅持等我結束用機車載我回宿舍(「腳踏車沒有燈,晚上騎太危險了」he said)。

To me it was a bit like one of the adventures of Sherlock Holmes. At first the problem looked puzzling and rather impossible to explain. ("This is a most extraordinary case," said Holmes, "a most incomprehensible affair.") I abstracted it to a pure computational problem and looked for clues to guide my search and evidences to eliminate impossible situations, and steadily the answer was approached and finally reached, which was in fact simple. Even though it was not a hard problem (similar but no harder than debugging a program), I did feel the excitement of problem solving once again. I used Excel formulas, pivot tables, and VBA, practically practicing all my knowledge about Excel, including some recently picked-up one. Except for being physically tired (which reminded me of the days working on TOY86 and AoPA, which were actually much crazier than this), I was, in fact, quite satisfied. XD

--
這樣出差加班都試過啦 XD。

Labels:

Anonymous Anonymous2/05/2010 6:57 am 說:

趣味橫生(?

 
Blogger Airman Of Chunghua Wind2/05/2010 2:10 pm 說:

這讓我想到前幾天遇到的一個離散問題,這是個邏輯問題:對於參與問卷人數而言,人數不等於男生的人數加上女生的人數,因為就是會有人沒寫性別,所以還要加上個未知性別。

 
Blogger Airman Of Chunghua Wind2/05/2010 2:13 pm 說:

不過學長怎麼文末突然轉用英文,在為出國做準備嗎XD

 
Blogger Josh Ko2/06/2010 11:44 am 說:

只是順著寫下來而已 XD。

 
Blogger Marvelous Pine2/06/2010 3:44 pm 說:

你喜歡騎腳踏車

 
Blogger Airman Of Chunghua Wind2/07/2010 11:59 am 說:

說到交通工具,學長有打算學開車嗎?
因為有位曾經出國留學的同學,他說在美國沒有車子,光靠大眾交通運輸太不方便了,而且冬天時,不會開車很危險。

 
Blogger XOO2/07/2010 9:43 pm 說:

>他說在美國沒有車子,光靠大眾交通運輸太不方便了

英國不大需要車,雖然不如台灣方便,但好像沒聽說留學生沒車就沒辦法生活的例子。

btw, 我找到別人寫好的 JavsScript 可以直接用 LaTeX 語法轉 MathML。看我的範例:http://xcyclxoo.blogspot.com/

 

<< 回到主頁