• ベストアンサー

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

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

  • nan
  • お礼率4% (6/147)

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

  • ベストアンサー
  • 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/17068)
回答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

  • Excelでの日付の計算

    あるセルに例えば「2002/7/4」という日付が入っていて、この日から今日までの日数を計算する式を教えてください。その際にその計算式を入れたセルの書式の表示形式は何を設定すればいいのでしょうか?よろしくお願いします。

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

  • Excelの日付の入力について

    A列のセルにずらっと 2011/11/29といった感じで日付の入力をしています。 セルの書式設定で 2011年11月29日 と表示されるようにしています。 これらのデータを表示されている通り B列に貼り付けをすることは可能でしょうか? 貼り付けをしてB列のセルの書式設定で 表示方法の選択をすればいいのすが それでは見せ方を変えているだけなので 出来れば 2011/11/29を 2011年11月29日という文字列のデータにして 貼り付けという作業がしたいです。 詳しい方、お願いします。

  • 日付から求める計算方法

    はじめまして、こんにちは。私はエクセルの初心者で、初歩的な質問ですみませんが、教えてください。 現在、下記のようなリストがあります。 B列の訪問日数は2008/08/01と2008/08/03と2008/08/06の3日間です。 C列の実稼動日は、終日で1日、半日で0.5日と計算し、2008/08/06は半日なので、実稼動日は2.5日です。 といったB列日付を元に訪問日数の合計、 B列日付とC列の稼動区分を元に実稼動日を計算して、F列に各結果を表示させたいと思っています。 ---------------------------------------------------------------- A列    B列   C列    D列    E列    F列 番号 訪問日  稼動区分  時間  訪問先 訪問日数 3 001 2008/08/01 終日  09:00-12:30 佐々木商事 実稼動日 2.5 002 2008/08/01 終日 15:00-16:00  井口(株) 003 2008/08/03 終日 10:00-11:00  山本(株) 004 2008/08/06 半日 10:00-11:00  浜田商事 005 2008/08/06 半日 11:30-12:00  木谷運輸 006 2008/08/06 半日 13:30-14:00 山本(株) ---------------------------------------------------------------- 関数を使って(COUNTIF,IF(COUNTIF)など)いろいろと試したのですが、どうもうまくいきません。 そこで、VBAでも関数でも結構です。 どなたか解決方法を教えてください。 よろしくお願いします。

  • Excel 一列おきのデータ参照と計算

    Excelの計算式について質問です。 同じ行の左から右方向に,貸した日付と帰ってきた日付を順番に入力します。(データは,B1貸し日 B2返却日 B3貸し日 B4返却日・・・・ の順に増えていきます) A1に一番最新の貸し日付を,A2に一番最新の返却日付を,表示させたいと思います。つまり,単に一番右のデータ(最新日付)を表示させるのではなく,奇数列と偶数列のそれぞれの最新データを表示させたいのです。 そしてA3には,返却状態でない場合は(最新貸し日付-一つ前の貸し日付=日数)を表示させ,返却状態であれば(最新返却日付-一つ前の返却日付=日数)を表示させたいと思います。(つまりサイクル日数を出したいのですが,物が当方にあるかないかで計算に用いる日付が変わります) この場合,A1 A2 A3 にはどのような計算式が良いでしょうか。もしよろしければお教えください。よろしくお願いします。

  • エクセル日付の引き算

    エクセルで入力されている日付A、日付けBの期間日数を計算する関数ありますか? 例:セルA3 2006/10/29 セルA4 2006/11/1 10/29 カら 11/1 の期間日数=3

  • エクセルでの日数の計算

     こんばんは。エクセルで指定の日付から今日現在のに数を求めるやり方で分からないことがあり質問します。 ・A1のセルに今日の日付を、 =TODAY() と入れました。 ・A2のセルに指定日の日付(例えば2006/03/15)と入れました。 ・A3のセルに =DATEDIF(A2,$A$1,"D")と入れました。 A3のセルには指定日から今日までの日数が表示されます。  そこで質問ですが、A4のセルに指定日から今日の5日後の日数を、A5のセルに指定日から今日の5日前の日数を表示したいのですが、どの様に入力したらよいのか分かりません。やり方を教えてくださいお願いします。 

  • エクセルの計算式

    エクセル2003を使用してます。あまり詳しくないので計算式を2つ教えてください。 (1) A1セル りんご    A2セル オレンジ A3セル バナナ と入力されていて、例えばB1セルに『1』を入力したらC1セルに『りんご』が出てくる計算式(B2セルに『1』を入れたらC1セルに『オレンジ』) (2) ファイルを開いたら日付の指定をしているところにその日の日付を出したいのですが…。 例えば今日だったら→ A1セル 9年6月18日              A2セル 0618 と出てくる計算式。 こんなことができる計算式があれば教えてください。

  • 書式設定が日付のもの同士を計算させたい(遅延日数を表示させたい)

    こんにちは。今、お仕事でこのようなことに直面しております。使用しているものはExcel2000です。    A  B 1 予定 6月8日   ←入力されている情報 2 確定 6月18日   ←入力されている情報 3 遅延日数 10日    ←セルB3 の結果を自動計算して出力出来るか? という問題です。 例題のようにたかだか10日くらいのものでしたら問題ないですが、下記のような可能性があるため、考慮しなくてはならない事柄があります。 ●西暦表示はさせずに ○月×日 としたいが、年月をまたがる計算も有り得ること。  (EX: B1セル→2004年12月25日 B2セル→2005年4月8日) ●セルB3の回答が32日以上の場合は ○ヶ月×日 というように出力したい。 書式が数値ではなく日付なのだから計算なんて出来るのかな?なんて思いつつデータの量が1sheetに6000件あります。さすがに自動計算させたくて…。 お手すきのお方、いらっしゃいましたら宜しくご教授くださいませ。

  • EXCELの日付の計算と表示

    質問させて下さい。 EXELEで作表しているのですが、下記についてわからず教えて頂けると助かります。 私の会社は客商売をしており、お客様には貸しスペースを提供しております。その際に、使用日に対して予約を入れて頂くのですが、実際に使用して頂く(決定)のと、使用しない(キャンセル)と、その日が先約がいてこちらからお断り(残念)という扱いになるのですが、作表しているデータはキャンセルと残念になります。 セルA     セルB   セルC      セルD 予約対象日  予約日  キャンセル日  残念 何をしたいかといいますと、予約対象日に対してお客様より何日前に返事を出して頂いたかを調べております。もしもできるなら、セルCかセルDに日付を入力した時にセルAに色付けされるとベストです。色付けの定義としては、予約対象日に対しての返事が(日数は仮定です)・・・(1)一週間以上前(2)5日以内(3)3日以内の3色を付けられたらと思います。入力に際しては、セルCとセルDは(当たり前ですが)必ずどちらかにしか日付は入りません。 この内容が無理なようでしたら、単純にセルを追加してそこに日数の差し引きをする計算式があれば教えて頂けると助かります。 見当違いであったり、説明不足があるかと思いますが 宜しくお願い致します。

専門家に質問してみよう