【已解決】請教EXCEL高手解答:計算兩日期相差天數 多條件

安樸香 wrote:
條件3與條件4的E5
如果輸入日期為2/28(或2/29)
又或者是任何大月份的31號
能否讓F5自動以30天來做相減呢


請參考!

註:
1.未考慮日期輸入錯誤,或是跨月情形,
2.公式最外層加上 VALUE 及 TEXT 函數,避免儲存格格式造成的異常!



=VALUE(TEXT(IF(B1="", IF(A1="", 30, 30-DAY(A1)+1), IF(A1="", IF(DAY(B1)=DAY(EOMONTH(B1, 0)), 30, DAY(B1)), IF(DAY(B1)=DAY(EOMONTH(B1, 0)), 30-DAY(A1)+1, B1-A1+1))), "0"))
My Interior Knowledge is Extraordinaire

Mystique Hsiao wrote:
請參考!註:1.未...(恕刪)


我將大大提供的公式帶入F5後
=VALUE(TEXT(IF(E5="",IF(D5="",30,30-DAY(D5)+1),IF(D5="",IF(DAY(E5)=DAY(EOMONTH(E5,0)),30,DAY(E5)),IF(DAY(E5)=DAY(EOMONTH(E5,0)),30-DAY(D5)+1,E5-D5+1))),"0"))

若在E5輸入超過30的日期
F5是都可以顯示為30
輸入2/29也是可以顯示為30
但是就唯一輸入2/28
F5還是顯示為28怎麼辦......

安樸香 wrote:
若在E5輸入超過30的日期
F5是都可以顯示為30
輸入2/29也是可以顯示為30
但是就唯一輸入2/28
F5還是顯示為28怎麼辦......


因為公式僅判斷是否為月底,以取得使用 30 來計算,
(可免除判斷大小月,以簡化公式)
而剛好今年為閏年,所以 2/28 被當成一般日期計算,
如果要將閏年的 2/28 也當作月底,
則需為其再多加一組判斷條件,
請參考!



=VALUE(TEXT(IF(B1="", IF(A1="", 30, 30-DAY(A1)+1), IF(A1="", IF(OR(AND(MONTH(B1)=2, DAY(B1)>27), DAY(B1)=DAY(EOMONTH(B1, 0))), 30, DAY(B1)), IF(OR(AND(MONTH(B1)=2, DAY(B1)>27), DAY(B1)=DAY(EOMONTH(B1, 0))), 30-DAY(A1)+1, B1-A1+1))), "0"))
My Interior Knowledge is Extraordinaire

Mystique Hsiao wrote:
因為公式僅判斷是否為...(恕刪)


真是太感謝您!!
幫了大忙!
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!