• ベストアンサー

各セルに、翌月、前月、翌々月・・・当月を表示したい。

質問 です セルE3に翌月を表示し、F3に前月を表示し、セルG3に翌々月を表示し、セルH3以降はO3まで一月ずつ加算し、セルP3は当月を表示する方法を教えてください。(セルE3からP3までのセルの表示を「日付」にし、それぞれに関数を入れれば済みますか。そうでしたら、その関数を教えてください。VBAが必要でしたら、その部分を教えてください。) 月が替わる都度、自動で各セルも繰り上がるようにしたいのです。 例 です 今月が8月ですので、セルE3には『9月』と表示し(『』は表示しません)、セルF3には『7月』と表示し、G3には『10月』、H3には『11月』・・・O3には『6月』と表示し、P3には『8月』と表示させたいのです。 そして、日数が過ぎて9月に入った場合は、自動でセルE3には『10月』と表示させ、以降のセルも計算により繰り上がった月表示させたいのです。 状況と理由 です エクセル2002を使用しています。 [データ]-[入力規則]-[リスト]を使用して、セルに簡単に入力できるようにしています。 そのセル(セルA3)に入るのは、月です。 リストはセルE3、F3、G3、H3・・・P3に入力しています。 現在は手入力でテキスト形式で入力しています。 頻繁に使うのは翌月と前月です。 リストを使うと、候補の一番上はセルE3に表示されているもので、その下にはセルF3に表示しているものが来ます。 そこで、常に自動で並べかえられるならば、便利だと思ったのです。 よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

>そのセル(セルA3)に入るのは、月です。  A  B  C  D  E   F  G  H ・・・O  P 8月         9月 7月 10月 11月  6月 8月 E3 =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),"m月") F3 =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())-1,1),"m月") G3 =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+COLUMN(B1),1),"m月") O3まで右へコピィ P3 =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1),"m月") ででると思いますが >頻繁に使うのは翌月と前月です。 なので複雑な順番にしていると思いますが、人が使うには順に並んでいるほうが良くないですか? E3 =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+COLUMN(A1)-2,1),"m月") でPまで右へコピィで、先月から順になりますが。

pooh-03
質問者

お礼

ありがとうございます。 大変参考になりました。 >人が使うには順に並んでいるほうが良くないですか? リストの表示枠が狭く、順に並ばせると、前月はスクロールして一番下出さなきゃならないのでこうしてみました。 でも、リストの最初の月を変更すれば、うまく行くかもしれません。 ありがとうございました。

その他の回答 (4)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.4

#3です。 補足します。 H3以降はH3の式を右フィルして下さい。

pooh-03
質問者

お礼

ご丁寧にフォローしていただいてありがとうございます

  • keirika
  • ベストアンサー率42% (279/658)
回答No.3

E3 =IF(MONTH(TODAY())+1=13,1,MONTH(TODAY())+1) F3 =IF(MONTH(TODAY())-1=0,12,MONTH(TODAY())-1) G3 =IF(E3+1=13,1,E3+1) H3以降 =IF(G3+1=13,1,G3+1) P3 =MONTH(TODAY()) でセルの書式設定をG/標準"月"にします

pooh-03
質問者

お礼

ありがとうございます。 こういう方法もあるんですね。 勉強になりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 E3は、=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),"m月") F3は、=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())-2,1),"m月") G3は、=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+COLUMN(B1),1),"m月") H3以降は、G3を右方向にコピーして下さい。

pooh-03
質問者

お礼

ありがとうございました。 これなら書式設定はいらないのですね。 大変参考になりました。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

=DATE(YEAR(NOW()),MONTH(NOW())+XXXXX,1) XXXXXのところに-1,+1などを突っ込めば、前月、翌月などの1日が 出てきます。後は「書式」「セル」の「日付」でコントロールすれば オッケー。月だけしか表示したくないなら、「ユーザー定義」で「m月」 と入力してやれば「月」しか出てきません。 ちなみに「+12」とすれば、ちゃんと翌年の同月が出てきます。

pooh-03
質問者

お礼

ありがとうございました。 解決方法を教えていただいて ほっとしました。

