こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelでシートに年月を自動で変更するやり方

調べて似たような質問もあったのですが、希望の内容のがなかったので質問させて下さい。

Excel2010を使用しています。

Excelでシート毎に月の請求書(今年の4月~来年の3月分)を作成しています。
1年(12ヶ月分)まとめて請求する為、シート1に平成25年4月と入力したら
シート2(平成25年5月の分)~シート12(平成26年3月の分)まで『年、月』の変更を自動できる方法はありませんでしょうか?
日付は必要ないのでユーザー定義で日付を表示しないようにシート1で設定しました。

自分なりに調べてシート2の平成25年5月にする分は
=DATE(YEAR(シート1の平成25年4月の場所),MONTH(シート1の平成25年4月の場所)+2,)
にすればシート2は平成25年5月と変更できましたが、
シート3以降もやりたいのですがこのやり方ですとシート毎に
MONTHの数字を+2から+3、+4、+5、・・・・と入力を変更していかないといけないので手間がかかります。

全シートを複数選択して一度にMONTHの数値を増やして設定する方法はありませんでしょうか?
又はもっと別のわかりやすい方法などがございましたらお教え頂ければ有難いです。

ちなみにシート名は○月と登録しています。

今回の分は手打ちで入力しましたので急ぎではないです。
暇なときにでも教えて頂ければと思います。

会社で使用している為、帰宅後Excelを使用できませんので返信など遅れる場合がございます。

投稿日時 - 2013-04-15 17:11:38

QNo.8044268

暇なときに回答ください

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

例えば各シートのA1セルにお望みの表示をさせるとしたら初めにシート見出しで4月~3月までをShiftまたはCtrlキーを押しながらクリックします。これで同じ作業グループが構成されます。
A1セルには次の式を入力します。

=IF(AND(SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月","")*1>=4,SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月","")*1<=12),DATE(2013,SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月",""),1),DATE(2014,SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月",""),1))

その後にA1セルを右クリックして「セルの書式設定」の「表示形式」の「ユーザー定義」で種類の窓には ggge"年"m"月" を入力してOKします。
その後にシート見出しで右クリックし「作業グループ解除」を選択します。

投稿日時 - 2013-04-16 09:48:43

お礼

A1セルを本来自分で表示させたいセルの数字に置き換えてやったら出来ました!
26年1月~3月もちゃんと25年から26年に変わっていました!
今後の仕事に活躍させたいと思います!
有難うございましたm(_ _)m

投稿日時 - 2013-04-16 12:04:08

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

+2から+12した方がはるかに簡単ですが。


>Excel2010を使用しています。

シート2のA1に
=EDATE(Sheet1!A1,1)
シート3のA1に
=EDATE(Sheet1!A1,2)
 :


まぁどーしてもでしたら
Sheet1のA1に年/月/日を記入(書式は随意)しておき、Sheet2からSheet12までのA1に
=EDATE(Sheet1!A1,SUBSTITUTE(RIGHT(CELL("filename",A1),2),"t","")-1)
のように記入しておきます。

かならずブックは事前に一回保存しておかなければいけません。

投稿日時 - 2013-04-15 21:55:41

お礼

複数の場所に同じ方法で書類を作っているので・・・
できれば1シートを変えただけで全部一気に変わってくれると、
今後の仕事も早くできるかなと思ったので(;_;)
2つ目のやり方ですと#VALUE!と出てしまい・・・
わかりませんでした(>ェ<;)

投稿日時 - 2013-04-16 12:00:19

 すみません、お間抜けの#2です。

 私はシート名を1~12にしたんですが、愚かにも関数ではSheet1を指定してました。最初のシートをSheet1(もしくはお持ちのブックの最初のシート名)にしておけば大丈夫です。

 もし最初のシートのシート名を「1」にするなら、関数は以下のようにすればできました。

=DATE(YEAR(1!$A$1),RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2),DAY(1!$A$1))

 この関数は、

1.新規ブックなら必ずいったん保存して開き直すこと、
2.関数入力時に関連づけるブックを聞いて来るので、間違いなく編集中のブックを選択すること、
3.さらに関連づけるシートを聞いて来るので、間違いなく最初のシートを選択すること、

が大事です(フリーのOfficeは、……まあいいかorz)。

投稿日時 - 2013-04-15 18:40:52

 一気に設定する方法ですが、シート名に制限を加えれば、できなくはないようです。ブックごとに仰る方法とどちらがいいか、非常に迷うような気もします。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1020567345

 上記でシート名を1~12にし、

>=DATE(YEAR(Sheet1!$A$1),MONTH(Sheet1!$A$1),RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2))

という関数を、

=DATE(YEAR(Sheet1!$A$1),RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2),DAY(Sheet1!$A$1))

にすればできそうなんですが、こちらではちょっと上手く行っていません(どうしても1900年になってしまう)。

 なお、私はMSのはOffice2000しか持っておらず、以降はフリーのOpen OfficeかLibroOfficeを使っていますが、フリーの方では全く上記関数は使えず、エラーになってますorz。

 もう少し、Excel2000で粘ってみようかと思いますが、質問者様の方ではすんなり動くかもしれないと思い、とりあえずご報告だけいたしておきます。

投稿日時 - 2013-04-15 18:28:31

お礼

このやり方がいまいちわかっていませんでした・・・
もう一度やり直してみたら出来ました!
けれど、今年の4月~来年の3月まで順番なので、このやり方ですと26年の1月~3月と出したいのですが25年のままでした。
このやり方も覚えたので今後の参考にさせていただきます!

投稿日時 - 2013-04-16 11:55:40

ANo.1

>全シートを複数選択して一度にMONTHの数値を増やして設定する方法はありませんでしょうか?
ないこともないですが、12枚でしたら
>MONTHの数字を+2から+3、+4、+5、・・・・と入力を変更していかないといけないので手間がかかります。
のほうが分かりやすいし、一度設定すればその後の設定の必要がないのではないでしょうか?

>=DATE(YEAR(シート1の平成25年4月の場所),MONTH(シート1の平成25年4月の場所)+2,)
月末でなくてよいなら
=("平成25年"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)&"1日")*1
とすることは可能ですが、わかりにくくないですか?

投稿日時 - 2013-04-15 18:01:58

お礼

このようなやり方もあるんですね!
でもこのやり方ですと来年また作る時に、コピーして貼付けしないとですよね?
来年もまた作るので25年を26年に1シートで変えるだけで全部変わる方法が良かったですが、この方法もメモして今後の参考にさせていただいきます。
ありがとうございました!

投稿日時 - 2013-04-16 11:36:04

あなたにオススメの質問