標題:
[發問]
擷取儲存格日期問題
[打印本頁]
作者:
msmplay
時間:
2016-7-17 00:11
標題:
擷取儲存格日期問題
[attach]24675[/attach]
說明:
B欄公式,主要計算A欄日期是否小於D欄,如小於則B欄顯示"逾期"
但因為A欄單一儲存格有可能會有2個以上日期不一定(例如A2:A6),但只需參考最上面第一個日期為主即可,故新增了C欄輔助欄
C欄主要是抓取A欄 "-" 以前的日期,提供給B欄公式參照
D欄則是=TODAY()公式輔助欄
問題:
C欄公式如何直接合併進B欄公式內,故合併則希望可刪除C欄輔助欄
另外我發現目前C欄公式只要遇到A欄有2個以上日期(例如A2:A6),日期即便小於D欄,B欄仍不會出現"逾期",不確定是哪裡出了問題
以上求解~~~~~~非常感謝!!!!
[attach]24676[/attach]
作者:
aer
時間:
2016-7-17 10:45
回復
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,"","逾期"))))
向下複製
請參考!
作者:
KCC
時間:
2016-7-17 13:09
本帖最後由 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公式對調調整一下就可。
作者:
准提部林
時間:
2016-7-17 20:54
=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帶出最完整日期來比對即可!
作者:
msmplay
時間:
2016-7-18 12:46
回復
5#
准提部林
准大~~好厲害ㄛ!
作者:
popomilk
時間:
2016-7-19 11:47
為什麼輸入=-LOOKUP(,-LEFT(E2,{8,9,10}))
會是出現2016/7/15
這好強
但看不懂
求准大解釋
作者:
popomilk
時間:
2016-7-19 12:01
這樣也會有一樣效果欸
=IF(-LOOKUP(,-LEFT(A2,{8,9,10}))<D2,"逾期","")
作者:
准提部林
時間:
2016-7-19 13:43
回復
6#
popomilk
=LEFT(A2,{8,9,10}) >產生這三種結果 {"2016/7/1","2016/7/15","2016/7/15
?
"} 紅色?表示〔換行字元〕
=-LEFT(A2,{8,9,10}) >變成這三種結果 {-42552,-42566,#VALUE!} 有效日期序列值只剩2個
=-LOOKUP(,-LEFT(A2,{8,9,10})) = 42566,亦即為 2016/7/15 (LOOKUP只抓最後一個有效數值)
作者:
准提部林
時間:
2016-7-19 13:46
回復
7#
popomilk
若A欄都存在日期,這公式可以!
但若為空格或非日期,會產生錯誤值!
作者:
ML089
時間:
2016-7-19 14:00
B2=IF(--LEFT(A2,FIND(CHAR(10),A2&CHAR(10))-1)<D2,"逾期","")
作者:
popomilk
時間:
2016-7-19 14:38
回復
10#
ML089
請問這是什麼意思呢??
看不太懂
=FIND(CHAR(10),A2&CHAR(10))
作者:
ML089
時間:
2016-7-19 14:54
回復
11#
popomilk
回復 10# ML089
請問這是什麼意思呢??
看不太懂
=FIND(CHAR(10),A2&CHAR(10))
儲存格使用 ALT-ENTER換行
CHAR(10) 等於 ALT-ENTER 所產生的跳行符號
當多行時一定有CHAR(10),但單行時沒有 CHAR(10),所以需要補CHAR(10)到A2後面,如 A2&CHAR(10)
作者:
popomilk
時間:
2016-7-19 15:23
感謝大大的熱心教導
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)