エクセルで年月を自動入力する方法

このQ&Aのポイント
  • エクセルでa1から20に年月を入力する方法について説明します。a1のスタートは入れたいデータによって異なりますが、それぞれのスタートから20ヶ月後がa20に表記されます。
  • a1を平成17年8月とした場合、9月から1月までは平成○年という表記が入りますが、他の月は通常の月の表記になります。
  • a列には20とc列には20を表記したい場合、c列はa20の次の月から始まります。
回答を見る
  • ベストアンサー

エクセル-年月自動入力

a1から20に年月を入力したい場合について伺いたいのですが 1.a1のスタートは入れたいデータによってバラバラ。   平成17年8月だったり平成15年6月だったり。   それぞれのスタートから20ヶ月後がa20に表記される。   例:平成17年8月→平成20年3月     平成15年6月→平成18年1月という具合   2.a1を平成17年8月とした場合9月.10月・・・と続いて   a6が平成18年1月となるわけですが、そのように以降   ずっと1月だけは平成○年という表記が入る。他の月は   月の表記だけ。 3.a列に20とc列に20表記したい。   c列はa20の次の月から始まる。   (a列と連続している。) 説明が分かりにくく恐縮です。 どうぞよろしくお願いします。

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

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

No.1です。 >正確にはB9~B38とH9~H38なのですが >その場合、式はどう変化しますでしょうか? まず、A2に入力する数式は、B10に入力することになりますが、 この際参照するセルは、A1→B9になるので、数式中の 「$A$1」を「$B$9」に替えます。 ただし、ROW関数の中の「A1」は替えてはいけません。 ROW関数は行番号を返す関数ですが、ここでは「1番目」という意味を持ち、A1というセル自体を参照しているわけではありません。 (この数式を下へコピーすると、ROW関数の部分が、「1番目」「2番目」・・・と連番になるのです。) 次に、H9に入力するC1の数式ですが、こちらも「$A$1」を「$B$9」に替えます。 ところで、No.1の補足欄の範囲だと、30ヶ月になります。 もし30ヶ月なら、C1の数式中の「20」を「30」にして下さい。 あとはH10に入力するC2の数式ですが、こちらは、「$C$1」を「$H$9」に替えます。 もちろん、ROW関数の中は、「C1」のままです。 ところで、ROW関数は前述のように行番号を返す関数なので、列は関係ありません。 したがって、中(引数)は「A1」や「C1」でなくても、「B1」でも「H1」でも「AA1」でも構わないです。 ROW関数や他の関数はヘルプを参照してみて下さい。

enntei
質問者

お礼

完璧すぎます。

その他の回答 (3)

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

A2:A20と c2:c20を範囲指定し、1度にその書式をユーザー定義のyyyy年mm月にします。正式にはyyyy"年"mm"月" A2に2005/8と入れる。スタート月、1日が入るが入力は略せる。 A3に=DATE(YEAR(A2),MONTH(A2)+1,1) A3をA20まで式を複写する。 ---- C2には=DATE(YEAR(A20),MONTH(A20)+1,1) C3には=DATE(YEAR(C2),MONTH(C2)+1,1) C3をC4以下に複写する。

  • hiroaki_0
  • ベストアンサー率53% (131/245)
回答No.2

えっと、書式が途中で変わる場合は、マクロ(VBA)を使わないと出来ないと思います。

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

こんにちは。maruru01です。 まず基準となるA1には、「2005/8/1」とその月の1日の日付を入力することとします。 (「2005/8」だけでも1日として自動変換してくれるようですが、念のため年月日を入力して下さい。) そして、A1のセルの表示形式をユーザー定義で、 「ggge"年"m"月"」 にします。 A2に、 =TEXT(EDATE($A$1,ROW(A1)),IF(MOD(MONTH($A$1)+ROW(A1),12)=1,"ggge年","")&"m月") と入力して、A20までコピーします。 EDATE関数が使用出来ない場合は、A2には、 =TEXT(DATE(YEAR($A$1),MONTH($A$1)+ROW(A1),1),IF(MOD(MONTH($A$1)+ROW(A1),12)=1,"ggge年","")&"m月") と入力して下さい。 A2:A20のセルの表示形式は標準のままでOKです。 次に、C1に、 =EDATE($A$1,20) または、 =DATE(YEAR($A$1),MONTH($A$1)+20,1) と入力して、セルの表示形式をA1と同様に、 「ggge"年"m"月"」 にします。 C2に、 =TEXT(EDATE($C$1,ROW(C1)),IF(MOD(MONTH($C$1)+ROW(C1),12)=1,"ggge年","")&"m月") または、 =TEXT(DATE(YEAR($C$1),MONTH($C$1)+ROW(C1),1),IF(MOD(MONTH($C$1)+ROW(C1),12)=1,"ggge年","")&"m月") と入力して、C20までコピーします。 C2:C20のセルの表示形式も標準のままでOKです。

