2012年7月10日 星期二

【Excel】不可不知的〔選取〕絕招祕技…殺…勝用十年功(Lesson 1/1)

由於公司裡的Excel文件通常含有大量的資料…
經常在與同事談問題時,總是要跳到儲存格的最後一筆資料或是進行大範圍的資料選取

或許不少人的做法就是拉著滑鼠不斷往右、往下去圈選您要的資料~








試想如果你的資料很多,超過頁面範圍…
或是筆數很多,要一直用力按著滑鼠,拉到邊邊讓頁面自動往下跳…
拉太快又總是超過你要的範圍…
拉來拉去,手不抽筋才怪(別懷疑,章老師就曾手快抽筋過@@)

這個時候,總是標榜著『懶惰是進步動力』的我
找尋著更簡單更方便的操作方法

拿出我的必殺絕招…同時,也是最常被別人詢問的一門功夫~~
快捷鍵組合

這並不是啥特別的祕密!
只是一般人不一定常使用
可是用習慣了,可是會非常神勇的喔!


《1》+
跳到連續資料的『最左上(第一個)』、『最右下(最後一個)』的儲存格

《2》 +
跳到連續資料的『最左邊』、『最上面』、『最右邊』、『最下面』的儲存格



《3》 + +
連續選取的『左邊』、『最上面』、『右邊』、『下面』的儲存格



《4》 + +
選取整張表格~~嘿嘿!


一招半式闖江湖,有時靠的並不是高深的技巧~
而是熟悉快速的習慣~~

光跳動加選取的幾個動作,就讓別人不知你變了什麼魔術喔!
同學們,試試吧~~

剛開始一定不太習慣,動作慢些沒關係!
沒消多久…你就會習慣到跟老師一樣…騙騙人,很容易的喔!




2012年7月9日 星期一

【Web】抓取網頁上的圖片"存檔",其實也可以很容易

老師的同事們,偶爾會跑來和我打哈哈…順道問些電腦或軟體有的沒有的問題
我當然是非常樂意的解答,因為常常會有免費下午茶或點心可以吃~
( ↑ 相信我,我絕不是為這個理由而認真滴~~)

有時在說明如何操作或解法時
順手的動作,會被同事突然叫暫停
『妳剛剛那個是怎麼弄的??』

別懷疑,電腦其實有些很簡便的操作方法
可是並不是每個人都知道
別設想大家都應該曉得
事實上,大家~~嗯嗯!都不曉得!

今天就先舉個簡單的例子:
如果你在網頁上看到某張圖,想抓下來…
一般正規的作法就是『按右鍵→另存影像為…』

這時候,你可以選擇要將檔案存在哪裡~(然後依步驟選資料夾等等)

但是如果…你和老師一樣,都把暫存東西先存桌面,然後確認要使用才歸入分類資料夾中~
那就可以…來玩 拖拉遊戲 了!

用你的滑鼠…把你想要抓下來的圖片~直接按著它,拖到桌面上~~然後放掉!
(快去拖一個看看)

但如果…你想直接存入某特定的資料夾呢?????
打開我的電腦或檔案總管,選到該資料夾~
然後…嘿嘿!再拖…拖…拖…
把圖片拖進去吧!!

拖字訣!有時還蠻好用的喔!!

今天的作業,快把章老師拖到你的桌面上!
請記得拖完要刪掉@@





2012年7月7日 星期六

【Excel】IF,假如你不會用…小心落伍囉~( Lesson 1/1)

在職場上應用Excel,除了基本的加減乘除外,最常碰到一個問題,就是"判斷"~~

如果金額>多少,該怎麼處理,不是的話該怎麼處理?
如果除數是0,值應顯示什麼,不是的話就正常除即可←可以避免除數是零的錯誤產生。

如果…是的話…不是的話…
這類問題太常出現了,但若你不會用函數來處理,通常的結果就是讓錯誤在Excel表上顯現,然後再用人工的方式去修正掉。

所以我們今天來上一堂簡單的課~教會你如何應用基本的判斷式。


題目:在B1輸入章老師的年紀,如果30歲以下(含),就說章老師青春無敵。但如果章老師大於30歲,就說章老師熟女風情。反正說好話每日一善無妨,實際年齡的話…要找也粉容易滴!

分析:這個問題就很單純,一個判斷而已…
            章老師年紀    >30    →章老師熟女風情
                                    <=30  →章老師青春無敵

解法:

=IF(B1>30,"章老師熟女風情","章老師青春無敵")
↑你可以把函式直接copy到Excel中貼上,就會看到結果囉!

作法及原理:
IF(條件 , (真)條件'成立'的顯示 , (假)條件'不成立'的顯示)

《1》我們的條件是什麼,就是章老師的年紀。至於章老師的年紀,是看B1的輸入值來決定。
我們來判定B1的值是否大於30
=B1>30

《2》當《1》的條件成立時,代表的是章老師已年過30了…所以要顯示"章老師熟女風情"。但是如果不成立呢,就必需顯示"章老師青春無敵"。所以把這兩個字串分別放入(真)與(假)的位置即可。
=IF(B1>30,"章老師熟女風情","章老師青春無敵")

