- ベストアンサー
Excel 2003 に関しての質問です(時間の計算)
時間の計算が上手く行かないのですが、どうすればいいか教えてください。 例えば、 A1]2001 B1]2 C1]1:02:03 (1時02分03秒) D1]=A1/B1(1000.5) E1]D1の数値を秒として考え、C1に、プラスしたい おそらく、”=C1+D1”とするのだと思うのですが、”1902/9/26/ 13:02” と表示されてしまいます。 何とぞお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
先に修正です 1900年1月1日は0ではなく1で 1901年1月1日は367でした 通常1年は365日なので365増えて366になるところですが きっと閏年だったのですね ご存じの通り閏年は1日多いですから 他の1年より1多いめに増えて367と、なってました 失礼しました まず確認したいのですが 日付と時計の計算をExcelで自由に扱えるようになりたいのですよね? 「100とする」とかは忘れて下さい 今日の日付は1900年1月1日からの総経過日数なのですよ Excelで日付が明日になると言うことは数値が1増えることなのです なので例として 2009年1月2日から2009年1月1日を引くと表示が1900年1月1日を表す表記になると思います では実際にやってみますね セルのA1に2009/1/2 セルのA2に2009/1/1 セルのA3に=A1-A2 と入れてみて下さい 1もしくは1900年1月1日を意味する表記になると思います 此は「1日経過したから1増えた」と言うことに他なりません 同様に 2008年1月1日は39448ですし 2008年2月1日は1月が31日なので31増えて39479 になります 2008年3月1日は60増えて39508ですし 2009年1月1日は2008年が閏年だったので366増えて39814になります 既にご理解頂けているかと思いますが 100なんて数字を基準にしている形跡なんて何処にもないと思います もう一度言いますが100分率は忘れて下さいね で、この数値を簡単に求めたい場合 先に挙げたページを見て各項目まで読んで頂けていたら解ると思いますが DATE関数を使うと便利です 書式は先のページをご確認下さい 後TIME関数も併せて確認しておいて下さいね 重ねて言います 1日先の日付に変えたい時は1を足して下さい 1秒増やしたい時は1/86400増やして下さい 1分増やしたい時は1分が60秒なので60/86400増やして下さい 1時間増やしたい時は1時間が60分なので60×60の3600/86400増やして下さい 12時間増やしたい時は12×3600/86400増やして下さい 24時間増やしたい時は24×3600が86400なので 86400/86400詰まり1増やして下さい 良いですね? 視点を変えて もし仮に「1900年1月1日から現在を100とする」 と言う方式だった場合を考えてみましょう 先に挙げた通り1900年1月1日から2009年1月1日までは39814日ありますから 此を100とすると1日は1を39814で割った値となりますよね ところが 2008年1月1日は1900年1月1日から39448日経過してますから 1日を示す値が1を39448で割った値となります Excelでは未来の日付も扱わなければなりませんが 因みに来世紀の22世紀初頭、2101年1月1日は1900年1月1日から73416日経過してますから この時点での1日を示す値は1を73416で割った値になります これでは 2008年1月1日に割り出した1日の値と割る方の数が違うので 明らかに値も違います 此では比べたりするのも計算したりするのにも いちいち換算しなくてはならず大変ですし非効率です もっと簡単に1日を表せて比べたり計算したりするのが楽なものがあれば そっちを使って一向に構わないし むしろそっちを使った方が良いですよね と言う訳でしょうがExcelでは1日が1で表されます 1秒が1を86400で割った値で表します まあこの秒については計算制度の問題も有り余り好ましくないのでしょうが Excelが最初にでた当時はまだまだパソコンの性能も高くなく 1秒を1とするように決めた場合1年は31536000 1世紀は期間中に25日閏年が含まれるので3942000000 と膨大な数になってしまいます マイクロソフトは此を避けて1秒の計算制度を犠牲にしたのでしょう 恐らく ps ようこそExcelの世界へ この世界を堪能すると脳がリフレッシュされて冴えてきますし 自由に扱えるようになると 「理解する姿勢を示さないと言うことを聞かない放蕩息子を従順にする」ような快感がありますよ 実際Excelは"放蕩息子"的な融通のなさがありますからね
その他の回答 (6)
[回答番号:No.5]より分かりやすい(?)別解 数式: =C1+("0:0:"&D1) 書式: [h]:mm:ss.0
お礼
いろいろな方法があるのですね。表現の仕方によっての差なのですかね? 例えば、”1”を”one”や”いち”、”一”といったように、まだまだおくが深そうですね(^^ 2通りの回答ありがとうございました。
数式: =C1+D1/86400 書式: [h]:mm:ss.0
- okormazd
- ベストアンサー率50% (1224/2412)
E1:=C1+TIME(,,D1) にする。
お礼
回答ありがとうございます D1を変更せずに、E1を変更すると、出来ました(^^ 別の方法もあるのですね。ありがとうございました。
- Nouble
- ベストアンサー率18% (330/1783)
因みに1日の秒数は概ね86400秒なので 1時02分03秒は =3723秒となり 3723÷86400=0.04309027… となります
お礼
因みに。。。ということなので、1つ前の回答の続きだと思うのですが、まだ、1つ前のを理解できていないみたいです。 願わくば、教えていただければ幸いに思います。
- Nouble
- ベストアンサー率18% (330/1783)
エクセルでは日付は1900年1月1日からの日数で 時間は経過秒数を一日分の秒数で割った値で管理しています 詰まり0は1900年1月1日1時0分0秒です 同様に366は1901年1月1日1時0分0秒 397は1901年1月31日1時0分0秒です 確か… なので 今回出た数値は至極普通な値なのでしょうきっと このままでは今年がシリアル値で幾つになるかなど 閏年や閏秒も絡み 求めるなど並大抵なことではなくなりますが その為に日付に関する関数が用意されています http://www3.tokai.or.jp/excel/kansu/f_main.htm はエクセルの関数がほぼ網羅されているようなので 全てでもそう多くはないですし 一度一通り目を通された方が楽しめると思いますよ
お礼
回答ありがとうございます ページ面白かったです(^^ 今現在の時間までわかるとは、思いませんでした。 >詰まり0は1900年1月1日1時0分0秒です 同様に366は1901年1月1日1時0分0秒 397は1901年1月31日1時0分0秒です これは、1900年1月1日1時0分0秒 を、0として、今現在を、100とした時の、大体どのくらいなのか? ということでしょうか?
- t-yamada_2
- ベストアンサー率40% (587/1460)
セルE1の表示を「1:18:43」にしたいなら セルD1の式を =TIME(,,A1/B1) セルD1の表示を分かりやすくmm:ss表記にするならセルの書式を「ユーザー定義」「h:mm:ss」を選択する
お礼
回答ありがとうございます 既に()を使っていても、()で、閉じていいんですね。,,の場所は冒頭みたいで、(,,()) という形で、実際に使うときに、出来ました(^^
お礼
先ずはじめに、返信が遅れてしまい申し訳ありません。 説明わかりやすかったです(^^ 今回いじっていた時に、日にちを、セルの書式設定の、標準にすると、どうして、わけのわからない、数字になるのかと思っていましたが、そういう理由だったのですね。 今エクセルを多用しているのですが、いろいろなことがわかるたびに、便利であると、改めて、実感させられます。最近では、マクロにも、手を出し始めていますが、思うようには行かないです(^^; もし、又質問している所を、見つけましたら、回答していただければ幸いに思います。 回答ありがとうございました。