dポイントプレゼントキャンペーン実施中!

エクセルの関数を使って、以下の表示をするやり方を教えて下さい。

シートを32個用意しています。

(1)エクセルで一つ目のシートのセルに「2009年3月」と入力する
("2009" "年" "3" "月" はそれぞれ別のセルにしています)

(2)次のシートに「2009年3月1日」と表示する

(3)さらに次のシートに「2009年3月2日」と表示する

つまり、最初のシートに「2009」「3」と入力するだけで、
1日から31日まで用意したそれぞれのセルにそれぞれの年月日が
表示されるようにしたいのです。

どなたかエクセルに詳しい方教えて下さい。
宜しくお願い致します。

A 回答 (4件)

日付のシリアル値というのは時間(0<数値)、日付(数値>0)と認識してください、つまり前の日付に(+1)をすれば次の日付になります。

Sheet1のA1に2009/2/9と入力したらA1をコピーしてSheet2のA1にペーストします。
Sheet2のA1に2009/2/9と表示されますが中身は(=Sheet1!A1)となっているので(=Sheet1!A1+1)というふうに1を+すれば2009/2/10となります。
この作業を希望のSheetに希望の回数だけすればよいのです。

日付を分散してはいけません、全く違うデータになります。
    • good
    • 0
この回答へのお礼

ありがとうございます!

出来ましたー!

お礼日時:2009/02/09 13:19

多分質問者の発想する(下記1)ほど、エクセルは便利に出来ていません。


それに>("2009" "年" "3" "月" はそれぞれ別のセルにしています、というのも、エクセルの経験の少なさをうかがわせる。(下記2)
ーー
(1)式の複写か何かでうまく行くと想像してないですか。
または操作で何とかなると思ってませんか。
後者はありません。
何かというと、エクセルはシートが別だと連続データの作成が、式複写などで旨く行かない。
ですから2番目のシートは、
Sheet1のA1が2009、C1が3として
=DATE(Sheet1!A1,Sheet1!C1,1)
という面倒な式を入れることになる。
結果 2009/3/1
ーーー
(2)エクセルは日付は基本的に、1セルに2009/3/1のように入力すべきです。そうすると日付シリアル値(何のことか判りますか。得クセッルでは、この勉強が何より肝心)になる。
Aそうすると関数が使える
B日付の様々な表示形式が使える
などのメリットが生きてくる。
2009/3/1と入れても、表示形式をyyyy"年"m"月"とすれは、2009年3
月と表示できますよ。
(3)連続日付の作製
後は>3)さらに次のシートに「2009年3月2日」と表示する、は
=Sheet2!A1+1
のように人手で入れていくしかない。
シート名の入力やシートの順序に気を使わないといけなくて、不便だ。
(4)この課題はVBAのプログラムを組めると簡単に実現する。
Sub test01()
For i = 1 To 7
Sheets(i).Range("A1") = DateSerial(2009, 3, i)
Next i
End Sub
これはシートタブが見えている順(シート名順ではない)に、それらのA1セルに、1,2,3日・・を入れていく。
また
Function shn()
shn = ActiveSheet.Index
End Function
とシート番号を返す関数を定義して
=DATE(2009,3,shn())
と入れて、各シートのA1に複写(手作業で30箇所)しても出来る。
ーー
エクセルでシートを分けるということは、かくも面倒になることが有るということを知るべし。
1シートの、A列に順に1ヶ月の日付を出すようには行かない。
だから各シートに各日付(または日数字だけ)を手作業で入れるのと余り変わらない。
    • good
    • 0
この回答へのお礼

丁寧な説明をしていただき、理解できました。

エクセルでVBAのプログラムを組めるようになると
すごく便利なんですね。

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

お礼日時:2009/02/09 13:25

#1です。


具体的なシート名もセル番地も書かれていないので、これ以上の説明はなかなか難しいです。

が、少しだけ書き方を変えて書いてみます。

2枚目以降のシートで年月日を表示したいセルに
=DATE(年,月,日)
という数式を書きます。

年のところは、最初のシートの年が入力されているセルを指定します。
月のところは、最初のシートの月が入力されているセルを指定します。
日のところは、そのシートに対応する日付(2枚目のシートなら1になるのかな?)を指定します。

とりあえず、ここまでやってみてください。


「表示形式」については調べればすぐ分かります。
「日付シリアル値」についても調べればいくらでもヒットします。
↑分からない単語が出てきたら「それ何?」と聞いたり、「分からないからわかりやすく」とか言う前に、一度調べてみた方が良いです。じゃないといつまでたってもスキルが上達しません。
    • good
    • 0
この回答へのお礼

すぐに回答をいただき、感謝しています。

これからもっとエクセルの勉強しなきゃなと反省しました。

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

お礼日時:2009/02/09 13:29

入力は別々のセルだけど、表示は1つのセルにしたいという解釈で。


=DATE(年,月,日)
でその日付を表すシリアル値が返ってくるので、
それぞれ、最初のシートの年が入力されているセル、月が入力されているセル、1~31(シートに応じて)を指定すれば、良いのでは?
あとは表示形式で日付の表示をスラッシュ区切りではなく年月日表示にするだけ。

ちなみに月に応じて日数が変わることについてどのように処理するか明示されていないので書きませんが、必要なら補足してください。

この回答への補足

表示は一つのセルにしたいという解釈でお願いします。

すみません、初心者のため、
「シリアル値が返ってくるので」以降のやり方が全く
分かりません。
(T_T)

もう少し詳細なやり方を教えていただけるでしょうか。

また、月に応じて日数が変わることについてですが、
2009年3月のエクセルをコピーして2009年4月のエクセルを
作って、31日のシートは使わないようにすればいいかなと
思っています。

シート0 に1ヶ月の売上集計をさせる
シート1~シート31 に日々の売上を入力
原則としては、提出書類として、シート0 の1ヶ月の
集計表だけが必要です。

ただし、日々の売上表も提出する必要がたまにあります。

説明が下手ですみません。

どうぞ宜しくお願い致します。

補足日時:2009/02/09 02:57
    • good
    • 0

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