IF其實非常簡單是吧!但它的應用卻可以很廣泛。
例如(真)與(假)的部份,不是只能帶"字串"喔~你也可以再加上另一個IF判斷式啊~
試一下吧!

回家作業:
請寫一個判斷式
假如章老師年紀0~20,顯示"活潑可愛"
                            21~40,顯示"小資女孩"
                            41以上,顯示"風韻猶存"
試一下喔!





2012年7月6日 星期五

【Excel】產生連續有規律的序號(Lesson 3/3)



續 【Excel】產生連續有規律的序號(Lesson 2)


解決(b)的問題,再來解決(a)這個文字序號的問題~
(a)A、B、C…是每10個換一次字母!直到J完畢,每100個再重頭由A開始。


解法:
=CHOOSE(IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10)),"A","B","C","D","E","F","G","H","I","J")
↑你可以把函式直接copy到Excel中貼上,就會看到結果囉!


作法及原理:


《1》這裡有提到文字序號(A、B、C…)是每10個才換一次~~,如果我依然想要利用"列號"來得到現在該不該換呢?這時可能就要靠些演算法的分析了。


突然覺得這部份,若沒有面對面說明或遠端教學…對於初學者來說,似乎很容易搞得迷迷糊糊滴~所以老師先列出算式原理…想瞭解滴再似底下找我吧!
=MOD(INT((ROW(A1)-1)/10)+1,10)
注意:這函式到循環10(99~100)時,MOD的結果也是0喔!所以要用上一堂課IF的方式判斷改成10
=IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10))


《2》再來進入本堂課的正題了…如果我可以依據列得到10個1、10個2~10個10,再重覆10個1、10個2…這樣,是否我就可以設定,當值=1時,帶出A、值=2時帶出B…值=10時帶出J?


當然可以囉,用用〔CHOOSE(第幾個,第1個值,第2個值,…,第幾個值)
CHOOSE(1,"A","B","C",...,"J")=A
CHOOSE(2,"A","B","C",...,"J")=B
CHOOSE(10,"A","B","C",...,"J")=J

好,CHOOSE裡有1、2、10,我們不是在《1》裡已經設出來了!
那…就把它換進去吧!
=CHOOSE(IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10)),"A","B","C","D","E","F","G","H","I","J")

如果你寫出來了!恭禧你,可以下課囉!!記得…回家作業~~

回家作業:
還記得Lesson1時,有提到最原始的問題
問題:2200-A01~A10、2200-B01~B10…2200-J01~J10,再來就2202-A01~A10…
請大家想想…前面4碼怎麼處理吧!
按Lesson1、Lesson2的步驟,就可以求出來了喔!加油~Go~

【Excel】產生連續有規律的序號(Lesson 2/3)

續 【Excel】產生連續有規律的序號(Lesson 1)

在你瞭解問題之後…廢話就不多說了…我們先來解決(b)的問題
(b)01、02、03…則是每一個換一次數字!直到10完畢,每10個再重頭由01開始。


解法:
=RIGHT(100+IF(MOD(ROW(A1),10)=0,10,MOD(ROW(A1),10)),2)
↑你可以把函式直接copy到Excel中貼上,就會看到結果囉!


先說明作法及原理:


《1》我們可以利用Excel的列號,來產生我們所需要的序號。例如:第一列就是01、第二列就是02~第10列就是10,第11列呢…呵呵!要變成01喔~千萬別忘記了。


如何得到第幾列的值呢…請用〔ROW(儲存格)
ROW(A1)=1
ROW(B10)=10
ROW(X1001)=1001
=ROW(A1)
這個有時還蠻好用的喔!呵呵!


2  再來就是每10個要從頭開始了,這時我們就可以利用10的餘數來得到我們要的循環~
利用〔MOD(被除數,除數)〕來得到餘數的值~
MOD(1,10)=1
MOD(5,10)=5
MOD(16,10)=6
那請問MOD(20,10)=?????
=MOD(ROW(A1),10)
MOD(20,10)=0…怎麼辦?剛好整除的,我們要的是10耶~~~


3當我們將列數  1  拿來除以10,取得他的餘數  2,就可以得到1、2、3…9、0這樣的循環數字了。但如何將0→10呢
最簡單的方式就是用〔IF(條件,真,假)〕來判斷了!


因為IF這個判斷式太常用,也非常好用…所以另外開堂課囉!這裡不說了!
=IF(MOD(ROW(A1),10)=0,10,MOD(ROW(A1),10))


4》最後,我們來處理數字前補零這檔事。一般編碼,都有固定碼位。因此不夠的地方前面就要補零。作法也很多,老師自己固定的做法,就是如果固定2碼,我就給他+100,再取右邊2碼數字。如果固定3碼呢?同理我就+1000,取右邊3碼數字。
怎麼取右邊數字呢,請利用RIGHT(字串,幾碼)〕來做囉!
這個字串處理,改天也來開堂課吧!
=RIGHT(100+IF(MOD(ROW(A1),10)=0,10,MOD(ROW(A1),10)),2)


下一堂: 【Excel】產生連續有規律的序號(Lesson 3)

