返回列表 上一主題 發帖

[發問] 擷取儲存格日期問題

=IF(COUNT(0/(-LOOKUP(,-LEFT(A2,{8,9,10}))<D2)),"逾期","")

LEFT(A2,{8,9,10})
日期格式可能如下:
2016/3/1   8個字元
2016/3/12  9個字元
2016/12/1  9個字元
2016/10/23  10個字元

同時以陣列取{8,9,10}位元, 再以lookup帶出最完整日期來比對即可!

TOP

本帖最後由 KCC 於 2016-7-17 13:22 編輯

回復 1# msmplay

    參考你原來公式列出可能要的檢測點,可自己視需要調整公式

    B2=IF((A2="")+(A2="-"),"",IF((IF(ISERR(FIND("-",A2)),A2,--(LEFT(A2,FIND("-",A2)-2)))<D2),"逾期",""))  下拉

     1.find("-",A1), 找到"-"的位置後,因為前面還有一個換行字元(char(10), 按 alt-enter後產生),所以要減 2
        若改成find char(10),就要改成減1。
     2.同1原理, 不減2的話截取出來的是字串,字串和日期比大小,字串>數字,所以不會逾期。
         自己用type()和len()檢測一下你截取出來的資料型態和長度就懂了。
     3.用iserr和isnumber都可以,邏輯處理剛好相反,if公式對調調整一下就可。

TOP

回復 1# msmplay
B2=IF(ISERR(FIND("-",A2))*(A2>D2),"",IF(ISERR(FIND("-",A2))*(A2<D2),"逾期",IF(FIND("-",A2),IF(DATEVALUE(MID(A2,1,FIND("-",A2,1)-2))>D2,"","逾期"))))
向下複製
請參考!

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題