先來看看兩枚案例:
<<案例一>>
BB出世,有人會擺“滿月宴”,有人則會擺“百日宴”。滿月宴的情況很簡單,譬如你5月5日出世,6月5日擺就對了;或者有人會按農曆算,四月初一出世,就于月初一擺囉~!至於百日宴,除了慢慢戳日曆、數手指外,看來沒有其他好辦法了......
BB出世,有人會擺“滿月宴”,有人則會擺“百日宴”。滿月宴的情況很簡單,譬如你5月5日出世,6月5日擺就對了;或者有人會按農曆算,四月初一出世,就于月初一擺囉~!至於百日宴,除了慢慢戳日曆、數手指外,看來沒有其他好辦法了......
<<案例二>>
某發展商售樓有如下規定:落訂首日簽臨約,7日後付10%樓款,30日後補足至20%,45日後付全數並簽正式合約。碰上旺季,要是每單交易都數手指計算收錢日期,恐怕發展商還要專門請人數日曆了......
某發展商售樓有如下規定:落訂首日簽臨約,7日後付10%樓款,30日後補足至20%,45日後付全數並簽正式合約。碰上旺季,要是每單交易都數手指計算收錢日期,恐怕發展商還要專門請人數日曆了......
日常生活中的確不時會遇上這樣的問題。有時我們想知道,XXX天以後是甚麼日子(例如有人要假裝記得結婚1000日紀念日...);有時則反過來,想知道兩個日子之間隔了多少天(例如要計算托里斯的入球荒維持了多長時間,或者計算距離奧運會開幕有多長時間...)。正因為有需求,互聯網上一些“日期計算器”也就應運而生。實際上,微軟Excel的一些小功能,也可以實現日期計算的,而且相當強大。
Excel的加減乘除、函數功能,各位恐怕早已駕輕就熟了。原來,利用這些功能還能計日期。
回到案例一,為河蟹起見,這次不用5月5日,改用筆者的生日好了,各位讀者記得送禮物。例如,要計算筆者甚麼時候應該擺百日宴,首先在任何一個格子(如“A1”格)內輸入出生日期:1988/07/07;然後很簡單,在另一個空格子(如“B1”格)內,輸入以下公式:
馬上就得了結果:1988/10/15。(如圖1)=A1+100
圖1 |
不過有一點,我不知道百日宴是怎樣計的。根據我的理解,應該出生那天算是第一天,由此往後推100天。
而Excel裡則更像一般運算(事實上就是一般數字的運算,原理略),換言之,如果你輸入的是=A1+0,結果仍是1988/07/07,這是筆者生命中的第1天;=A1+1則是1988/07/08,而實際上,這已經是筆者的第2天了。依次類推,=A1+100應該是第101天。所以,百日宴應該早一天擺,即1988/10/14。
不管怎樣,百日宴的目的就是讓親戚朋友歡聚一堂,早一天、遲一天、早十天、遲十天,其實都無傷大雅。所以,如果因為筆者文字功力有限,沒有把上面那段表述清楚,讀者們千萬不要太較真。擇日不如撞日。
~~~~~~~~~~~~~~~~~~~~~~~~~
計算日期差同樣簡單。剛才用了加法運算,現在就用減法。例如,我想知道六/蟹/四事件時自己是多大,就在“A1“格內輸入出生日期:1988/07/07,然後“B1”格輸入六/蟹/四事件的日期:1989/06/04,最後在“C1”格輸入公式:
Excel 2007很聰明,直接給了結果:332;Excel 2003笨一些,好像是1900/11/27之類的怪茄結果,只需選取“C1“單元格-->右鍵-->設置單元格格式-->“分類”裡面選“常規”即可(如圖2)。=B1-A1
圖2 |
很簡單,不多說了。
~~~~~~~~~~~~~~~~~~~~~~~~~
除了日數外,有時我們還要加減月數。請見案例三:
<<案例三>>
某自由行因為在香港坐小巴沒有佩帶安全帶,結果慘被罰款$5,000.00,並監禁3個月(見以下視頻)。
自由行的親戚想去接放監,但是只知道入獄日期,如何用Excel計算出獄日期呢?
某自由行因為在香港坐小巴沒有佩帶安全帶,結果慘被罰款$5,000.00,並監禁3個月(見以下視頻)。
自由行的親戚想去接放監,但是只知道入獄日期,如何用Excel計算出獄日期呢?
其實案例三完全是小題大造,三個月根本就不必用電腦算。但有時不一定是三個月,而可能(因為殺人放火、走私販毒、奸淫擄掠、通番賣國、尋X滋事......)是5年7個月零13日、8年4個月零9日云云。這時候,不靠電腦還真算不清。
日期就不變了,還是1988年7月7日。經過三個月,應該就是同年10月7日,對吧?!看看用Excel怎麼算!
無疑,這次應該加3個月,但公式不能像上面兩例般直接。這次必須用函數了。先介紹四個函數:
- YEAR(日期X):傳回“日期X”的年份。例如,“A1”格裡面是1988/07/07,在“B1”格輸入公式
=YEAR(A1)
則B1格的結果為1988。
- MONTH(日期X):傳回“日期X”的月份。使用方法同上。
- DAY(日期X):傳回“日期X”的“日份”(“日”應該用甚麼詞同“年份”、“月份”對應???)。使用方法同上。
- DATE(年,月,日):輸入年、月、日3個參數,傳回一個日期。eg. 在某空格輸入公式
=DATE(1988,7,7)
則得到結果1988/07/07,如圖3。
圖3 |
四個函數看似都很“廢”,沒甚麼特別用途。其實內有乾坤。
例如,如果你要計算1988年7月7日之後三個月是哪一天,可以輸入以下公式:
=DATE(1988,7+3,7)就是將月的參數加3,得到的結果當然就是1988/10/07。
而如果自由行先生的刑期是5年7個月零13日,就可以輸入以下公式:
=DATE(1988+5,7+7,7+13)那麼他出獄的日期便是:1994年2月20日!(如圖4)
圖4 |
~~~~~~~~~~~~~~~~~~~~~~~~~
很方便吧!至此我們才用過DATE這個函數,另外三個還未接觸過。確實,如果你是接出獄的,用這個功能就夠了。但是,假如你是典獄長,某天接來了一伙囚犯,以及一份長長的名單,寫着每位犯人的刑期,而你要計算他們的出獄日期。這樣,即使不用數手指、數日曆,每名囚犯寫一個公式,也已經夠麻煩了。
怎麼辦呢?現在要出動前面三個函數出場,即YEAR、MONTH和DAY。首先像圖5那樣弄張表,寫明入獄日期和刑期。然後在路人甲的出獄日期處輸入以下公式:
=DATE(YEAR(B3)+C3,MONTH(B3)+D3,DAY(B3)+E3)
圖5 |
計算出獄日期還是用DATE這個函數,不過今次,裡面的年、月、日三個參數改用函數,而不是直接輸入了。
- 年參數是YEAR(B3)+C3,YEAR(B3)是路人甲入獄的年份,C3是刑期的年數。
- 月參數是MONTH(B3)+D3,MONTH(B3)是路人甲入獄的月份,C3是刑期的月數。
- 日參數是DAY(B3)+E3,DAY(B3)是路人甲入獄的日期,C3是刑期的日數。
圖6 |
<待續,以下為草稿,請無視>
~~~~~~~~~~~~~~~~~~~~~~~~~
利用這四個函數,能夠計算兩個日期之間隔了的年數、月數嗎?筆者暫未研究過,各位若知道,請不吝賜教。
~~~~~~~~~~~~~~~~~~~~~~~~~
文章的最後再送多兩個函數:WORKDAY和NETWORKDAYS。首先還是看案例。
<<案例四>>
我們有時去申請政府文件(或某些假裝高級的私人機構也會這樣),例如身份證、護照等等,申請完畢後,工作人員會告訴我們,xx個工作天後來領取。有時他們會告訴我們具體日期,有時則沒有。Excel能夠幫我們數“工作天”嗎?
我們有時去申請政府文件(或某些假裝高級的私人機構也會這樣),例如身份證、護照等等,申請完畢後,工作人員會告訴我們,xx個工作天後來領取。有時他們會告訴我們具體日期,有時則沒有。Excel能夠幫我們數“工作天”嗎?
答案是可以的,而且功能頗為強大。不過要用WORKDAY這個函數。語法如下:
WORKDAY(起始日期,工作日數,假期)首先不是每個Excel都有這個函數的,2007版好像是自帶的,2003則要安裝一下。方法為:打開Excel-->“工具”-->“增益集”(見圖7,簡體版則稱為“加載宏”)-->勾選“分析工具箱”-->“確定”。過程可能需要Office 2003的安裝文件,如果你用正版,就把安裝光碟插進去;如果你用盜版,嘿嘿嘿......
圖7(此圖為網上找來的) |
安裝完,可以繼續了。剛才說到WORKDAY函數有三個參數:起始日期、工作日數、假期。怎樣用呢?例如,路人乙於2012年10月22日申請身份證,十個工作天後可取證,其中10月23日是重陽節假期,問路人乙何時可取證?
首先在任一空格(如“A1”格)輸入申請日期:2012/10/22,然後“B1”格輸入重陽假期:2012/10/23,最後在“C1”格輸入以下公式:
=WORKDAY(A1,10,B1)Excel會將所有星期六、星期日,以及我們輸入的假期都視為非工作日,其他日子為工作日。最後得到結果:2012/11/06(圖8),這就是由申請日10月22日起計,10個工作天後的日期,即路人乙應該領證的日期。
圖8 |
各位如果做正苦工,可以把整年的公眾假期列成一張表,譬如由B1列到B20吧?!然後寫公式時這樣寫:
=WORKDAY(A1,10,B1:B20)這樣便可保證萬無一失,不會算多或算少一天了。
~~~~~~~~~~~~~~~~~~~~~~~~~
還有一個函數算是WORKDAY的孖生兄弟,叫做NETWORKDAYS。剛開始我看不明白,計算工作日跟網絡(network)有甚麼關係呢?!?後來一想,哦,原來是:Net work-days,Net是淨的意思。
故名思義,NETWORKDAYS函數是計算兩個日期之間的工作日數目的。其語法如下:
NETWORKDAYS(起始日期,終止日期,假期)
例如,我想知今天距離2013年元旦還有多少工作天,可以先在“A1”格輸入公式:
=TODAY()
然後“B1”格輸入2013/01/01,代表明年的元旦日;“C1”至“C4”輸入今年剩下的假期:今日重陽節、12月20回歸、21日冬至、24及25聖誕。最後在“D1”格輸入以下公式:
=NETWORKDAYS(A1,B1,C1:C5)
好,現在“D1”格顯示46(如圖9),換言之,再過46個工作天就到2013年了。可惜這不是事實,因為我每個星期六都要返半日(T_T)。
圖9 |
就這樣吧!
~~~~~~~~~~~~~~~~~~~~~~~~~ FYI:以下是微軟Office寫的關於日期計算的教程,寫得深入淺出,沒有筆者般囉嗦。趕時間的商務客可參考。
http://office.microsoft.com/zh-tw/excel-help/RZ006177103.aspx?CTT=1&origin=EC001022986
~~~~~~~~~~~~~~~~~~~~~~~~~
最最最後要強調一句:Excel 公式不接受 1990 年 1 月 1 日之前的日期。所以如果你要計算清朝那些事兒,恕我愛莫能助......
<完>
沒有留言:
張貼留言