2008年4月28日 星期一

五股濕地淨灘記

 
  星期六,參加了荒野保護協會的淨灘活動,地點在五股濕地的淡水河灘。

〔行前說明,丫丫拿夾子在耍寶〕
##CONTINUE##
  淨灘,其實就是撿垃圾,把隨著潮水日積月累在河灘上的垃圾,努力的清乾淨。這當然不是一件好玩的事情,因為河水並不乾淨,垃圾也很臭,除了人造的垃圾之外,還有死貓死魚之類的。近矩離接觸時,髒臭指數也隨著距離接近成指數上升。實在很佩服荒野保護協會的志工們,可以長期做這種服務性工作。

〔到達河灘地,開始淨灘〕

  不過,對丫丫而言,撿垃圾是一項「任務」,沒有好壞可言。她很認真的尋找垃圾,很努力的用大夾子夾垃圾,很執著的去追被風吹走的垃圾....和我們這些打混摸魚,沒有全力以赴的大人們相比,決定了,給丫丫第一名啦!

[丫丫撿垃圾,超認真〕

  因為剛好漲潮,河灘地被河水淹沒,範圍並不大,不過,河邊的垃圾還是不少,我們努力了約一個半小時,撿了幾大袋垃圾,也算成果豐碩了。

〔驗收成果,垃圾還真是多啊!〕

  有限的人力,無限的垃圾,河灘的垃圾,大概是永遠淨不完的。淨灘,其實不是為了淨灘,而是要淨心!心乾淨了,河灘自然就乾淨了。淨完了灘,希望大家都學會,用心來愛護我們的環境。

  忘了問丫丫,下次還要不要來淨灘?

2008年4月8日 星期二

[軟體] 快速切換網路設定 - NetSetMan

 
  當你帶著筆記型電腦在不同的網路環境下上網時,可能每次都需要重新做網路設定。網路設定怎麼做?〔開始〕〔控制台〕〔網路連線〕〔區域網路〕〔內容〕〔TCP/IP〕〔內容〕,然後選擇「自動取得 IP 位址」或是填入 IP 位址,子網路遮擇,預設閘道....

  很麻煩吧!

  更慘的是,你每次換網路環境都要重覆做一次...

  現在,你有更好的選擇- NetSetMan!!

##CONTINUE##
  NetSetMan 是免費的,可切換英文版中文簡體版。它可以記住六組不同的網路設定,只要事先做好一次網路設定,以後切換設定時,只要按兩個鍵,就可以輕鬆切換了,方便吧!

  上圖是主畫面,有六個頁面可以設定六組設定,每個頁面可以任意自訂名稱,方便使用。第一次設定時,記得按 Refresh 鈕自動掃描你的網路卡,並選擇一張你想設定的網路卡,再開始設定。

  想切換網路設定時,只要選擇你想要的設定頁面,再按 Activate 鈕,就會出現下圖的視窗,並開始更改網路設定。更改完成之後,再按 OK 取消子視窗即可。


2008年4月7日 星期一

[EXCEL] 用公式做資料排序

 
  如果可以用公式來篩選資料,那麼可不可以用公式來排序?也是可以的。

  要把資料排序,可以在〔資料〕〔排序〕,然後選擇你要的鍵值和排序方法。但是,一樣會有一些不方便的地方。

  • 第一,如果資料有所變動,都要重新排序一次,無法自動排序
  • 第二,排序會破壞原始資料的順序
  • 第三,不能只顯示部份欄位,所有欄位都會全部顯示
  如果想跳脫上述的限制,我們可以自己設計公式來做排序的動作。

##CONTINUE##
  如上圖,要從學生的成績單中自動做分數的遞增排序,可以在 E2 輸入陣列公式

=INDEX(B:B,MOD(SMALL($C$2:$C$6*100+ROW($C$2:$C$6),ROW(A1)),100))

  公式說明:
  • $C$2:$C$6*100+ROW($C$2:$C$6): 將分數和所在列數編碼成一個數字,並形成一個陣列。此數字的百位數以上就是分數,百位數以下則是所在列數,將此數字陣列排序後,可以維持分數的正確大小順序,而且可以推算出所在列數。
  • SMALL(數字陣列,ROW(...)): 依序從數字陣列中傳回第一小,第二小...的數字。
  • MOD(SMALL(...),100): 從數字中回推出所在列數。
  • INDEX(顯示資料欄位,SMALL(...)): 從顯示資料欄位中取出所在列數所對應的值。
  在 F2 輸入陣列公式

=INDEX(C:C,MOD(SMALL($C$2:$C$6*100+ROW($C$2:$C$6),ROW(A1)),100))

  再直接往下複製即可。這是一個陣列公式,記得用 CTRL+SHIFT+ENTER 來完成輸入。

  這樣,我們可以任意在 A:C 欄變動資料,E:F 欄會馬上自動顯示出最新的排序結果,而且可以任意指定要顯示那些欄位。

  如果想遞減排序,只要把 SMALL() 改成 LARGE() 就可以了。如 H2 輸入公式

=INDEX(B:B,MOD(LARGE($C$2:$C$6*100+ROW($C$2:$C$6),ROW(A1)),100))


2008/10/06 補充:

  原文中的公式,如果分數有小數點,或是資料超過 100 列,就無法正常運作。故修正公式如下:

  =INDEX(C:C,MOD(SMALL($C$2:$C$6*(10^(X+Y))+ROW($C$2:$C$6),ROW(A1)),10^X))

  其中,資料最大列數必須小於 10^XY 則是分數的小數點位數。

  它的原理和原文中的說明是一樣的,只是把它具體化為公式,比較容易運用。如原文中的例子,資料列數 =6 <100 (=10^2),分數都是整數 (小數 0 位),則 X+Y=2+0=2。

  如果資料列數 =101 <1000 (=10^3),分數有兩位小數,則 X=3,Y=2,公式就要變成

  =INDEX(C:C,MOD(SMALL($C$2:$C$6*(10^(3+2))+ROW($C$2:$C$6),ROW(A1)),10^3))

  或是直接把 10 的次方算出來,變成

  =INDEX(C:C,MOD(SMALL($C$2:$C$6*100000)+ROW($C$2:$C$6),ROW(A1)),1000))

