如何玩轉excel日期函數?下面本篇文章帶大家看懂90%的日期運算,今天涉及的函數會比較多,建議小伙伴們可以先收藏,再閱讀~
一、計算上個月的同一天
小麗:“苗老師,我有一個問題,我想算一個月的環比情況,希望能直接和上個月的當天作對比,我本來想直接減30天,但是我算了才發現,有的月份是30天、31天,有的月份是28天、29天不定。怎么才能解決這個問題呢?”
苗老師:“這個好辦,我教你一個函數,EDATE。這個函數就可以實現你的需求,我做一個示范給你看?!比鐖D1所示。
圖1
EDATE函數用于返回計算日期之前或之后指定月份的日期。它有兩個參數,基本格式為EDATE(開始日期,間隔月數)。間隔月數可以為正數、負數、零,它們分別表示計算日期之后的月份,計算日期之前的月份和本月。如圖2所示。
圖2
如果要直接計算當天上月的日期,就直接把TODAY()放在公式里,如圖3所示。
圖3
小麗:“太好了,這樣我就能交差了?!?/p>
EDATE函數是我們工作中十分常用的一個函數,它不僅能用于計算員工轉正日期、合同到期日,還能計算產品有效期截止日等。
二、關于其他的日期函數
苗老師:“既然說到了這里,那我就干脆再多教你幾個關于日期的函數?!?/p>
1. EOMONTH函數
它主要用于返回計算日期之前或之后指定月份的月末,結構和EDATE函數差不多。”如圖4所示。
圖4
除此之外,我們還可以通過簡單的日期計算,使用EOMONTH函數得出相應的月初日期。如圖5所示。
圖5
通過EOMONTH函數算出上個月的月底日期后再+1,就變成了次月的1號。而且,EOMONTH函數還可以用來計算本月的天數,配合上DAY函數,我們就可以這么寫,如圖6所示。
圖6
另外,我們還可以使用EOMONTH函數來判斷本月還剩下多少天,如圖7所示。
圖7
2. DATEDIF函數
說完了EOMONTH函數,我們再說一個十分重要的日期函數,DATEDIF函數。這個函數用于計算兩個日期之差,返回兩個日期之間的年、月、日間隔數。我們可以使用這個函數計算某人的年齡,司齡,工齡等等。如圖8所示。
圖8
上圖中DATEDIF函數的第三參數Y、M、D,分別代表返回兩日期之間相隔的整年數、整月數、天數。不過這個函數有一個禁忌,就是函數里的第一個日期一定要小于第二個日期。
3. WEEKDAY函數
這個函數是關于星期的函數,用于返回一個日期在一個星期中的第幾天,它有兩個參數,基本格式為WEEKDAY(計算的日期,指定以星期幾作為一周的第一天)。如果第二參數省略,則周日會作為一周的第一天。由于各地關于星期的習俗不同,有的國家以周天作為一周的第一天,有的國家以周一作為一周的第一天,此時,我們可以通過調整WEEKDAY函數的第二參數進行計算,如圖9所示。
圖9
但是一定會有人說,我們公司就是以周二作為一周的第一天,該怎么辦呢?別急,這個函數還真考慮到了這些問題,如圖10所示。
圖10
4. WEEKNUM函數
最后再為大家介紹一個關于星期的函數WEEKNUM,這個函數可以返回指定日期是一年中的第幾周,結構和EDATE函數差不多,第二參數用來指定以星期幾作為一周的第一天。在省略第二參數時,同樣以周日作為一周的第一天。如圖11所示。
?
圖11
總結:今天說的這些都是關于日期的函數,它們能幫助我們更好地在日常工作中進行日期的計算。下面的表格列出了今天講解的所有函數公式,并附上了幾個其他關于日期計算的方法,方便大家歸納和總結。
序號 |
說明 |
函數 |
1 |
返回計算日期之后指定月份的日期 |
=EDATE(TODAY(),1) |
2 |
返回計算日期之后指定月份的月末 |
=EOMONTH(TODAY(),1) |
3 |
計算兩個日期相差的整年數 |
=DATEDIF(A2,B2,”Y”) |
4 |
返回計算日期是本周的第幾天 |
=WEEKDAY(TODAY(),2) |
5 |
返回計算日期位于一年中的第幾周 |
=WEEKNUM(TODAY(),2) |
6 |
計算今天是本季度的第幾天 |
=COUPDAYBS(TODAY(),”9999-1″,4,1)+1 |
7 |
計算當前季度有幾天 |
=COUPDAYS(TODAY(),”9999-1″,4,1) |
8 |
計算今天屬于第幾個季度 |
=MONTH(MONTH(TODAY())*10) |
相關學習推薦:excel教程