web-dev-qa-db-ja.com

OpenOffice.orgCalcを使用して時間の違いを見つける

私はこの形式のデータを持っています:

      Action  (A)                  |     Time logged (B)
  ---------------------------------|-----------------------
1 |Policy converted successfully   |   19-FEB-10 18:34:01   
2 |Policy converted successfully   |   19-FEB-10 18:34:10   
3 |Policy converted successfully   |   19-FEB-10 18:34:21   

行2と行1の時間差を秒(または分/時間)で見つける必要があります。 OpenOffice.org Calcを使用して同じことを行うにはどうすればよいですか? =B2-B1を試しましたが、結果のセルにはErr: 529が含まれていました。 DD-MMM-YY HH:MM:SSのフォーマットマスクをソースセルと宛先セルに配置しようとしましたが、効果がありません。これを達成する方法に関するヒントはありますか?

約2,800行のレコードがあり、それぞれを通過することは不可能です。

4
Sathyajith Bhat

クリスが答えたように、あなたの問題はあなたのワークシートが日付としてではなくテキスト文字列として日付を保存することです。

それに加えて、セルは日付(つまり、カレンダーの1日)、または時刻(実時間)のみにすることができ、両方にすることはできません。編集:正しくありません。これは問題なく機能します。日付と時刻を一度に解析する解析関数がないだけです。

したがって、最初に、日付と時刻の文字列を2つの列に分割する必要があります。次に、DATEVALUEを使用して日付を変換し、TIMEVALUEを使用して時刻を変換します。次に、それらを使用して計算できます。

これを行うには、次のような式を使用できます。

Policy converted successfully   |       19-FEB-2010 18:34:01 | =LEFT(B1; 11) | =RIGHT(B1;8) | =DATEVALUE(C1) | =TIMEVALUE(D1) | =E1+F1

説明:

  • 最初の2つの数式(LEFT、RIGHT)は、文字列を日付と時刻に分割して、別々に解析します。
  • 次の2つ(DATEVALUE、TIMEVALUE)は、文字列を日付/時刻として解析します
  • 最後は日付と時刻を1つのセルに結合します(内部的には日付と時刻は単なる浮動小数点数なので、追加できます)

今、あなたは心ゆくまでそれらを使うことができます。もちろん、数式を組み合わせて使用​​するセルを減らすこともできます。

最後の列が日付+時刻ではなく数値として表示される場合は、「日付」形式を選択します。

5
sleske

時間で2回の差を計算するには:

=(HOUR(E17)+(MINUTE(E17)/60))-(HOUR(D17)+(MINUTE(D17)/60))

ここで、D17は「時間から」、E17は「時間まで」です。 E17とD17はどちらも時間としてフォーマットする必要があります。

5
Theodore Cowan

このようなものは役に立ちますか?

http://www.ehow.com/how_5924425_calculate-time-differences-openoffice.html

OOがインストールされていないため、検証できません。基本的に [〜#〜] datediff [〜#〜] 関数を使用します。

1
Burton

データは文字列のように聞こえます。最初に日付に変換する必要があります。日付は浮動小数点数として内部的に保存されるため、それらを減算して差を取得することができます(探しているものによっては、結果をフォーマットする必要がある場合があります)。

1
Chris S

そのエラーは、セルのフォーマットがめちゃくちゃになっているようなものを意味します。私はそれを再現することができません(3.1、Ubuntu 9.10)(それは私にとっては単純に機能しています)が、ツールバーの編集テキストボックスに表示されるように、セルの「実際の」コンテンツを確認する必要があります。また、セルの書式設定(右クリック->セルの書式設定...->数値)を日付タイプに設定してみてください(マスクを使用するだけでなく、事前定義された日付マスクの1つに明示的に設定してください)。

1
Bobby