2009-12-01 19 views
-2

在Excel 2007中,我要爲以下字符串日期/時間的差異:差異/次

A       B       C 
1 Date1      Date2      Difference of A and B 
2 2009.11.28 01:25:46:0287 2009.11.28 01:25:46:0287 ? 
3 2009.11.28 01:25:46:0443 2009.11.28 01:25:46:0443 ? 

我想將字符串轉換爲日期/時間的差異,然後將結果兩個轉換日期/時間的差異。

+1

重複自己的問題:HTTP:// stackoverflow.com/questions/1825884/difference-of-datetimes-in-ms-excel-2007如果你想澄清這個問題,請編輯原文,不要發表一個新的。 – laalto 2009-12-01 13:08:42

+1

什麼程序使用冒號作爲小數點分隔符? – Jeeped 2015-03-11 00:44:33

+0

@Jeeped誰想要一個複雜的計算來確定兩個值是完全相同的? – pnuts 2015-03-11 00:52:53

回答

0

我不能想出一個很好的方法來做到這一點...希望別人會。話雖如此,以下可能會給你你需要的東西。

要轉換的主要日期部分,使用以下公式(假定字符串日期是在A1):

=DATE(MID(A1,1,4),MID(A1,6,2),MID(A1,9,2)) + 
    TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2)) 

要轉換的小數第二部分,可使用:

=VALUE(MID(A1,21,4))/10000 

的日期/時間部分可以很容易地減去,小數第二部分也是如此。

我碰到麻煩的地方是將這些零件重組成一個整體,Excel將以一種明智的方式實際顯示出來。我終於把這兩個日期之間的差異乘以86400(= 24 * 60 * 60 - 典型日子裏的秒數),然後在小數第二部分中加上差異。

希望這會有所幫助。 Regards, Richard

P.S.對於這個解決方案,我不喜歡很多東西,其中最大的一個就是公式的脆弱性 - 如果日期格式發生變化,公式需要進行調整。

1

一個相當冗長的方法來計算零(爲例子):

=SUBSTITUTE(LEFT(A2,10),".","/")+MID(A2,12,8)+RIGHT(A2,4)/86400000-(SUBSTITUTE(LEFT(B2,10),".","/")+MID(B2,12,8)+RIGHT(B2,4)/86400000) 

通過特殊的要求和非常稍短:

=SUBSTITUTE(LEFT(A2,10),".","/")+REPLACE(RIGHT(A2,13),9,1,".")-(SUBSTITUTE(LEFT(B2,10),".","/")+REPLACE(RIGHT(B2,13),9,1,".")) 
+0

喜歡第二個。 – Jeeped 2015-03-11 00:40:49

+0

@Jeeped我希望能夠在幾年前消失的同一個人(儘管用戶號不同)關閉另一個版本(另一個沒有提到,有些批評地說,「字符串」),但現在發現我受挫作爲[excel]標籤,我添加了一個,所以不符合我的強盜錘。不過,無論你是英雄, – pnuts 2015-03-11 00:50:33