【Excel】產生連續有規律的序號(Lesson 1/3)

今天,同事來問我是否可以從Excel寫一個函數來產生儲位代碼。我想,這並不是難事。Excel本身讓數字一直往上加,一拉就可拉一串,愛用多少就拉多少!


但如果本身序號是有範圍性,然後要重新計算的…例如: A01~A10、B01~B10…
對於一般不善用函數的人(這是大多數),大概就手工十個、十個這樣慢慢拉了~~
偏偏,我們要產生的可能是幾千到數萬個儲位~


要達到這樣的目的,函數方法有很多!!因此我用了最簡單,最"直覺"的方式寫了一小段!

問題:2200-A01~A10、2200-B01~B10…2200-J01~J10,再來就2202-A01~A10…

分析:以下就後面3碼的流水號產生來做說明
     A01、A02、A03、A04、A05、A06、A07、A08、A09、A10
     B01、B02、B03、B04、B05、B06、B07、B08、B09、B10
     一直到J結束


因此
(a)A、B、C…是每10個換一次字母!直到J完畢,每100個再重頭由A開始。
(b)01、02、03…則是每一個換一次數字!直到10完畢,每10個再重頭由01開始。


到這裡…瞭解了嗎?呵呵~~如果不瞭解,再來問老師喔!


* 瞭解問題是非常重要的步驟!如果不瞭解,其實也無需急著往下做!


下一堂:【Excel】產生連續有規律的序號(Lesson 2)

2012年6月14日 星期四

驗證控制項 RegularExpressionValidator


驗證控制項 RegularExpressionValidator 基本的特殊定義字元●[]  用來設定可以接受的字元
  [abcde]表示只接受abcde五個小寫英文字母
  [0-9]表示只接受10個阿拉伯數字
  [a-zA-Z]表示只接受大小寫的英文字母
  [^0-9]表示除了0-9以外的字視都接受(^表示差集合)
●{}  用來設定前面字元重複次數
  [0-9]{5}表示一定要鍵入5個數字字元
  [A-Z]{2,4}表示最少2個、最多4個字元且為英文大寫
  [^abc]{1,}表示最少要輸入1個字元以上,每個字元不可以是a或b或c
●.  表示可接受任意字元
  f.x  代表任何f開頭,x結尾, 共3個  T...y 代表T開頭,y結尾, 共5個字的字串
  T.{3}y 同上面的 "T...y"
●^為差集合,不包含的意思
  [^0-9a-z]..Z 代表搜尋所有前面不是數字和小寫英文字, 中間夾著兩個任意字元 , 最後接著大寫Z的字串
●|  表示邏輯運算子的or
●()  用來區隔規則運算式,以方便閱讀
●\ 上述的字元都是規則運算式中的定義符號,如果要輸入的字元必須含有這些符號,就必須在這些符號前加上倒斜線\
●計算數量用的中繼字元
?  代表前面的項目重複0次或1次
*  代表前面的項目重複0~無限次
+ 代表前面的項目重複1~無限次
● ^ 和 $ 搭配運用 , 表示符合某字開始, 某字結束的字串
一些常用的範圍,我們可以使用預先定義的字元類別:
\d等於 [0-9] 數字
\D等於 [^0-9] 非數字
\s等於 [ \t\n\x0B\f\r] 空白字元
\S等於 [^ \t\n\x0B\f\r] 非空白字元
\w等於 [a-zA-Z_0-9] 數字或是英文字
\W等於 [^a-zA-Z_0-9] 非數字與英文字






一些常用的驗證項目如下
電話號碼
[0-9]{2}-[0-9]{7}
符合如 02-3790850 的電話號碼,但若是電話號碼如082-263409就不符合了
email
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
表示1個以上的數字或是英文字
身份證
([A-Z]|[a-z])\d{9}
第一個字元可以是大小寫的英文,後面接9字元的數字
郵遞區號
\d{3}((-)?\d{2})?
前3字元為數字,-這個符號可有可無,後面再接2字元的數字(也是可有可無) 註:可有可無的符號用?,而要包含哪些字串則用()來括起
電話或手機 
((\d{10})|(((\(\d{2}\))|(\d{2}-))?\d{4}(-)?\d{3}(\d)?))
可以是10字元的數字(如0912123455);也可以是包含括號括住2字元的數字(如(08),或再加個-符號(如08-),或是…好複雜…我也亂了
網址
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
前面一定要http,s可有可無,://都是字串,後面的
([\w-]+\.)+就是表示([\w-]+\.)這串可不停重複,而([\w-]+\.)這串就是說可以是一堆的英數字元並加上.(如abc.BCA.hht.qd.)





















心得
因為區域性的不同,所以驗證方法各異,依我觀察,現在許多網站多只驗證帳號和密碼、mail(因為網站的國際化),若是地址、電話…那真的是要花很大的工夫
再者,驗證的方法也不一定要用這種,複雜性比較高的如驗證網址也可用高級的regex方法來做,而上述的驗證字串也通用於搜尋字串
(ps驗證字符語言不同,字符或有差異…如有錯誤請大家幫忙更正,也提供大陸那邊的文章 給大家參考)