![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#10 (permalink) |
|
管理員
![]() ![]() |
這種的喔 ... 原因是在於 函數本身的回傳啦 ...
當各自組合之後的 顯示概念上的笑話 ... 這樣的話,在年月的部份也會鬧出相同的效果出來 ... 主要原因是 Excel 函數本身的回傳值,只要是個位數都會只有 1位數 的回傳,舉例: DAY(1/9) = 9 但不會顯示 09 MONTH(1/9) = 1 但不會顯示 01 當以字串組合後就會變成 19 ... 不信 ... 去改變月日就知道了 ... 若是先前的公式,若是 2013/01/01 03:03 AM 好了 就會被翻譯成 11 33,這不是函數出錯,是經過組合後的顯示邏輯的格式錯 誤 ... 這不是函數的錯,因為是回傳成數字。不是特定格式的顯示文字,所有的函數 都是這樣 ... 怎麼解決,設法補足缺乏的那的 0 的那 1位數,使其變成 2位數,在經組合之後 就會是想要的結果 ... 怎麼補 ... 有兩種方式 1個是使用函數 IF,另一個使用 VBA 自建函數來作業 這裡先提供第一種方式 ... 比較簡單 ... 原理很簡單 ... 先用 IF 判斷單一函數的回傳值是不是個位數的條件,是的話 就補個 0。 簡單喔 這裡以月先示範一下 IF(MONTH(A1)<10,0&MONTH(A1),MONTH(A1)) 這樣的話 1 就會變成 01 了 時間的話就比較麻煩了 ... 因為有 12 hr 或 24hr 24hr =IF(MONTH(A1)<10,0&MONTH(A1),MONTH(A1)) & IF(DAY(A1)<10,0&DAY(A1),0&DAY(A1)) &CHAR(10)& IF(HOUR(A1)<10,0&HOUR(A1),HOUR(A1)) & IF(MINUTE(A1)<10,0&MINUTE(A1),MINUTE(A1)) 12hr =IF(MONTH(A1)<10,0&MONTH(A1),MONTH(A1))& IF(DAY(A1)<10,0&DAY(A1),0&DAY(A1))&CHAR(10)& IF(MOD(HOUR(A1),12)=0,12,IF(HOUR(A1)<10,0&HOUR(A1),IF(HOUR(A1)<22,0&HOUR(A1)-12,HOUR(A1)-12)))& IF(MINUTE(A1)<10,0&MINUTE(A1),MINUTE(A1))& IF(HOUR(A1)<12,"AM","PM") ![]() 此帖於 2013-01-04 12:21 AM 被 getter 編輯. |
|
|
送花文章: 37855,
|
|
向 getter 送花的會員:
|
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 如何使AUTOCAD圖檔內資料(材料表)轉換至EXCEL或WORD檔作統計 | oldman53 | 軟體應用問題討論區 | 2 | 2004-08-08 11:15 PM |
| 每次開機時間日期都會歸零? | jerry12 | 一般電腦疑難討論區 | 3 | 2003-10-18 01:23 AM |
| 關於xp的日期與時間 | 光仔 | 軟體應用問題討論區 | 0 | 2003-04-24 12:22 PM |