アプリ版:「スタンプのみでお礼する」機能のリリースについて

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関数で実現可能なのは判りましたが
運用上、年月日を別のセルにして管理したいと考えています。

どなたかお解りになる方、いらっしゃいませんでしょうか。

A 回答 (5件)

DATEDIF関数の場合、パラメータの順序が決まっていますので、これを間違えるとエラーになります。


DATEDIF(スタート日,終了日,カウントする種別)
です。
ここで、「スタート日<=終了日」という制約があります。
「スタート日>終了日」だとマイナスで計算結果がでてくれたら良いので卯が、エラーになってしまいます。
これは、マイクロソフトがシリアル値のスタートを1900/1/1と決めてしまった事によるものだそうです。
MAC用のように1904/1/1なら,このエラーは起きません。
このため、DATEDIF関数は関数のリストやヘルプにも載らない、「他のソフトとの互換性のため」と言う名目で存在する、可哀相な関数になってしまいました。
そのくせマイクロソフトの主催する「使い方セミナー」では日数の算出方法として紹介しています。

Windows用でもオプションでシリアル値のスタートを1904/1/1に出来るので、
1904年に設定すればエラーは起きなくなりますが、大多数のユーザーこのことを知らず、
かつマイクロソフトがディフォルトを1900/1/1にしているため、自分だけ1904/1/1にしていると
他のPCでは日付が4年分ずれてしまいます。
    • good
    • 0

私の環境はEXCEL2002ですが、ちゃんと27と表示されます。


もし、27でなく28と計算させたいなら、これはエクセルの問題でなく、算数の問題です。
=DATE(D1,E1,F1)-DATE(A1,B1,C1)+1
とすべきです。
    • good
    • 0

日数だけなら


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")
    • good
    • 0

DATEIF関数というのは、DATEDIF関数の間違いですよね?


それを踏まえた上で、以下のようにすればできると思います。

=DATEDIF(DATE(A1,A2,A3), DATE(D1,E1,F1), "D")

今回、初めて DATEDIF関数を知りました。関数のリストにも
出てこないんですね。勉強になりました。ありがとうございます。
    • good
    • 0

意味がわからないのですが。



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

「24」って?

この回答への補足

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

補足日時:2008/02/08 12:44
    • good
    • 0
この回答へのお礼

あっ、できてました。

すみません。

お礼日時:2008/02/08 12:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!