• ベストアンサー

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

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

  • kryk
  • お礼率79% (69/87)

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

  • ベストアンサー
  • 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
質問者

お礼

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

関連するQ&A

  • DATEDIF関数と普通の引き算による日数計算

    7月25日(セルA1)から7月1日(セルB1)までの日数を計算する場合、B1-A1で日数は出てくるようなんですが、例えば月を跨いだ場合、誤差は出てくるのでしょうか?(閏年や、月ごとの総日数の違いなどにより) 日数計算の場合、DATEDIF関数というものもあるようなのですが、これを使うと日数がマイナスになってしまう場合、エラーになってしまうようです。 後者の方が正確であるならば、DATEDIF関数を使いたいんですが、その場合、引き算の結果がプラスになる場合、マイナスになる場合が混在しているデータで使用する場合、どのような計算式を入力すればよいのかが分かりません。 どなたか御存知の方、よろしくお願いします。 ちなみに、単なる引き算で誤差がでないようでしたら、引き算で処理したいと思っています。

  • DATEDIF関数を使うには?

    ある質問を見ていて、日付と日付の間の日数を求める関数、DATEDIFを使うといいという回答を見ました。 「そういう関数あるんだ」とおもい、試してみたら、わたしのEXCELでは使えないようなのです。 =datedif(A1,B1,"m") と入力すると、#NUMという表示になります。 追加アドインなど必要なのでしょうか? WinXp Excel2003です。

  • エクセルでDATEDIF関数使用時の並び替え

    DATEDIF関数を使用し、以下の「25年0月」「5年0月」の算出をしてるんですが、その際の算出した答えを基に並び替えする場合、どのようなテクニックがあるんでしょうか? 【質問の例】 1980/4/1  2005/4/1  25年0月(計算式「=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"月"」) 2000/4/1  2005/4/1  5年0月(計算式「=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"月"」) ※1980/4/1がA1セルとなっています。 上記のような場合、昇順に並び替えすると25年0月が上で、5年0月が下にきてしまいます。5年0月を05年00月というような表示にできれば解決できるかなーと思うんですが、私のテクニックではできませんでした。できればVBAは使用しない方法でお願いします。(自分が使うファイルではないので) また、特にDATEDIF関数の使用にこだわっているわけではないので、別の期間計算の方法があればそれでも構いません。

  • DATEDIF関数について

    excel2007を使用し、日数の計算をしようとDATEDIF関数を使ってみました。日数に+1をした○日間を出したく、そのように関数を入れて無事に表示されましたが、空白欄には+1が並んでしまうのはやむを得ないのでしょうか? 開始日・終了日+1日(○日間)を出したく、開始日は入力済みのセルもあるのですが、終了日をにゅうりょくした時点で、○日間を表示させたいセルを日数を表示 ということがしたく。 ご存じの方がいらっしゃいましたら、お力を貸してください!!!

  • DATEDIF関数

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

  • 関数のDATEDIFに替わるものについて教えてください。

    関数のDATEDIFに替わるものについて教えてください。 入社年月日から今現在の勤続年数を『何年何ヶ月』と表示したいのですが、 エクセル2000にDATEDIF関数がありませんでした。 関数が苦手なので分かりやすく教えてください。 よろしくお願いします。

  • エクセル関数 DATEDIFについて

    エクセル関数が得意な方、答えが合っているか確認してください。 Q.Aさんの生年月日は1973/5/9で、2011/4/1現在の年齢を計算したい場合、 =DATEDIF(生年月日1973/5/9,2011/4/1現在,"y") ※実際には生年月日などのところに入っているのはセル番ですが・・・ 答えは37歳 Q.Aさんの入社日は1998/5/12で、2011/4/1現在の勤続月数を計算したい場合、 =DATEDIF(入社日1998/5/12,2011/4/1現在,"m") 答えは154月数 私のやり方と答え、これであっているのでしょうか? よろしくお願いします。

  • エクセル DATEDIF関数

    色々調べたのですがよくわかりません。 DATEDIF関数で年齢計算させたいと思います。 適当なセルに本日の年月日を表示させ、 A列に生年月日、B列に年齢を出そうと思います。 そのため、B1にDATEDIF関数を入れ、B2から下の行に、この関数をコピーしました。 この結果、A列に生年月日を入れれば隣のB列に年齢は出るのですが、A列に生年月日を入れなくても、B列には生年月日を1900年とした年齢が表示されます。 (今年なら118歳が表示されます。) 生年月日を入れていない行には年齢を表示させたくないのです。 入力した人だけの平均年齢を出したいのですが、この118歳が邪魔になります。 どうすればいいのでしょうか。

  • エクセル2007の関数 DATEDIF

    現在の状況は 関数の挿入をクリックして、 「関数の分類 すべて表示」で検索しても、DATEDIFが見つかりません。 「何をしたいか」に DATEDIFを入力しても、DATEDIFが見つかりません。 セルに直接 =DATEDIF(*,*,"*") 入力すれば正常に結果は表示されます。 office2007の修復をしても改善できません。 質問 「直接入力」する方法では未熟なために、引数の順番を間違えたりするので、できれば 「関数の挿入」機能を使いたいです。 添付図の赤色矢印の位置に DATEDIF を表示させる方法を教えて下さい。

  • EXCELのdays360とDATEDIF関数について

    現在text形式のデータをエクセル変換して集計してますが、日付データ(yyyy/mm/dd型)のデータ2つの間の日数を計算しようと思い、days360を使ってみましたが、返される値が『1901/01/日数』となってしまいます。同様にDATEDIFではエラーが出ます。元がテキスト形式から変換したデータで、量も膨大なため、いちいち""もかけられず、かといってTEXT関数やIF関数を使ってしたごしらえをすると容量が馬鹿みたいにでかくなってしまいます。 days360かdatedif関数のみでうまく日数のみ表現するにはどうしたらいいのでしょう?

専門家に質問してみよう