2008年3月31日 星期一

[EXCEL] 用公式篩選資料

 
  相關函數INDEX() / SMALL() / ROW()

  要從一大堆資料當中篩選出符合條件的資料,最簡單的方法就是〔資料〕〔篩選〕〔自動篩選〕,然後選擇你要的條件或公式。但是,這樣會有一些不方便的地方。

  • 第一,進入篩選模式時,不方便輸入新的資料
  • 第二,即使使用的公式都一樣,進入篩選模式時,每次都要重覆輸入篩選公式
  • 第三,不能只篩選部份欄位,所有欄位都會全部顯示。
  如果想跳脫上述的限制,我們可以自己設計公式來做篩選的動作。

##CONTINUE##
  如上圖,要從學生的成績單中篩選出國文不及格的人的姓名和分數,可以在 F2 輸入陣列公式

=INDEX(B:B,SMALL(IF($C$2:$C$10<60,row($c$2:$c$10),""),ROW(C1)))

  公式說明:
  • IF(...): 設定篩選條件,如果 C 欄分數小於 60,就傳回列數,否則傳回空白,傳回值形成一個陣列。
  • SMALL(IF(...),ROW(...)): 依序從陣列中傳回第一小,第二小...的列數。因為不符合條件者傳回空白,在這裡會傳回不合理的列數,導致結果為 0#NUM!
  • INDEX(顯示資料欄位,SMALL(...)): 從 B 欄中依序篩選出列數所對應的值。
  在 G2 輸入陣列公式

=INDEX(C:C,SMALL(IF($C$2:$C$10<60,row($c$2:$c$10),""),ROW(C1)))

  再直接往下複製即可。這是一個陣列公式,記得用 CTRL+SHIFT+ENTER 來完成輸入。

  這樣,我們可以任意在 A:D 欄輸入資料,F:G 欄會馬上自動顯示出最新的篩選結果,而且可以任意指定要顯示那些欄位。

  如果想一次篩選多個條件,例如,想找國文,數學兩科都不及格的人,只要適當修改篩選條件就可以了。如 I2 輸入公式

=INDEX(A:A,SMALL(
IF((($C$2:$C$10<60)+($d$2:$d$10<60))=2,ROW($C$2:$C$10),"")
,
ROW(C1)))

2008年3月28日 星期五

[軟體] 檔案同步-SyncBack

 
  公司配了一台筆記型電腦給我,是好事嗎?或許吧!只是開會時也得帶著 NB 抽空做事情而已....

  言歸正傳,問題來了,同一件文件,有時在桌上型 PC 上編輯,有時在 NB 上編輯,到底哪一份才是最新版本啊?總不能一個檔案一個檔案檢查吧?所以,我開始尋找適用的軟體來幫我自動做檔案同步。我的需求很簡單:

  • 要利用 FTP 傳檔案,因為我可能會跨區域網路。
  • 文件可能在 PC 或 NB 上做修改,所以要自動判斷,把新檔案蓋掉舊檔案。
  • 文件可能在 PC 或 NB 上新增或刪除,所以要方便我們判斷,那些檔案是新增,那些要刪除。
  • 要免費,最好有中文版。
  試了幾個軟體 Allway Sync,GoodSync,最後挑中 SyncBack

[SyncBack 的操作頁面]
##CONTINUE##
  SyncBack免費軟體,有中文版本,專門用來做檔案同步或備份,可以在同一台電腦的兩個目錄做同步,也可以跨網路在兩台電腦上做同步,操作容易,功能強大,只要簡單幾個動作,就可以確保 PC 和 NB 上的檔案同步。相關操作介紹,可以參考網友阿德觀點圖文並茂的說明。

  我的做法如下:在 PC 上安裝 FTP server,NB 上安裝 SyncBack,然後建立三個配置,命名為:同步,下載,上傳。
  • 「同步」設定為自動把新檔案蓋掉舊檔案,若只有一邊有檔案,則不做處理。
  • 「下載」設定為自動把新檔案蓋掉舊檔案,若只有一邊有檔案,則以 PC 為準。
  • 「上傳」設定為自動把新檔案蓋掉舊檔案,若只有一邊有檔案,則以 NB 為準。
  平常在 PC 上做事,要使用 NB 前,先做一次同步,使用完 NB 後,再做一次同步。同步時如果發現只有一邊有檔案,SyncBack 會主動警告,再人工決定要再做一次「下載」或是「上傳」。其實也可以直接「下載」或是「上傳」的,只是保險起見,先做一次同步,以防誤刪檔案。

  另外一個要注意的是,如果使用 FTP server 傳檔案,在設定時,記得把選項「檔案時間不是 GMT/UTC」打勾,不然,傳過來的檔案時間可能會自動加 8 小時,雖然不影響同步功能,但會覺得很奇怪。

[紅色部份記得打勾,檔案時間才會正確]

  SyncBack 另外有收費的專業版本 SyncBack SE,功能更強大。不過,我覺得免費的 SyncBack 就夠用了。