• 締切済み

Excelの時間計算(年・月・日 別々のセルで…)

Excelの時間計算で悩んでいます。 2つの異なる日付(年、月、日別々のセルに入力したもの)の 日数の差を関数で表示させたいのですがうまく行きません。 例えば、 A列にスタート年、B列にスタート月、C列にスタート日、D列にエンド年、E列にエンド月、F列にエンド日を入力し G列にエンド年月日-スタート年月日の日数させたいと考えています。 +----A----B----C----D----E----F----G 1   2008      2      1   2008      2     28     24 G1にDATE(D1,E1,F1)-DATE(A1,B1,C1)の数値を表示させたいのです。 ひとつのセルに日付形式で年月日を持たせれば DATEIF関数で実現可能なのは判りましたが 運用上、年月日を別のセルにして管理したいと考えています。 どなたかお解りになる方、いらっしゃいませんでしょうか。

みんなの回答

noname#79209
noname#79209
回答No.5

DATEDIF関数の場合、パラメータの順序が決まっていますので、これを間違えるとエラーになります。 DATEDIF(スタート日,終了日,カウントする種別) です。 ここで、「スタート日<=終了日」という制約があります。 「スタート日>終了日」だとマイナスで計算結果がでてくれたら良いので卯が、エラーになってしまいます。 これは、マイクロソフトがシリアル値のスタートを1900/1/1と決めてしまった事によるものだそうです。 MAC用のように1904/1/1なら,このエラーは起きません。 このため、DATEDIF関数は関数のリストやヘルプにも載らない、「他のソフトとの互換性のため」と言う名目で存在する、可哀相な関数になってしまいました。 そのくせマイクロソフトの主催する「使い方セミナー」では日数の算出方法として紹介しています。 Windows用でもオプションでシリアル値のスタートを1904/1/1に出来るので、 1904年に設定すればエラーは起きなくなりますが、大多数のユーザーこのことを知らず、 かつマイクロソフトがディフォルトを1900/1/1にしているため、自分だけ1904/1/1にしていると 他のPCでは日付が4年分ずれてしまいます。

noname#79209
noname#79209
回答No.4

私の環境はEXCEL2002ですが、ちゃんと27と表示されます。 もし、27でなく28と計算させたいなら、これはエクセルの問題でなく、算数の問題です。 =DATE(D1,E1,F1)-DATE(A1,B1,C1)+1 とすべきです。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

日数だけなら G1=DATE(D1,E1,F1)-DATE(A1,B1,C1) か G1=DATEDIF(DATE(A1,B1,C1),DATE(D1,E1,F1),"D") なのでこの場合、上の方が簡単です。 それとも、G1=年数,H1=月数(年に満たない),I1=日数(月に満たない)にするのですか? G1=DATEDIF(DATE(A1,B1,C1),DATE(D1,E1,F1),"Y") H1=DATEDIF(DATE(A1,B1,C1),DATE(D1,E1,F1),"YM") I1=DATEDIF(DATE(A1,B1,C1),DATE(D1,E1,F1),"MD")

noname#77517
noname#77517
回答No.2

DATEIF関数というのは、DATEDIF関数の間違いですよね? それを踏まえた上で、以下のようにすればできると思います。 =DATEDIF(DATE(A1,A2,A3), DATE(D1,E1,F1), "D") 今回、初めて DATEDIF関数を知りました。関数のリストにも 出てこないんですね。勉強になりました。ありがとうございます。

回答No.1

意味がわからないのですが。 お書きのとおり、G1に「=DATE(D1,E1,F1)-DATE(A1,B1,C1)」と記述すれば、「2008/2/28 - 2008/2/1」、普通に考えて「27」、ちゃんと計算してきますけど。 「24」って?

psma820
質問者

お礼

あっ、できてました。 すみません。

psma820
質問者

補足

24は入力間違いです。 27です。

関連するQ&A