【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

お世話になります。
来年の1月からお客様の入場数などをエクセルで月報形式にて記録しようと思います。
シート名「2015年1月」に過去12か月の入場者数を月毎に記録する表を作ります。
(あらかじめ過去にさかのぼって12か月分の月報を作るつもりです)。
そのシートの右にシート名「2015年2月」で同様の事をする場合、「2015年1月」にはあった2014年2月分の入場者数は自動的に消え、2014年2月分が記録されていた2014年3月分がスライドし、空欄となった2014年12月分があったところには新たに2015年1月分が自動的に入力されるようにしたいのです。つまり月替わりに最新のシートをコピーするだけで、自動的に上記の事が反映され、将来的に継続さるようにしたいのですが、このような事は可能でしょうか。よろしくお願い致します。

A 回答 (5件)

簡単のため、たとえば2015年2月シートのA1セルに2015年2月と文字列で記入します。

実際には各月の表題として工夫してください。

ご利用のエクセルのバージョンも不明のご相談ですが、簡単のため最近のエクセルを利用していることとします。古いエクセルを使ってる場合は、分析ツールアドインを追加する操作を行ってください。出来ない時は別途ご相談を投稿し、解決してから戻ってきてください。


準備が出来たら、2015年2月シートのA4セルに、たとえば2015年1月シートのA5セルの値を参照してくるには
=INDIRECT(TEXT(EDATE(A1,-1),"yyyy年m月")&"!A5")
のように作成します。
同様に先月の所定のセルを参照する数式を、順次作成し並べて下さい。

A1を「2015年3月」とすれば、数式は自動で2015年2月のやはりA5セルを取ってきます。
シート名を関数でA1セルに表示する事も可能ですが、今回のご相談では必須要件ではありませんので、必要なら別途ご相談なさってみてください。
    • good
    • 0
この回答へのお礼

お陰様で出来ました。感謝感謝です!

お礼日時:2015/01/02 12:12

新しく作るなら、次のとおり、「月ごとにシートを追加」はしない形をお勧めします。

他の方もおっしゃっていますが。

シートは追加しないが、情報を書き換えて、毎月印刷することは可能です。


「あらゆる年月日を含む全データが掲載された、データベースとしての表」を 1 つ作ります。それを元データとして、月報シートに数式により情報を写し取ります。月報シートも 1 枚のみ用意します。毎月シートを追加することは、しません。

月報シート上には、「取引番号、月あるいは日付、氏名などを記入するための 1 つ、2 つくらいのセル」が用意されています。その位置は、印刷範囲の外に置いてあっても問題ありません。そこを上書きしていくと、月報シート上のあちこちに転記されている全てのデータが書き換わるよう、予め数式を仕込んでおくのです。

月を限定して行う集計は、日付のシリアル値の大小比較によって可能です。そのような数式を考え、記入しておきます。


特定の月の月報を保存しておきたい場合は、●月報シートをシートごとコピーしてそこから値複写により数式を除去しておく、● PDF や紙に印刷しておく、などの方法があります。


データベース案と月報シート案をお手元で用意してから、別の質問として新たに投稿されるとよいでしょう。


>入徐者数の推移のみ別に配布するようなやりかたは……

おっしゃっている意味が今一つピンと来ませんが、関係する項目全部を数式で写し取って、月報シートに何もかも表示すれば済みそうですが…?


>VBAで組むしかないのでしょうか。

初級者は何かにつけてすぐに VBA とおっしゃる方が多いのですが、VBA は基本的に、Excel にできることを自動で実行させるだけだと考えてください。つまり、そもそもマウス操作などによる Excel の使い方はよく分かっていないのだが、VBA にすれば魔法のようにできるようになるということはありません。Excel に何をさせればよいのか分からなければ、何もできません。

状況によっては、セルに記入しておく数式をひねり出すより、VBA を使ったほうが遥かに簡単にできるケースもありますが、ご質問の内容では何とも言えませんので、あえてマクロは導入しない回答をすることが多いです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2015/01/02 12:11

NO1です。


伝えたいことがうまく伝わっていない様なのでもう一度

一枚のシート(データのみのシート)に日付と入場者数等をひたすら下方向へデータを入力していきます。

  A  B    C    D
 日付 入場者数 項目1  項目2
15/1/2  10
15/1/3  20
・・・

別のシート(印刷用のシート)のセルに 年と月 を入れると
指定した月の印刷配布用の書式になる様な関数などを考えます。

    A       B    C    D
1  2015      年   1    月
2 
3  日付     入場者数  項目1 項目2
4=date(A1,C1,1) Vlookup関数
5  =A4+1
6  =A5+1
・・・・
と云った感じです。
目的が2枚のシートで済みます。

3枚目のシートはおまけです。データが蓄積されてくると
上司からグラフの作成など依頼されることになるでしょうから。
    • good
    • 0

>そのシートの右にシート名「2015年2月」で同様の事をする場合、「2015年1月」にはあった2014年2月分の入場者数は自動的に消え、2014年2月分が記録されていた2014年3月分がスライドし、空欄となった2014年12月分があったところには新たに2015年1月分が自動的に入力されるようにしたいのです。



「2015年1月」にはあった2014年2月分以下の入場者数はどのセルに入力されているのでしょうか?
またそれらのセルは手入力されているのでしょうか?

確認ですが、シート名は半角数字で入力されているのですね。

そのような条件で、同じブック内のシート名からコピー(参照)したいシートのセルを決めることが可能です。
すなわち、新しいシートのシート名を関数で取得して、INDIRECT関数を使用して他シートのセルを参照すれば、きわめて複雑な数式になりますが、ご希望のデータを表示することができます。
    • good
    • 0
この回答へのお礼

できました!助かりました。感謝です!

お礼日時:2015/01/02 12:12

>将来的に継続さるようにしたいのですが


エクセルの使い方を間違っています。
一枚のシートに日付と入場者数をひたすら下方向へデータを入力していきます。

  A  B
 日付 入場者数
15/1/2  10
15/1/3  20
・・・

別のシートのセルに 年と月 を入れると
指定した月の一覧になる様な関数などを考えます。

或いは、セルに 年を入れると
指定した年の月単位の合計が計算されて一覧になる様なシートを考えます。
これでもシートは3枚ですみます。
グラフなどデータの多数の活用方法が見えてきます。

月ごとにシートが増えていく構成は止めましょう。
必ず、将来において挫折します。

この回答への補足

回答ありがとうございます。
入場者数は、1シートに作成する表の中の1項目に過ぎません。シートは1月毎に印刷して「紙」の資料として配布、掲示する必要がございます。入徐者数の推移のみ別に配布するようなやりかたはよろしくないのでこのような質問を致しました。VBAで組むしかないのでしょうか。関数の知識もそれほどなく困っています。

補足日時:2014/12/30 23:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!