関連するQ&A

  • ExcelでVBAを使って日付を自動表示したい

    初めまして。エクセル初心者です。エクセル2000で日付を自動で表示したいのですが、どのようにVBAで作成すればよいか教えて下さい。 まず、シート1のセルE2に西暦・セルG2に月を入力するとセルE4   にG2の月・P4にG2の次の月が自動で表示されます。 次に、セルE5からセルO5までにE4の月の21日から31日、    セルE6からセルO6までにE4の月の21日から31日までの    曜日を自動で表示したい。    セルP5からセルAI5までにP4の月の1日から20日、    セルP6からセルAI6までにP4の月の1日から20日までの    曜日を自動で表示したい。 最後に、土日の列のセル5から25までを灰色にする。 セルE4の月によって30日まででセルO5何もなし、2月なら28日で29日から31日は表示しないようにしたいのですが。 何かいいマクロの組み方を教えて下さい。よろしくお願いします。     

  • 前月を表示したいのですが…

    A1に各月度(「1」~「12」)のみが入力されています。 D1にその前月の月度(「1」~「12」)のみを表示させたいのですが、うまくいきません…(汗) IF関数の入れ子で対応出来たりするんでしょうか? ちょっと頑張ってみたんですが、イマイチうまくいかず、MONTH関数か?と思ってやってみたんですがシリアル値?に詳しくなく、これまたちょっと分からず…(滝汗) 既出かもしれないんですが、お力をお貸しください。 どうぞよろしくお願いします(><

  • エクセルで当月の数字を入力して、隣のセルに前月の数字を表示するのには

    エクセルで今月の数字を入力して、隣のセルに前月数字を表示するのにはどうすればいいのでしょうか?どうか分かる方教えてください。

  • 指定セル値に当月1日を翌月まで維持

    B1セル変更によってマクロを実行したくB1セル値に月が変わったら当月1日が入力され翌月初日切替りまでB1セルに当月/1を入力維持させたいのですがVBAコードが解る方宜しくお願いします。(B1セル当月/1,B2セル当月/2,B3セル当月/3~を入力したいためです)

  • エクセルで曜日を自動で表示させる

    苦戦してます。教えて下さい   A   B  C  D   E  F   G  H   I 1 平成 21 年  4  月  4  日  ■  曜日 2 3 上のように表を作成し A2セルに =A1&B1&C1&D1&E1&F1&G1 と入力し 平成21年4月4日と表示させました。 A3セルには =A2 と入力し、セルの書式設定を aaa にして曜日を表示させようとしたんですが、平成21年4月4日 としか表示されません。 最終的にはH1セルに =A2を入力して曜日を自動表示させるつもりでいたんですが、どうすればうまくいくのでしょうか?

  • 1つのセルの数字を複数のセルに1文字づつ表示したい

    こんばんは。 いつも勉強させていただいています。 下記について、ご教示いただければ幸いです。 K1セルには、最小で1桁から最大で9桁までの数値が入力されます。 それを A1からI1までに1つづつ表示させたいのです。 例1) K1 に 10105 と入力した場合 A1からD1まではブランク E1に1、F1に0、G1に1、H1に0、I1に5 例2) K1 に 101050235 と入力した場合 A1に1、B1に0、C1に1、D1に0、E1に5、F1に0、G1に2、H1に3、I1に5 なお、同じシートの他のセルには0を入力する場合があるため、「ゼロ値のセルにゼロを表示する」のチェックを外すことはできません。 私なりに考えたのは、K1セルの数値をL1に =TEXT(K1,"000000000")として文字にし、M1から右のセルに =MID($K$1,1,1) というように各桁を抜き出す方法だったのですが、10000 のように丸い数字をK1に入力すると 1 は表示できても 0 がブランクになってしまいます。 いい方法がありましたら、ぜひご教示下さい。 よろしくお願いいたします。

  • 関数で、最大値のあるセルの列を表示したい

    エクセルの関数について教えてください。 セルH1に関数を使って、列A、列C、列E、列Gの最大値を出しました。 その下のH2のセルに、関数を使って、列A、列C、列E、列Fの最大値のある列(A,B,C,Dのいずれか)を表記させたいのですが(下記のように)、可能でしょうか?   A B C D E F G H 1 10 ※ 28 ※ 66 ※ 26 99 2 56 ※ 29 ※ 89 ※ 28 A 3 99 ※ 12 ※ 66 ※ 10 (列Hが上記のようになるようにしたいのです。)

  • セルを空白にしたら「0(ゼロ)」を表記させる方法

    セルを空白にしたら「0(ゼロ)」を表記させる方法の質問です。 「F5~F38」「H5~H38」「J5~J38」「L5~L38」「N5~N38」「P5~P38」「R5~R38」「D6~D38」「E5~E36」「T5~T36」「U5~U38」の範囲のセルに数字や文字を入力します。 上記範囲のセルに入力した数字や文字を消して、空白表示にした場合は自動で「0(ゼロ)」と表記させる方法はあるのでしょうか?

  • 可視セルを関数に組み込むマクロ

    Z列に関数を入力するマクロを組みたいです。 最初に、A-D列のみ表示し、E-Y列はグループ化して非表示にしており、 A、B、C、D、Z 列のみ表示されています。 セルZ1に、A1、B1を引数とする関数を入力します。 次に、グループ化を解除し、E-H列のみ表示し、A-D列、I-Y列をグループ化して非表示にし、 E、F、G、H、Z列のみ表示します。 マクロを実行すると、セルZ1に、E1、F1を引数とする関数が入力されるようにしたいです。 グループ化は4列ずつ行い、画面に表示されるのは常に5列のみで、 Z列には、「表示されている第1列と第2列」のセルを引数とする関数を入力するように したいのです。 Z列から見て、表示されている列が変わっていくため、RC形式のセルの単純な相対表示では あらわせません。 よろしくお願いいたします。

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

専門家に質問してみよう