• ベストアンサー

エクセル 日付の関数を入力する方法

エクセルの関数を使って、以下の表示をするやり方を教えて下さい。 シートを32個用意しています。 (1)エクセルで一つ目のシートのセルに「2009年3月」と入力する ("2009" "年" "3" "月" はそれぞれ別のセルにしています) (2)次のシートに「2009年3月1日」と表示する (3)さらに次のシートに「2009年3月2日」と表示する つまり、最初のシートに「2009」「3」と入力するだけで、 1日から31日まで用意したそれぞれのセルにそれぞれの年月日が 表示されるようにしたいのです。 どなたかエクセルに詳しい方教えて下さい。 宜しくお願い致します。

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

  • ベストアンサー
  • 374649
  • ベストアンサー率38% (203/527)
回答No.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に希望の回数だけすればよいのです。 日付を分散してはいけません、全く違うデータになります。

tomo-cyann
質問者

お礼

ありがとうございます! 出来ましたー!

その他の回答 (3)

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

多分質問者の発想する(下記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ヶ月の日付を出すようには行かない。 だから各シートに各日付(または日数字だけ)を手作業で入れるのと余り変わらない。

tomo-cyann
質問者

お礼

丁寧な説明をしていただき、理解できました。 エクセルでVBAのプログラムを組めるようになると すごく便利なんですね。 本当にありがとうございました。

回答No.2

#1です。 具体的なシート名もセル番地も書かれていないので、これ以上の説明はなかなか難しいです。 が、少しだけ書き方を変えて書いてみます。 2枚目以降のシートで年月日を表示したいセルに =DATE(年,月,日) という数式を書きます。 年のところは、最初のシートの年が入力されているセルを指定します。 月のところは、最初のシートの月が入力されているセルを指定します。 日のところは、そのシートに対応する日付(2枚目のシートなら1になるのかな?)を指定します。 とりあえず、ここまでやってみてください。 「表示形式」については調べればすぐ分かります。 「日付シリアル値」についても調べればいくらでもヒットします。 ↑分からない単語が出てきたら「それ何?」と聞いたり、「分からないからわかりやすく」とか言う前に、一度調べてみた方が良いです。じゃないといつまでたってもスキルが上達しません。

tomo-cyann
質問者

お礼

すぐに回答をいただき、感謝しています。 これからもっとエクセルの勉強しなきゃなと反省しました。 本当にありがとうございました。

回答No.1

入力は別々のセルだけど、表示は1つのセルにしたいという解釈で。 =DATE(年,月,日) でその日付を表すシリアル値が返ってくるので、 それぞれ、最初のシートの年が入力されているセル、月が入力されているセル、1~31(シートに応じて)を指定すれば、良いのでは? あとは表示形式で日付の表示をスラッシュ区切りではなく年月日表示にするだけ。 ちなみに月に応じて日数が変わることについてどのように処理するか明示されていないので書きませんが、必要なら補足してください。

tomo-cyann
質問者

補足

表示は一つのセルにしたいという解釈でお願いします。 すみません、初心者のため、 「シリアル値が返ってくるので」以降のやり方が全く 分かりません。 (T_T) もう少し詳細なやり方を教えていただけるでしょうか。 また、月に応じて日数が変わることについてですが、 2009年3月のエクセルをコピーして2009年4月のエクセルを 作って、31日のシートは使わないようにすればいいかなと 思っています。 シート0 に1ヶ月の売上集計をさせる シート1~シート31 に日々の売上を入力 原則としては、提出書類として、シート0 の1ヶ月の 集計表だけが必要です。 ただし、日々の売上表も提出する必要がたまにあります。 説明が下手ですみません。 どうぞ宜しくお願い致します。

関連するQ&A

  • エクセルの関数について

    いつもお世話になります。 エクセルの関数について教えてください。 【やりたいこと】 ・1つのエクセル内に複数のシートを用います。 ・「シート1」に「指定日」を入力します。 ・「シート2」以降、各シートで用意されている3つのセルに、 「その月の期首」「その月の期末」「期首から期末までの日数」を反映させたいのです。 「指定日」の翌日から起算して56日目に達するまでです。 指定日のみ西暦で入力、反映は和暦です。 【例(1)】 ・「シート1」に指定日として「20160629」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280630」「280630」「1」と出ること。 ・「シート3」に用意されている3つのセルに「280701」「280731」「31」と出ること。 ・「シート4」に用意されている3つのセルに「280801」「280824」「24」と出ること。 【例(2)】うるう年を考慮。 ・「シート1」に指定日として「20160131」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280201」「280229」「29」と出ること。 ・「シート3」に用意されている3つのセルに「280301」「280327」「27」と出ること。 よろしくお願いします。

  • excelで期間内の年齢を表示する関数を教えてください。

    excelで期間内の年齢を表示する関数を教えてください。 例えていうと、生年月日を入力すると、2008年4月1日~2009年3月31日の期間に何歳かをセルに表示するようにしたいんです。 アドバイスよろしくお願い致します。

  • エクセルについて

    エクセルで、生年月日を一つのセルに入力してあるデーターを年、月、日の3つに分けるにはどの関数を使えばいいのですか? 2006 1 1 と一つのセルに入力してあるので、セルの書式によって2000年1月1日と表示されています。 これを 年    月    日 2006   1     1 という風に一つずつのセルに分解したいです。分解できる関数などはありますか? すいませんが、何かいい方法を教えてください。

  • エクセル関数で、入力した日付から、○ヶ月または○年後の日にちを求めたい。

    あるセルに日付を入力して、 (1)その日から1ヵ月後の日付を求める (2)誕生日から30歳になる年月日を求める はきっと同じ種類の関数だと思うのですが、どのように求めたらよいでしょうか? また、 (1)の場合で、 (1)-1 1月の後半の日付を入力した場合⇒正確に1ヵ月後を求める (1)-2 1月の前半の日付を入力した場合⇒翌月の1日の日を表示したい なんてことは可能なのでしょうか・・・・・ よろしくお願いいたします。

  • Excelの関数を教えてください

    Excelで、あるセルに2011/12/21というように西暦、月、日と入力し、違うシートのセルに一つずつに23 12 21というように、和暦、月、日と表示させたいのですが何か良い関数及び表示形式はないでしょうか? 教えてください。

  • エクセルと日付の関数

    エクセルと日付の関数 エクセル2007で以下のような表を作成しています。 処理日(現在の日付)が例えば3月2日であるとき、以下の表のA2セルに 3月の前月、つまり2月の日付を入力する関数はあるのでしょうか。 初心者で申し訳ありませんが、よろしくお願いします。

  • エクセル関数 日付によって表示変更

    エクセル関数 日付によって表示変更 A1のセルに日付を入力する場合1日から15日まではB、15日以降はCとA2のセルに表示するためにはどうすればよいでしょうか? もちろん月は変更します。 宜しくお願いいたします。

  • エクセル2002関数について

    いろいろ調べたのですが、どうしてもわかりません。どなたかよろしくお願いします。 たとえばA1のセルに平成14年3月1日と入力し、B1のセルに60日後の日付を表示したいのですが、どうすればよいでしょうか。 AccessではDateAddの関数を使用したのですが、エクセルではエラーになります。よろしくお願いいたします。

  • エクセルで生年月日を入力すると

    エクセルで生年月日を入力したいんですが、 昭和57年1月1日 と入力したいんですが、 57/1/1と入力すると、 「1957年1月1日」と表示されてしまいます。 セルの書式設定→「日付」→「平成○年○月○日」と設定をすると、 「昭和32年1月1日」と表示されてしまいます。 *昭和で入力する方法はありませんか? もしできないのであれば、「57/1/1」と表示させるには、どうしたらいいか、教えて下さい。

  • EXCELの日付入力で・・・

    A1セルに「050602」と入力すると B1セルに「05」(年) C1セルに「06」(月) D1セルに「02」(日) を返してくれる関数の入力方法を教えてください!! また、A1セルに「050602」と入力すると A1セルが「2005/6/2」という表示になる関数はあるでしょうか??

専門家に質問してみよう