• ベストアンサー

DATEDIFでマイナス表示をさせたい

たとえば2004年5月5日~2004年5月1日までは さかのぼって何日マイナスか?という答えを出したいとき DATEDIFではマイナスになると#NUM!がでて答えが出ません。  これを-5という表示にしたいのですが何か方法はありませんでしょうか?  他にもマイナスにもならない日数計算も混在する為、 同じ計算式でコピーしたいのですが、 関数にこだわらず 何かよい方法はありますでしょうか?

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 単純な日数差なら、引き算をするだけでいいと思います。 ただし、両端を加算する期間日数のようなのでちょっと工夫がいります。 仮にA1に「2004/5/5」、B1に「2004/5/1」と入力されているとすると、 =B1-A1-2*(A1>B1)+1 で出来ます。 なお、A1とB1が同じ日付の場合は「1」になると解釈しました。 あと、未入力の対処も入れると、 =IF(COUNT(A1:B1)=2,B1-A1-2*(A1>B1)+1,"") となります。

kryk
質問者

お礼

早速のご回答ありがとうございます ドンピシャでした! 本当にありがとうございました!

その他の回答 (2)

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.2

通常の状態では日付のマイナス表示は出来ません。(これはエクセルの仕様なのでしょうがありません。) 但し、データを入力する(シートを作るとき)前にツール→オプション→計算方法から下の「1904年から」にチエックを入れると計算が出来るようになります。この場合、日付のシリアル値が約4年分ずれます。他のシートとの互換性も失われてしまいます。(このチエックは本来Macとの互換性を保つために設けられたものですが。)

kryk
質問者

お礼

ありがとうございます やはり抜け道はあるのですね

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.1

=-datedif(a1,b1,"yd") と「-」を付ければよいと思います。 A列の日付からB列の日付までの日数で、同じ計算式でということなら、 =IF(A1>B1,-DATEDIF(B1,A1,"yd"),-DATEDIF(A1,B1,"yd"))

kryk
質問者

お礼

ありがとうございます これだとちょっと日付がずれてしまうので・・・