-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   ?

文字列を日付/時刻に変換して差を求め、その結果を 2 つの変換された日付/時刻の差として求めます。

4

2 に答える 2

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,"."))
于 2015-03-10T21:30:21.847 に答える
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 が実際に適切な方法で表示できるように、これらのパーツを全体に再結合することでした。最後に、2 つの日付の差を取り、86400 (= 24 * 60 * 60 - 典型的な 1 日の秒数) を掛けてから、秒の小数部分に差を追加しました。

お役に立てれば。よろしく、リチャード

PS このソリューションには気に入らない点がたくさんあります。その最大のものは数式の脆弱性です。日付形式が変更された場合、数式を調整する必要があります。

于 2009-12-01T13:50:29.637 に答える