プロが教えるわが家の防犯対策術!

関数初心者で困っています。ご伝授お願い致します。

日付けの期間を求めて利用したいのですが?
年末年始をまたぐと「#NUM」になります。何か良い設定はあるのでしょうか?

IF(B2="","",(DATEDIF(B1,B2"d")))が計算式です。

よろしくお願い致します。 1/26

A 回答 (5件)

B1・B2セルに、日付だけ入っていませんか。

(「○月×日」等)
DATEDIFは、必ず datedif(開始日,終了日,形式) で使わなければいけないので、
終了日より開始日が後ろになってしまうと、エラーになります。

これを避けるには、セルに年から表記すれば良いです。

例1)
B1: 11月1日 →セルの値は「2015/11/1」
B2: 1月31日 →セルの値は「2015/1/31」
→マイナス日付はカウントできないので、エラー。

例2)
B1: 2014年11月1日 →セルの値は「2014/11/1」
B2: 2015年1月31日 →セルの値は「2015/1/31」
→91日。

のように、ちゃんと出てきます。

----

ただまあ、DATEDIFはいろいろ動作が謎な隠し関数ですので、正直実務とかには使用しない方が良いです。

>DATEDIFの謎を追え(1) ~ DATEDIF関数の真実
http://www.niji.or.jp/home/toru/notes/50.html

単純に日数を知りたければ、「=B2-B1」。これだけでいいんです。
こちらならば、Excel本来のシリアル値での計算になりますので、正確です。

(シリアル値=「1900年1月1日」を1として始まる、日付単位の数値。そこから、閏年2/29の有無もきちんとカウントされた、入力日時までの日数として、日付が表現されています。
ちなみにシリアル値は小数点の値も取ることができ、0.5=半日=12時間、などになります。)
    • good
    • 0
この回答へのお礼

こんにちは、ご丁寧にありがとう存じます。

何年か前に、PC21本で、勉強してきたはずなのに、中々身にならず忘れます。
貴方さまの言うとおり逆セルでした、12月と1月のセルの中をよく見ると、同じ2015年となっていました。
エクセルの根本と演出と理解していましても、ミスがでたのにびっくりです。
ありがとうございました。

お礼日時:2015/01/26 15:54

>年末年始をまたぐと「#NUM」になります。

何か良い設定はあるのでしょうか?
=IF(B2="","",(DATEDIF(B1,B2"d")))
        ↓
=IF(B2="","",(DATEDIF(B1,B2,"d")))
タイプミスでしょうか?(カンマが1個抜けています。)
年末年始をまたいでも正常に計算できます。

B1が開始日でB2が終了日です。
=B2-B1 と等価で計算結果は日数になります。

回答No.1の補足
=IF(C2="","",DATEDIF(#B#2,C2,"d")))
        ↓
=IF(C2="","",DATEDIF($B$2,C2,"d")))
これもタイプミスでしょうか?
投稿前に確認されるよう心掛けましょう。
「DATEDIF関数」の回答画像5
    • good
    • 0
この回答へのお礼

こんにちは、ありがとう存じます。

何年か前に、PC21本で、勉強してきたはずなのに、中々身にならず忘れます。
貴方さまの言うとおり逆セルでした、12月と1月のセルの中をよく見ると、同じ2015年となっていました。
エクセルの根本と演出と理解していましても、ミスがでたのにびっくりです。
ありがとうございました。

お礼日時:2015/01/26 15:56

》 IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です


それも間違ってます。ついでに、「転機ミス」の「機」も。
    • good
    • 0
この回答へのお礼

こんにちは、ありがとう存じます。

何年か前に、PC21本で、勉強してきたはずなのに、中々身にならず忘れます。
貴方さまの言うとおり逆セルでした、12月と1月のセルの中をよく見ると、同じ2015年となっていました。
エクセルの根本と演出と理解していましても、ミスがでたのにびっくりです。
ありがとうございました。

お礼日時:2015/01/26 15:56

》 IF(B2="","",(DATEDIF(B1,B2"d")))が計算式です


それ、間違ってます。
    • good
    • 0
この回答へのお礼

早速、ありがとう存じます。
失礼しました、計算式、転機ミスでございました。

IF(B2="","",(DATEDIF(B1,B2"d")))


IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です。

お礼日時:2015/01/26 15:07

???


IF(B2="","",DATEDIF(B1,B2,"d"))
で、普通に出ますよ・・・
日付けの逆行の場合は「#NUM」になりますが。(B1が2015/1/1でB2が2014/12/1とか)


excel2013

この回答への補足

早速、ありがとう存じます。
失礼しました、計算式、転機ミスでございました。

IF(B2="","",(DATEDIF(B1,B2"d")))


IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です。

補足日時:2015/01/26 15:06
    • good
    • 0

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