頁: [1] 2
|
 |
|
作者
|
主題: 有關指定的問題 (如何判斷是否為日期) (閱讀 2758 次)
|
mvictorp01
訪客
|
 =IF($A$4 ="","",MONTH($A$4)) 請問一下 怎麼指定A4的儲存格為一日期,如果不是日期則顯示"",否則MONTH($A$4)• 雖然對各位有點牛刀小小試,請多多包含小弟• ^.^
|
|
|
|
« 最後編輯時間: 2005-10-13, 23:53:59 由 leonchou »
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4679
|
仔細想想,似乎沒有什麼函數能對是否日期的數字作判斷,不知其他朋友有沒有高招? a4儲存格若不是日期會有那些可能?如文字格式或數字的大小範圍?可能也可用這個來判斷!
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
leonchou
論壇維護群
離線
文章: 1204
|
日期是以序列值的型式儲存,也算是數值。 似乎沒有什麼特性可以和一般數值有所區隔。
如果該儲存格不會是一般數值, 就可用 ISNUMBER 或 TYPE 來判斷。 PS. 即使是 VBA 的 IsDate 也不能分辨日期和一般數值。
如果該儲存格也有可能是一般數值,就比較難辦... 雖然這種應用不太合理。
|
|
|
|
|
已記錄
|
|
|
|
bosco_yip
版主
離線
文章: 697
|
測試 :
A4 >> 輸入14/10/2005
A5 >> 輸入14/10/2005 >> 格式 : General >> 返回日期數字 : 38639
B4輸入公式 =IF(LEFT(CELL("format",A4),1)="D",MONTH(A4),"")
B5輸入公式 =IF(LEFT(CELL("format",A5),1)="D",MONTH(A5),"")
看看B4, 和B5 傳回, 能否達到目的!
|
|
|
|
« 最後編輯時間: 2005-10-14, 08:30:16 由 bosco_yip »
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4679
|
bosco_yip版主高招,就知道你一定有辦法。把CELL傳回的日期格式D1~D9,取左邊一字必然是D,雖然道理簡單,但沒相當功力還是想不到的!
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
leonchou
論壇維護群
離線
文章: 1204
|
判斷格式的方式不錯, 但前提是輸入不同類型資料時也要一併修改格式。 (這似乎不太符合一般輸入習慣?)
畢竟 [儲存格格式] 和 [資料類型] 沒有必然的關係... 例如你先前輸入的是日期,它會是日期格式; 下一次改輸入文字 "abc",它仍然是日期格式 -- 這時儲存格是日期格式設定,但它的值並不是日期。 所以說輸入資料時要跟著修改格式(或是先清除格式)。
|
|
|
|
|
已記錄
|
|
|
|
leonchou
論壇維護群
離線
文章: 1204
|
對於非固定型態的欄位, 或許以樓主(或一般)的使用情形, 非日期的時候是輸入一個或多個固定值, 那麼直接判斷這些值可能比較乾脆一點。
|
|
|
|
|
已記錄
|
|
|
|
|
gong
|
管他是不是, 結果要的是,不是日期顯示"" 那就=if(iserror(month(a1)),"",month(a1))
|
|
|
|
« 最後編輯時間: 2005-10-15, 01:06:13 由 gong »
|
已記錄
|
|
|
|
leonchou
論壇維護群
離線
文章: 1204
|
管他是不是, 結果要的是不是日期顯示"" 那就=if(iserror(month(a1)),"",month(a1))
很阿沙力,但如果真要"一般數值" 又當如何?
|
|
|
|
|
已記錄
|
|
|
|
|
gong
|
那就用二組公式都判斷 if(and(isnumber(month(a1)),LEFT(CELL("format",A1),1)="D"),month(a1),"")
不過時間格式也會適用 再修正一下 if(and(isnumber(month(a1)),LEFT(CELL("format",A1),1)="D",--right(CELL("format",A1),1)<=4),month(a1),"")
|
|
|
|
« 最後編輯時間: 2005-10-15, 00:21:39 由 gong »
|
已記錄
|
|
|
|
|
頁: [1] 2
|
|
|
|