[[20040818180942]] 『日付の引き算をするには』(モーリー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付の引き算をするには』(モーリー)

ただいま、日付の引き算についてで困っています。
具体的に申しますと、今日の日付から、過去の日付を引いて、
何日間の間があるかを算出したのです。
具体例でいうと、A1のセルを2004/8/18(今日の日付)にして、
A2のセルを2004/8/16(過去の日付)として、
A3に「=A1-A2」を設定して引き算して、2日(日付のみ)という計算をしたいのです。
いろいろ試して、A1,A2,A3のセルの書式設定をすべて「d」にして、
一応、日付は算出されるのですが、ここで問題なのは、
31日(もしくは30日)以上の隔たりがあると、どうしても計算できません。
1ヶ月以上の隔たりがある場合でも、日数で表記したのです。
このような場合はどうすればよいでしょうか?
よろしくお願いします。

[エクセルのバージョン]
Excel2002
[OSのバージョン]
WindowsXP


 DATEDIF関数をお試しください。
=DATEDIF(A2,A1,"d")
とします。
(ケン)


 重複しますが・・・
日付書式ではなくて数値書式に。
もしくは数式を下記に。
=DATEDIF(A2,A1,"d")
 
書式記号 d はセルに入力されている数値が
1900年1月1日を「1」として、「?年?月の何日か」を表示します。
A1のセルを2004/8/18
A2のセルを2004/7/16
の場合のA3「=A1-A2」の結果は33日間ですが、
書式記号 d を指定した場合は「1900/2/2」と計算され、
「2」が表示されます。
つまり、セルの数値が1900年1月1日から起算した場合の
「カレンダー上の(何年何月の)何日」かを表示します。
 
私のあげた例ならば、
A3は「1900年1月1日から起算した33日目は1900/2/2だから
その『日付部分』にあたる2を表示する」という意味になります。
 
だから、31を超えることはありません。
同様の理由で書式記号 m も12を超えることはありません。
書式記号 y m d は「何年間」「何ヶ月間」「何日間」を
表現するものではないので、注意が必要です。
(KAMIYA)

ありがとうございます。=DATEDIF(A2,A1,"d")
でできました。しかし、また問題が起きているんですけど、
A1かA2のどちらかが空白セルの場合、
A3のセルが、38129等の数値と化してしまいます。
もし、どちらかが空白セルの場合は、A3も視覚上、空白セルにしたいのですが
(空白セルといっても、見た目上表示されなくなっているだけで、
関数等は入力されている状態です)
このようなことはできるのでしょうか?
[モーリー]


 =IF(OR(A1="",A2=""),"",DATEDIF(A2,A1,"d"))
 ではないでしょうか?   (あひる)

 書式に間違いがあったので少し訂正しました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.