• ベストアンサー

エクセルでの日付の計算方法

A列、B列に以下のデータが入っています。 契約日■■■申込日■ 20020402■20020207 20020403■20020207 20020404■20020207 20020405■20020207 20020412■20020207 20020421■20001202 20020419■20020106 20020511■19990315 20020423■20020411 このデータ、実は日付なのですが、申込日から契約日までの日数を 計算したいのです。(A2-B2の計算を日付でしたいという意味です) ちなみにセルの書式設定で日付を指定すると、################と 表示されてしまいます。 どなたか方法をご教授ください。

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

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.1

年月日が4桁+2桁+2桁=8桁の数値データで入力されているということですよね。 セルA2に契約日、セルB2に申込日として、それぞれの年、月、日を取り出すには、 年=INT(A2/10000) 月=INT(MOD(A2,10000)/100) 日=MOD(A2,100) 年=INT(B2/10000) 月=INT(MOD(B2,10000)/100) 日=MOD(B2,100) となりますが、これをExcel標準の日付シリアル値に変換するには、DATE関数を使い、それぞれ =DATE(INT(A2/10000),INT(MOD(A2,10000)/100),MOD(A2,100)) =DATE(INT(B2/10000),INT(MOD(B2,10000)/100),MOD(B2,100)) となります。(適当なセルに入力して、『書式設定』の『表示形式』を"日付"にして確認してみてください) 経過日数(A2-B2)は =DATE(INT(A2/10000),INT(MOD(A2,10000)/100),MOD(A2,100))-DATE(INT(B2/10000),INT(MOD(B2,10000)/100),MOD(B2,100)) です。(『書式設定』の『表示形式』を"数値"にする必要があるかもしれません。)

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

日付け(Date)の差(Difference)ということでDateDifという 関数があります。常識的にこの利用を考えました。ただ引数が 文字列で困りましたが、ラッキー!下記で出来ました。 式が一番短いと思います。 C1に関数式=DATEDIF(TEXT(B1,"####-##-##"),TEXT(A1,"####-##-##"),"D")をいれます。A列がB列より(日付けとして見て)先日付けであること(引き算と逆)。Textの中の「-」を「/」 にしないこと(割り算的に解されてしまう?)。2点注意。

すると、全ての回答が全文表示されます。
  • comv
  • ベストアンサー率52% (322/612)
回答No.4

こんにちは _|_A__|_B__|C 1|契約日_|申込日_|日数 2|20020402|20020207|式 3|20020403|20020207|↓ 4|20020404|20020207|↓ 5|20020405|20020207|↓ 6|20020412|20020207|↓ 7|20020421|20001202|↓ 8|20020419|20020106|↓ 9|20020511|19990315|↓ 10|20020423|20020411|↓ セルC2に式  =IF(COUNT(A2:B2)=2,TEXT(A1,"0!/!00!/00")- TEXT(B1,"0!/!00!/00"),"") 下行に複写

すると、全ての回答が全文表示されます。
  • daiju3000
  • ベストアンサー率29% (21/72)
回答No.3

#2です。すいません引く方向間違いました。 下の式が正解です。 =DATEVALUE(LEFT(A2,4)&"/"&MID(A2,5,2)&"/"&RIGHT(A2,2))-DATEVALUE(LEFT(B2,4)&"/"&MID(B2,5,2)&"/"&RIGHT(B2,2))

すると、全ての回答が全文表示されます。
  • daiju3000
  • ベストアンサー率29% (21/72)
回答No.2

C2に =DATEVALUE(LEFT(B2,4)&"/"&MID(B2,5,2)&"/"&RIGHT(B2,2))-DATEVALUE(LEFT(A2,4)&"/"&MID(A2,5,2)&"/"&RIGHT(A2,2)) と入れて下までコピーしてください。 (上の式を選択してコピー後、エクセルで貼り付けが速いと思います。) ちなみにこのセルは、日数ですので、表示形式は日付でなくてもいいと思います。しいて言うなら表示形式はユーザー定義の 0"日" でしょう。

すると、全ての回答が全文表示されます。

関連するQ&A