エクセルでシート毎に日付を自動入力する方法(SHEET関数編)

1シートが1日分になっている業務日報などは、最初から日付が一か月分全て入力されていると使う側もいちいち入力しなくていいので便利ですよね。

今回は、一か月分の日付をそれぞれのシートにあわせて自動で入力する方法(SHEET関数利用)を紹介します。

ただし、今回の記事では、エクセル2013から追加されたSHEET関数を使うことを前提としているので、エクセル2013/2016/2019/2021(Office365)が対象となります。

エクセル2010以前のバージョン(2010、2007、2003)を使っている人は、CELL関数を使うもう一つの方法を参考にしてください。

次の記事にCELL関数を使った方法を詳しく書いています。

また、関数を一切使わないシンプルな式だけで日付を自動入力する方法もあります。

シンプルな式だけで日付を自動入力したい場合はこちら(全バージョン共通)

なお、これから紹介するSHEET関数を使った方法は、シート名を固定の名前にする必要はありません。

つまり好きなシート名をつけることができます。

対して、CELL関数を使った方法ではシート名が1~31の固定になります。

目次

SHEET関数を使ってシートごとに日付を自動入力する方法

冒頭でも書きましたが、これから紹介する方法はエクセル2013以降(2013含む)が対象となるので、注意してください。

SHEET関数は、現在のシートが先頭のシートから数えて何番目かを返すので、CELL関数を使うよりも関数式がシンプルになるというメリットがあります。

日付自動入力の前提条件

日付自動入力を使う場合に、事前に次の準備が必要です。

日付自動入力の前提条件
  • 日報のシートを一か月分用意する。(シート名は自由に決められる)
  • 『Sheet1』という名前の固定シートが必要。(開始日付入力用)

SHEET関数を使った自動入力のエクセルのイメージはこのようになります。

日報の全シートに日付が自動で入力できるようにする方法

日付自動入力の手順

では、SHEET関数を使って日付を自動入力する手順です。

まず、日報の開始日を入力します。

固定の『Sheet1』のA1セルに開始日付を入力。(例として2019/5/1を入力)

日報の全シートに日付が自動で入力できるようにする方法

次に、『Sheet1』以外のシートを全て選択します。
まずは適当なシートを選択し、見出しのところで右クリックして『すべてのシートを選択』を選択。

日報の全シートに日付が自動で入力できるようにする方法

『Sheet1』も含めて全シートが選択されているので、今度は『CTRL』を押しながら『Sheet1』シートをクリック。

日報の全シートに日付が自動で入力できるようにする方法

これで、『Sheet1』は選択から外れるので、日報シートだけが選択された状態になります。

次に、日付を自動入力させたいセルでダブルクリックし、関数式が入力できる状態にします。

SHEET関数を使って日付を自動入力させる

続いて、次の関数式を入力します。

=DATE(YEAR(Sheet1!$A$1), MONTH(Sheet1!$A$1), SHEET() - 1)
SHEET関数を使って日付を自動入力させる

複数シートを選択することで、選択しているシート全てに同じ関数が一括で入力されます。

関数式を入力した時にたまに次のようなエラーが出る時がありますが、そのまま『はい』を押してください。問題なく入力されるはずです。

数式の入力でエラー

これで、以下のように全シートに日付が入力されるはずです。

SHEET関数を使って日付を自動入力させる

最初のシートには開始日が入力され、それより以降のシートには正しい日付が自動で入力されます。

日付の自動入力の手順は以上です。

SHEET関数を使った場合の自動入力の注意点

DATE関数は引数で指定されている年、月、日を日付として返す関数です。(正確には日付のシリアル値を返す)

SHEET関数を使った日付自動入力の関数式

そして、SHEET関数は、対象のシートが先頭のシートから何番目のシートなのかを返します。

例えば、5月1日のシートは先頭から2番めなので、このシートでSHEET関数を使うと『2』が返ってきます。

先頭に『Sheet1』シートが余分にあるために、今回はさらに-1をして1番めに調整。

