• ベストアンサー

DATEDIF関数

関数初心者で困っています。ご伝授お願い致します。 日付けの期間を求めて利用したいのですが? 年末年始をまたぐと「#NUM」になります。何か良い設定はあるのでしょうか? IF(B2="","",(DATEDIF(B1,B2"d")))が計算式です。 よろしくお願い致します。 1/26

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6849/9743)
回答No.3

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時間、などになります。)

taibosu2
質問者

お礼

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

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>年末年始をまたぐと「#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"))) これもタイプミスでしょうか? 投稿前に確認されるよう心掛けましょう。

taibosu2
質問者

お礼

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

noname#204879
noname#204879
回答No.4

》 IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です それも間違ってます。ついでに、「転機ミス」の「機」も。

taibosu2
質問者

お礼

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

noname#204879
noname#204879
回答No.2

》 IF(B2="","",(DATEDIF(B1,B2"d")))が計算式です それ、間違ってます。

taibosu2
質問者

お礼

早速、ありがとう存じます。 失礼しました、計算式、転機ミスでございました。 IF(B2="","",(DATEDIF(B1,B2"d"))) ↓ IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です。

  • kadakun
  • ベストアンサー率29% (356/1200)
回答No.1

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

taibosu2
質問者

補足

早速、ありがとう存じます。 失礼しました、計算式、転機ミスでございました。 IF(B2="","",(DATEDIF(B1,B2"d"))) ↓ IF(C2="","",DATEDIF(#B#2,C2,"d")))の時、絶対参照になっているのとC2です。

関連するQ&A