iT邦幫忙

0

EXCEL問題求解

yiyi 2020-03-20 02:16:062290 瀏覽
  • 分享至 

  • xImage

怎麼樣針對一段區間(幾年幾個月)利用EXCEL算差距?
例如:16年5月-7年8月=8年9月
必須要用怎麼樣的公式設定可以做到呢?

不明 檢舉
你這個區間的資料是如何取得到的?? 是原本有2019/01/03 - 2020/01/03 = 1年 這樣嘛??
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
twyes
iT邦新手 4 級 ‧ 2020-03-20 08:35:37

https://ithelp.ithome.com.tw/upload/images/20200320/20123199x3oguDOR9X.jpg

C2=DATEDIF(A2,B2,"Y")
D2=DATEDIF(A2,B2,"ym")
E2=DATEDIF(A2,B2,"md")
F2=DATEDIF(A2,B2,"Y")& " 年"&DATEDIF(A2,B2,"ym")&" 月"&DATEDIF(A2,B2,"md")& " 日"

DATEDIF很方便,但不知道為何EXCEL內找不到這支函數的說明。

twyes iT邦新手 4 級 ‧ 2020-03-23 08:41:05 檢舉
語法:DATEDIF(start_date,end_date,unit)

Unit說明
"Y":週期中的整年數
"M":週期中的整月數
"D":週期中的天數
"MD":start_date與end_date間的天數差。(忽略日期中的月和年)
"YM":start_date與end_date間的月數差。(忽略日期中的日和年)
"YD":start_date與end_date間的天數差。(忽略日期中的年)
0
Neish
iT邦研究生 1 級 ‧ 2020-03-20 11:22:41

照你的格式來處理

我只會用截字串(MID)的方式來做 公式有點長 不是很好讀

但可以實現

=IF(INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))>INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1)),INT(MID(A1,1,FIND("年",A1)-1))-INT(MID(B1,1,FIND("年",B1)-1))&"年"&INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))-INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1))&"月",INT(MID(A1,1,FIND("年",A1)-1))-1-INT(MID(B1,1,FIND("年",B1)-1))&"年"&INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))+12-INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1))&"月")

拆解說明如下
IF(結束月份>開始月份,結束月份直接減開始月份,結束月份須借位-開始月份)

*結束月份>開始月份
INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))>INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1))

*結束月份直接減開始月份
INT(MID(A1,1,FIND("年",A1)-1))-INT(MID(B1,1,FIND("年",B1)-1))&"年"&INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))-INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1))&"月"

*結束月份須借位-開始月份
INT(MID(A1,1,FIND("年",A1)-1))-1-INT(MID(B1,1,FIND("年",B1)-1))&"年"&INT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))+12-INT(MID(B1,FIND("年",B1)+1,FIND("月",B1)-FIND("年",B1)-1))&"月"

Neish iT邦研究生 1 級 ‧ 2020-03-20 11:28:29 檢舉

例1: 20年8月-19年6月=1年2月
判斷8大於2 則直接拆出年跟月來相減 再組成結果
20-19年8-6月 = 1年2月

例2: 16年5月-7年8月=8年9月
判斷5小於8 則月份須借位來相減 再組成結果
(16-1)-7年(5+12)-8月=8年9月

froce iT邦大師 1 級 ‧ 2020-03-20 17:18:50 檢舉

全部換成月來處理,公式應該會比較短。

slime iT邦大師 1 級 ‧ 2020-03-21 10:18:52 檢舉

年相減後乘以12+後面的月-前面的月(+1)

0
ccenjor
iT邦大師 9 級 ‧ 2020-03-21 14:59:15

C2儲存格公式:
=QUOTIENT((LEFT(B2,FIND("年",B2,1)-1)-LEFT(A2,FIND("年",A2,1)-1))*12+(MID(B2, FIND("年",B2,1)+1,FIND("月",B2,1)-FIND("年",B2,1)-1)-MID(A2,FIND("年",A2,1)+1,FIND("月",A2,1)-FIND("年",A2,1)-1)),12)&"年"&MOD((LEFT(B2,FIND("年",B2,1)-1)-LEFT(A2,FIND("年",A2,1)-1))*12+(MID(B2,FIND("年",B2,1)+1,FIND("月",B2,1)-FIND("年",B2,1)-1)-MID(A2,FIND("年",A2,1)+1,FIND("月",A2,1)-FIND("年",A2,1)-1)),12)&"月"
再將公式複製到C3:C11儲存格。
https://ithelp.ithome.com.tw/upload/images/20200321/20109881fTodEJBLCE.png

我要發表回答

立即登入回答