ここまででわかるように、SHEET関数を使った方法はシートの順番がそのまま日付の『日』の部分に使われているのがポイントです。

このため、下のエクセルのようにシートの順番を変えると、シート名と表示されている日付があわなくなるので、シートは移動しないようにしてください。

ブックの保護によりシートの移動ができない

日付+曜日の形式で表示させてみる

日付だけじゃなくて、下のエクセルのように曜日まで表示させたい場合は、セルの書式設定を変更すれば簡単に表示させることができます。

日付に曜日まで表示させる書式変更の方法

しかも、全シートを選択した状態で一発で書式変更できるので、ここでその手順を紹介したいと思います。

まずは、適当なシートを選択し、見出しのところで右クリックして『すべてのシートを選択』を選択します。
(これで、全シートがされます)

日報の全シートに日付が自動で入力できるようにする方法

次に、日付のセル(C3)を選択。

日付に曜日まで表示させる書式変更の方法

これで、全シートが日付のセル(C3)を選択された状態になります。

続いて、『セルの書式設定』ダイアログを表示させるショートカットキー『CTRL』+『1』(テンキーは不可)を押します。
※マウスを使って、右クリックのメニューから『セルの書式設定』を選択してもOK。

セルの書式設定ダイアログを表示するショートカットキー

『表示形式』タブ(①)→『ユーザー定義』(②)→『種類』に以下の定義を追加。

yyyy"年"m"月"d"日("aaa")"
日付に曜日まで表示させる書式変更の方法

書式を変更すると、下のエクセルのようにセルに『####』が表示されることがあります。

これは曜日を追加したことで、曜日込みの日付がセルに入り切らなくなったことを示しているので、次の方法で日付のセル幅を広げてあげます。

C列とD列の間にマウスを置いて、下の画像ような形になったらダブルクリック!

日付に曜日まで表示させる書式変更の方法

すると、以下のように曜日付きの日付が入力されていることが確認できます。

日付に曜日まで表示させる書式変更の方法

日付の形式を変更したい場合は、ユーザー定義で指定できる

日付には西暦や和暦などがあり、和暦だと『令和元年6月30日』のように元年で表示させる形式もあります。

次の記事では、いろんな種類の日付形式を紹介しているので、日付の形式を変更したい場合はぜひ参考にしてください。

シートの移動や自動日付を編集させたくない場合は保護をかける

ここまで、自動で日付が入力できる方法を紹介しました。

でも、このままだと『Sheet1』の開始日付を誤って変更されたりすると、せっかく自動で表示される日付がおかしくなります。

また、シートの移動も正しい日付が表示されない原因となるので、セルやシートを保護してみましょう。

セルやシートの保護については次の記事で詳しく解説しています。ぜひ参考にしてください。

開始日付が変更されないように『Sheet1』シートを隠す

セルやシートの保護ができたら、次は『Sheet1』の開始日付を誤って変更されないように、『Sheet1』のシートを隠してみましょう。

手順は、『Sheet1』を選択し、右クリックメニューから『非表示』を選択するだけです。

開始日付が入力されているシートを隠す

このように、シートの見出しから『Sheet1』がなくなるので、間違っても開始日付が変更されることはありません。

開始日付が入力されているシートを隠す

なお、『Sheet1』を隠しても、各シートの日付はちゃんと表示されます。

隠していたシートを復活させる場合は、適当なシートを選択して、右クリックメニュから『再表示』を選択します。

隠していたシートを再表示させる

ここまでSHEET関数を使った『日付を自動で入力する方法』を紹介しました。

SHEET関数を使うと入力する関数式もシンプルになるので、CELL関数よりは若干メリットがあります。

何度も書きますが、SHEET関数はエクセル2013から追加された関数なのでエクセル2010などでは使えません。

もし、エクセル2010を使っているのであれば、CELL関数を使った自動入力の方法を参考にしてください。

また、関数を一切使わないシンプルな式だけで日付を自動入力する方法もあります。

シンプルな式だけで日付を自動入力したい場合はこちら(全バージョン共通)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次