• 締切済み

エクセルの日付計算

以前、日付計算を返答頂きましてありがとうございました。 以下のようにするための入力方法について質問します。 A列の日付入力に対して、F列に自動的に○日後が表示されるようにするにはどのように入力したらいいでしょうか? 宜しくお願いします。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

ちょっと調べて VBAで組んでみました。 とりあえずバージョンなので手を入れるべきところは多々ありますが まあこんな感じできるよ。ということで、 このスクリプトを、以下のようにしてExcelシートに貼り付けてください。 ・このマクロを使用したいシートを開き ・ALTキーを押しながらF11キーを押下 ・Visual Basic Editor が開かれるのでそこから ウィンドウの左上にあるプロジェクトというタイトルのペインにある VBAプロジェクト→Microsoft Excel Object → sheet1をダブルクリック  (別にほかのシートでもかまいませんが、選択したシートに対して有効工になります)  右側の大きなペインに新たにウィンドウが開かれるので ウィンドウの上のほうの左側にある general と表示されているリストボックスをworkbookにする その右にあるリストボックスをChangeにする ここまでのステップで Private Sub Worksheet_Change(ByVal Target As Range) End Sub という二行が貼り付けられるので、この二行の間に以下のコードを貼り付けてください。 Dim R As Range Application.EnableEvents = False For Each R In Target If R.Column = 1 Then Cells(R.Row, 6).Value = "=" & "a" & CStr(R.Row) & "+30" End If Next Application.EnableEvents = True 貼り付けたら、一応ブックをセーブしてからファイル→終了してMicrosoft Excel に戻る を選択 これでA列のどこかのセルにデータを入れると、その行のF列にA列の値+30の 値を放り込むようになります。 エラーチェックも何もせずに単純に+30しているだけなので、 たとえばA30に100とか入力するとF30には130が入ったりします。 たたき台にでも使ってください。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

#1の補足にある質問の意味が今ひとつ取れないのですが、 ・A列には日付が入力されるけれども、それは最初からあるものではない。 ・A列のセルに日付が入力されたら即F列の対応するセルにA列のセルに入った 日付の30日後の日付が表示されるようにしたい。 ということですか? F1 に =D1+30 と入力して、それを下に必要なだけコピーすれば列指定だけ 数字が変わっていきませんか? これだとA列に実際にデータが入るまで 30 という表示になると思いますが、 IF関数を使ってやればそれを回避することは可能です。 あー、こういう事前準備なしに、任意のA列のセルにデータ入ったらF列に 反映したいということでしょうか? だとすると、組み込みの関数だけではダメで、VBA使ってマクロを書く必要があります。

kouki330
質問者

補足

丁重なご回答ありがとうございました。 A列に始まり日(毎回違った日を入力を入力)入れるとF列に30日後の終了日が自動的に上がってくるようにしたいんですが、関数の苦手な私としてはどうにかならないものかと考えていたのですが、何か難しそうですね。回答にあったように一つ一つ入力した方が、ミスがないかも知れませんね。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

日付データが文字列として入っているのでなければ、セルA1に日付データがあるとして セルF1に =A1+1 を入れると一日後の日付になります。 文字列として入ってるのであればDATEとかDATEVALUEといった関数を使ってシリアル値を求めてください。

kouki330
質問者

補足

例えば、A列項目に常に日付データが入力されるとして、F列の項目にはA列で入力した日付の30日先が自動的に表示されるためには、どのように関数入力をしたら良いのかわからないものでしょうか?

