English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我寫一個巨集將資料欄A1:950630轉化成B1:95/06/30,現在我想將此資料轉仑為數值,因為我想計算數二個日期相差的天數,比如B2:95/07/15,則C1為數值為15,請問巨集指令應如何寫??

2007-01-01 10:09:36 · 3 個解答 · 發問者 der 2 in 電腦與網際網路 軟體

我是以mid()的方式轉為日期,理應是文字,因為曾試過相減,但不成功.不知有其他更好的辦法??

2007-01-01 12:27:56 · update #1

因為資料檔為TXT,想以""巨集""方式處理,我己順利將資料"950630"轉為95/06/30,但不知如何以""巨集""處理二個日期差

2007-01-01 14:27:10 · update #2

我對不起各位,好像問的方式不對,我要請各位解答的是""巨集""寫法,基本上excel的函數我已克服,只是想更深入研究""巨集"',感謝各位

2007-01-02 17:05:10 · update #3

3 個解答

在你以函數 mid 將字串 "950630" 改為字串 "95/06/30" 的同時順便把 "r" 加進去,也就是改成 "r95/06/30"
再以 datediff 函數來取得兩個日期差

例如執行 msgbox datediff("d","r95/06/01","r95/06/30") 會顯示 29

2007-01-04 21:53:56 補充:
上述是假設你的日期是「民國年」

2007-01-04 16:53:03 · answer #1 · answered by 沙拉油 5 · 0 0

將A1儲存格內容轉換成B1日期格式墊腳石大大已經說明ㄉ很清楚ㄌ,小弟就不在重復
而關於墊腳石大大所提共ㄉ計算天數ㄉ方法雖然很不錯,但卻有日期相減中如順序顛倒(EX:95/06/30來減95/07/15)會出現錯誤(#NUM!)

小弟提供另ㄧ個法來計算日期讓版大參考看看
B1:95/06/30 B2:95/07/15 則C1為數值為15
妳可以直接在C1儲存格中直接輸入以下公式即可得到你要ㄉ結果:
【=TEXT(B2-B1,"0_ ")】
如果日期相減中如順序顛倒只是會出現負數”-“而不會出現錯誤
如果連負數也不希望出現,那接直接加個ABS函數來取絕對值即可:
【=ABS(TEXT(B2-B1,"0_ "))】
函數說明:
TEXT :以指定的數字格式將數值轉成文字。
語法:
TEXT(value,format_text)
Value:可以是數值、一個會傳回數值的或者是一個參照到含有數值資料的儲存格位址。
Format_text:為 [儲存格格式] 對話方塊的 [數值] 索引標籤上的 [類別] 方塊中所使用之文字形式的數字格式。
註解:
format_text 不能含有代表通配字元的星號 (*)。
以 [數值] 索引標籤([格式] 功能表的 [儲存格] 命令)上的選項來設定含有數字資料之儲存格的格式,僅能改變其顯示的格式,而不會改變其數值。使用 TEXT 函數設定數字的顯示格式,則是將數值資料轉換成文字資料,其結果將不再是數值資料。




希望能幫助你^^

圖片參考:http://img59.imageshack.us/img59/7316/hqp7.gif

2007-01-02 14:44:46 · answer #2 · answered by ~無止盡ㄉ等待與傷害~ 6 · 0 0

=DATEVALUE(RIGHT(MID(A1,1,2)+11,2) & "/" & MID(A1,3,2) & "/" & MID(A1,5,2))
將 B 欄公式修改為上述
目的是除了將文字變成日期,還要轉換 民國 -> 西元。(加十一年)
再取年的右邊兩位數

變成了日期資料後便可以直接計算天數了
或用 =DATEDIF(B2,B1,"D") 取得天
=DATEDIF(B2,B1,"M") 取得月
=DATEDIF(B2,B1,"Y") 取得年

2007-01-01 14:07:07 · answer #3 · answered by ? 6 · 0 0

fedest.com, questions and answers