enntei
質問者

補足

できました! maruru01さんスゴイスゴイ。 ただ、例としてあげたのはあくまで例だったので 8月の次が2月になったり平成が明治になったりしちゃってます。 正確にはB9~B38とH9~H38なのですが その場合、式はどう変化しますでしょうか?

関連するQ&A

  • エクセル表記

    エクセル2010について教えてください。 現在,A列にある年月日を入力,B列にA列と本日TODAY()までの経過年月をDATEDIF関数で表記するようにしています。表記は「1年5月」の形です。 ここで,B列の年月が5か月以上経過したものには一目でわかるように,たとえばそのセルに色を付けるとか,C列のセルにマークを表記させるとかしたいと思っています。 色々調べたのですが,これぞと思うものが見当たりません。 どうかよろしくお願いします。

  • EXCEL 決められた月に対するアンサー

    EXCELで下記のような表を作成していますがこの中から4月に東京出荷は 何件あるのか?という関数がわかりません。単純にcount Ifで範囲を 4月に設定(自分で探し)条件を東京でも出来ますが量が莫大ある事と出荷月日を変更する場合また自分で範囲指定しなければいけません。そこから得られた結果を元に別の表も作成しなければいけない状態です。。。 ようは、1月から12月までの中で4月に東京に出荷したのは何件! ※実際の表は1月から12月まであります。という事です。 分かりにくい文面大変恐縮ですがご教授頂ければ幸いです。 宜しくお願いします。 A列=平成 B列=20 C列=年 D列=1月~12月 F列=月 G列=1日~31日 H列=日 I~L列=出荷場所(東京・大阪など)   A1 B1 C1 D1 F1 G1 H1 I1 J1 K1 L1 M1 N1 O1 P1  2  入荷年月日       出荷場所 3 平成 20 年 4  月 4  日  東京 4 平成 20 年 5  月 4  日  大阪 5 平成 20 年 4  月 4  日  愛知 6 平成 20 年 6  月 4  日  福岡 7 平成 20 年 1  月 4  日  広島 8 平成 20 年 8  月 4  日  千葉

  • エクセル カレンダー入力で教えてください

    カレンダー入力で A列B列C列があってA列に和年号 B列月 C列日としてあります 例えばA1のセルをクリックするとカレンダーが出てきて日付け平成20年10月31日をクリックするとA1に20 B1に10 C1に31 と各セルに値が入るようにしたいのですが ご教授お願いします。

  • エクセルの関数で月を加算する関数は?

    エクセルで作った表があります。 A列は回数・B列は翌月を*年*月と表示してあります。 C列には、B列にA回数月列経過した年月を表示したいのですが、どの関数をどう使えばよいのかわかりません。 MONTH関数をどうにかすればよいのでしょうか? 教えてください。

  • 開始と終了の年月日入力と同時に、該当月のセルに色を表示したいです。

    A列2行目に工事開始年月(年月日の場合もあります)を入力、 B列2行目に工事終了年月(年月日の場合もあります)を入力します。 C列1行目から右隣の列へとこの先の年月だけが入力されております。 工事開始年月(A列2行目)と工事終了年月(B列2行目)を入力した時に、C列以降の列の2行目にはその期間に該当するだけ、セルが自動的に青く塗りつぶされるようにしたいのですが、この場合、C列2行目以降の列にはどんな数式を入力すれば良いでしょうか? 条件付き書式で色の表示は設定すれば良いのかなと思うのですが、 肝心な数式がわかりません。もしくは他に良い方法があるのかもしれません。 どなたかご存知でしたら教えていただけないでしょうか? よろしくお願いいたします。 イメージ 1行目  開始日  完了日    08/03 08/04 08/05 08/06 2行目 08/03/01 08/05/30     青   青   青

  • Excelの時間計算(年・月・日 別々のセルで…)

    Excelの時間計算で悩んでいます。 2つの異なる日付(年、月、日別々のセルに入力したもの)の 日数の差を関数で表示させたいのですがうまく行きません。 例えば、 A列にスタート年、B列にスタート月、C列にスタート日、D列にエンド年、E列にエンド月、F列にエンド日を入力し G列にエンド年月日-スタート年月日の日数させたいと考えています。 +----A----B----C----D----E----F----G 1   2008      2      1   2008      2     28     24 G1にDATE(D1,E1,F1)-DATE(A1,B1,C1)の数値を表示させたいのです。 ひとつのセルに日付形式で年月日を持たせれば DATEIF関数で実現可能なのは判りましたが 運用上、年月日を別のセルにして管理したいと考えています。 どなたかお解りになる方、いらっしゃいませんでしょうか。

  • EXCEL VBA マクロ 日付

    こんばんわ。 EXCEL VBA マクロ の日付について質問があります。 セル"A1"で"年"(例:2008)、セル"B1"で"月"(例:5)を指定します。 C1からC500くらいまで(毎日増えていきます)日付が入っています。 A1、B1で指定した年月と同じC列の日付を 10桁スラッシュ区切りの形式(例:2008/05/15)で 右隣のセル(D列)にコピーしたいんです。 困ったことにC列は形式が決まっているわけではありません。 たとえば、2008年5月15日の場合、 ・20080515・2008年5月15日・2008.05.15・2008.5.15 ・2008/05/15・2008/5/15・08/05/15・2008-5-15 その他、いろいろ考えられます。 これをマクロでやるにはどうすればいいでしょうか。 毎月一回実行します。 日付の形式をチェックするところで やり方がわからなくて困っています。 よろしくお願いします。

  • 行と列情報を1つのセルにまとめたいです

    こんにちは。 現在、「マクロの記憶」で処理していますが、フリーズが多いため質問させてください。 -------------------------------------------------------------- 添付画像7行目までのように、データが入力されています。 同じシート内で、データを処理し添付画像11行目以降のように ・0が書かれたセルを削除したいです。 ・1と書かれたセルを、同列1行目に書かれた数字(日にち)に置き換えて、B列の年月とまとめて1セルに収めたいです。→年月日を作成したいです。 ・左詰めにまとめたいです。 A列:ID番号 B列:年月 C列-AG列:日にち(C1からAG1までは1~31が連続で入力されています。) ・A列のIDがB列の年月ごと1行でまとまっています。 ・IDによっては、年月が同じなのにもかかわらず複数行に分かれることがあります。添付画像16,17行目のようなことが起こります。 ・IDごとに、複数行存在する場合があります ・IDは昇順です。年月の順番はバラバラです。 例えば、2行目のIDが1000の方は、B2が201908、Q2とR2が1なので 2019年08月15日(20190815)、2019年8月16日(20190816)としたいです。 多い方だと、1行に15個の年月日が表示されています。 -------------------------------------------------------------- 分かりにくい部分がありましたらご教示いただけますと幸いです。 お忙しいところ恐縮ですが、何卒宜しくお願いいたします。

  • 別ブック2列がマッチした文字を入力する

    BブックのC列7行目から文字(15ステップ毎文字が入替る)がまたF列8行目からは年月(2017/4~2018/3)、AブックのA列4行目から年月がまたB列4行目からは文字が添付のように連続して入力されています。BブックC列文字とAブックB列文字が一致、BブックF列年月とAブックA列年月が両方一致した行のAブックC列の文字をBブックのE列に順々に入力していきたいのですが。 どなたかVBAコードが解る方ご教授願います。 環境はwindows7 office2013です。

  • エクセル 日付自動入力?

    エクセル2000を使用しております。 例)セルA1に 8/1 と入力したら   セルB1以降には自動で 8/2 セルC1には8/3・・・・・ 以上のように連続2週間分の日付が入力されていく。 但し 土曜日、日曜日の日付は入力されないようにする。 以上のような自動入力をする関数、もしくはVBAにての 命令文を教えていただきたいのですが・・ よろしくお願いいたします。

専門家に質問してみよう