- ベストアンサー
DATEDIF関数の 引数 単位で”md”
DATEDIF関数の 引数 単位で”md”で A1に2000/1/1 B1に2000/2/1と入力してあるとします =DATEDIF(A1、B1、”md”)の値が 0 になるのはどうしてでしょう ちなみに ”md”は1ヶ月未満の日数とあるのですが
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「1ヶ月未満の日数」というのは、判りやすく言うと 「x年yヶ月z日のzの部分」という意味です。というわけで、yヶ月 ちょうどの場合は0になるんです。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
回答No.3
=DATEDIF(A1,B1,"md") =IF(DAY(A1)>DAY(B1),DAY(DATE(YEAR(B1),MONTH(B1),0))+DAY(B1)-DAY(A1),DAY(B1)-DAY(A1)) で置き換えができます。 日にちの引き算で結果がマイナスの場合、終了日の前月の日数が加算される。 同じ日にちの場合は0日になります。 ちなみに#2の方の =DATEDIF(A1,B1,"d") =B1-A1 になります。通常は+1日することが多いですが...
質問者
お礼
こんな テクニックがあったのでうすね ありがとうございました
- taocat
- ベストアンサー率61% (191/310)
回答No.2
ヘルプ抜粋: md: 開始日から終了日までの日数。 この場合、月と年は考慮されません。 このように年と月が考慮されず日にちだけ比較してるので0になるわけです。 御存知でしょうが期間の日数を求めるには "md" ではなくて "d" を使います。 =DATEDIF(A1,B1,"d") 以上。
質問者
お礼
"md" ではなくて "d" を使います。< そう言われてみれば そうですね ありがとうございました
お礼
「x年yヶ月z日のzの部分」という意味です。< と言う意味だったのですね 解りました ありがとうございました