関連するQ&A

  • Excelの計算式について

    Excelを使って色々な計算式を作成したいと考えております。 うまく、説明ができない為にExcelファイルを簡易的では御座いますが 作成してみました。 よろしければご覧になって見てください。 http://technocompany.web.fc2.com/excel.jpg A列に日付を入力した場合に自動的に曜日が入るようにしたいのですが このような事は可能でしょうか? A列に入力した日付が月曜日~金曜日の場合には、その右側のC列に¥35000円と入力 A列に入力した日付が土曜日の場合には、その右側のC列に¥22200円と入力 A列に入力した日付が日曜日、祝祭日の場合には、その右側のC列に¥18800円と 自動的に入力をできる様にしたいのですが、このような事は可能でしょうか? B列には、異なる数値を日々入力して、D列にB-Cの数値を表示したいと考えております。 D列に表示された、数値に0.53を駆けた数値を、E列、若しくはF列に表示したいと考えております。 次にE列、若しくはF列に表示された数値に¥15500円を足した金額をG列に表示したいと考えております。 初心者では御座いますがご指導の程よろしくお願い致します。

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

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

  • Excel 日付管理の計算

    初めて投稿させて頂きます。 現在、Excelを用いてスケジュール管理表を作成しているのですが、 Excel初心者故、思い通りの表が作成できず、 困り果てております。。 どのような表を作るかと申しますと、 A列、B列には後々、日付または「-」を記入し、 C列にはA又はBの30日後(日祭日関係なく、単純に30日後)を 表示させるように作成したいのです。 詳細には、以下のようなルールの表を作成したいのです。 (1)AとBが空欄であるときは、Cは空欄 (2)Bに日付が入力され、Aが「-」のときは、CはBの30日後を表示 (3)AとB両方に日付が入力されたときは、CはBの30日後を表示 (4)Aに日付が入力され、Bが「-」のときは、CはAの30日後を表示 上記の内容で計算式を作成してみたのですが・・・ =IF(B1<>"", (B1+30),IF(A1<>"",(A1+30),"")) これでは「-」を入力したとき、エラー表示となってしまい、 困り果てております。。 皆様のご教授の程、よろしくお願い申し上げます。

  • エクセルの日付に関する質問

    質問させてください。    A            B 2010/12/21  →  20101221 2011/2/2    →  20110202 A列のような  / ←の付いている日付を入力したら、 B列のような / ←を抜いた8桁が自動で表示できる方法は ありますでしょうか? エクセル2003を使ってるのですが わかる方がいましたらよろしくお願いします。

  • エクセルの計算

    質問させていただきます。 Aの列に飛び飛びでランダムの日付があり、Bの列に曜日が縦に並んでいます。 A列の日付を入力したら曜日が自動で出るようにB列に以下を入れました。 =IF(A1<>"",MID("日月火水木金土",WEEKDAY(A1),1),"") このとき、土曜は青、日曜は赤と条件をつけました。 そしてC列に人数、D列に合計金額の欄があり、人数×単価をDに入れました。 このとき、条件として土曜日曜はプラス1,000円となります。 IFとORで対処し、一日の計算はどうにかできました。 1期間の合計(平日は平日の欄、土日は土日の欄)を下に入れるのですが、上記に書いたとおり、日付はカレンダーではなくランダムで入っているので、土日だけの計算は手作業で計算させています。 これを土日は土日、平日は平日で計算させる方法はありませんでしょうか? たとえば土か日と記入されているものだけを集めて計算させるとか。 説明に不足があればどんどんご指摘下さい。

  • ACCESSのクエリで日付を計算したい

    どうか宜しくお願い致します。 ACCESSのデータで、日付が入力されている列があります。 その日付から2ヶ月後の月を新しい列に自動に表示させたいと 思っています。 例) 2008/1/1~2008/1/31までのデータは、新しい列に3月と表示させたい。 2008/2/1~2008/2/28までのデータは、新しい列に4月と表示させたい。 クエリを作成し、新しい列を作ってそこへ計算式を入力すればいいのかな?と思っているのですが、どのような計算式を入れればいいのか分かりません・・・。 どなたか詳しい方、アドバイスお願い致します。

  • エクセルの日付機能

    エクセルの日付機能に関する質問です。 あるワークシートのA列に日、B列に月、C列に年が入力されています。これらの日付を行ごとに結合して、D列にdd/mm/yyという形式で表示させたいと考えています。 先ほど、D2に[=A2&"/"&B2&"/"&C2]という計算式を入力し、D列を右クリックして[セルの書式設定]→[表示設定]→[ユーザー定義]で[種類]欄に[dd/mm/yy]と入力しましたが、D2は日付として認識されず、ただの文字列として認識されているようです。 統合された文字列が日付として認識される良い方法を教えていただけないでしょうか?よろしくお願いします。

  • エクセルの日付計算

    エクセルの日付計算 エクセルの日付計算について教えてください。具体的に言いますと、 3月12日を基本納期として何日早くできたか、何日遅れてしまったがを表示したいのです。たとえば3月12日を基本に3月15日と入力すると「―3日」、3月10日と入力すると「2日」を表示したいのです、「日」の表示は特にいりません、数値だけで良いです。宜しくお願いいたします。

  • エクセルの日付入力【再】

    本日9:44に、同タイトルで質問をしたものですが、 頂いた回答の通りに実行しているうちに、お答え頂いた 方法と私が実際求めていた方法が違うことに気がつきました。 朝質問したのは、エクセルで日付入力をする場合に、 表示形式はH15.○.○という形式を設定して、ただし 今年の日付ではなく自動的に2年前の日付にするには どうしたらいいかというものでした。 お答え頂いた回答は、A1に今年の日付があるとして、 DATE(YEAR(A1)-2,MONTH(A1),DAY(A1)) この式を入れれば良い、ということでしたが、そうではなく、 たとえばB列全部に対してH15.○.○という表示形式を 設定していれば、9/30と入れれば自動的にH17.9.30に なると思うのですが、これを自動的に2年前の日付に なるようにしたいのです。 以前にもある方に教えて頂いたのに忘れてしまい、 そのとき教えて頂いた方法は、まずB列全体を選択して、 右クリック→「セルの書式設定」→「表示形式」→ 「ユーザー定義」と進んだように記憶しています。 ただその後が思い出せません。 度々すみませんが、ご回答お願い致します。

  • Excelで日付を入力したら締日を表示させる

    Excelで経費の支払いの表を作ろうとしています。 A列のセルに日付を入力し、 A列に入力した日付が1日~15日までなら B列のセルにその月の最終日の日付を 16日~31日までなら B列に翌月の15日と自動で表示されるようにするには どうすればいいのでしょうか? 詳しい方、教えてください。 ちなみに使用しているExcel2010です。