目次
このチュートリアルでは、新しい SEQUENCE 関数を活用して、Excel で日付のリストをすばやく生成し、オートフィル機能を使って列に日付、勤務日、月、年を記入する方法をご紹介しています。
これまで、Excelで日付を生成する方法は、オートフィル機能だけでした。 新しい動的配列SEQUENCE関数の導入により、数式で連続した日付を作ることも可能になりました。 このチュートリアルでは、両方の方法を詳しく見て、あなたに最適な方法を選択できるようにします。
Excelで日付系列を埋める方法
Excelで日付の列を埋める必要がある場合、最も速い方法はオートフィル機能を使用することです。
Excelで日付系列のオートフィルを行う
列や行に1日単位で日付を記入することは、とても簡単です。
- 最初のセルに最初の日付を入力します。
- 最初の日付のあるセルを選択し、フィルハンドル(右下の小さな緑色の四角)を下または右にドラッグします。
Excelは、手動で入力した最初の日付と同じ書式の一連の日付をすぐに生成します。
平日、月、年の列を埋める
勤務日、月、年のシリーズを作成するには、次のいずれかを行います。
- 上記のように、日付の連番で列を埋める。 その後、[2] をクリックする。 オートフィルオプション ボタンを押し、希望のオプションを選びます。 充填月数 :
- また、最初の日付を入力し、塗りつぶしハンドルを右クリックしたまま、必要な数だけセル内をドラッグすることもできます。 マウスボタンを離すと、コンテキストメニューが表示され、必要なオプションを選択することができます。 充填年数 私たちの場合
N日単位で増加する一連の日付を記入する。
で日、平日、月、年の連続を自動生成するには、次のようにします。 特定措置 ということです。
- 最初のセルに最初の日付を入力します。
- そのセルを選択し、塗りつぶしハンドルを右クリックして、必要な数だけセル内をドラッグして離します。
- ポップアップメニューで シリーズ (最後の項目)です。
- での シリーズ ダイアログボックスで 日付単位 を設定します。 ステップ値 .
- OKをクリックします。
その他の例については、Excelで日付を挿入してオートフィルする方法をご覧ください。
エクセルで日付の並びを数式で作る方法
以前のチュートリアルで、新しい動的配列SEQUENCE関数を使って数列を生成する方法を紹介しました。 Excelの内部では日付は連番で保存されているので、この関数は簡単に日付連番も生成できます。 必要なのは、以下の例で説明するように引数を正しく設定することだけです。
注意:ここで説明するすべての数式は、動的配列をサポートするExcel 365の最新バージョンでのみ機能します。 動的配列以前のExcel 2019、Excel 2016、Excel 2013では、このチュートリアルの最初の部分で示したように、オートフィル機能を使用してください。
エクセルで日付の羅列を作成する
Excelで日付の並びを生成するには、SEQUENCE関数の引数を以下のように設定します。
SEQUENCE(rows, [columns], [start], [step])- 列 - 日付で埋め尽くす行の数。
- コラム - 日付で埋め尽くす列の数。
- スタート - は、「2020年8月1日」や「2020年8月1日」のように、Excelが理解できる形式で開始日を指定します。 間違いを防ぐために、DATE(2020, 8, 1) のように、DATE関数を使って日付を指定することもできます。
- ステップ - 連続する各日付の増分値。
例えば、2020年8月1日から始まり、1日ずつ増えていく10の日付のリストを作るには、次のような式になります。
=sequence(10, 1, "8/1/2020", 1)
または
=sequence(10, 1, date(2020, 8, 1), 1)
あるいは、日付の数(B1)、開始日(B2)、ステップ(B3)をあらかじめ定義されたセルに入力し、数式でそれらのセルを参照することもできます。 今回はリストを生成しているので、列番号(1)はハードコーディングされています。
=sequence(b1, 1, b2, b3)
一番上のセル(ここではA6)に以下の数式を入力し、Enterキーを押すと、指定した行数、列数で自動的に結果が横展開されます。
注)デフォルトでは 一般 正しく表示させるためには、流出範囲内のすべてのセルに日付形式を適用してください。
エクセルで連続した勤務日を作る
営業日のみのシリーズを取得するには、WORKDAY または WORKDAY.INTL 関数で SEQUENCE をこのようにラップします。
WORKDAY( 開始日 -1, SEQUENCE( 日数 ))WORKDAY関数は、開始日に第2引数で指定した日数を加算するので、そこから1を引いて、開始日そのものを結果に含ませています。
例えば、B2の日付から始まる勤務日の並びを生成する場合、数式は次のようになる。
=workday(b2-1, sequence(b1))
ここで、B1 は配列サイズである。
ヒントと注意点
- 開始日が土曜日または日曜日の場合、シリーズは翌営業日に開始されます。
- ExcelのWORKDAY関数は、土曜日と日曜日が週末であると仮定しています。 カスタムの週末や休日を設定するには、代わりにWORKDAY.INTL関数を使用してください。
Excelで月の並びを生成する
1ヶ月ずつ増加する日付のシリーズを作成するには、この一般的な数式を使用します。
日付( 年 , sequence(12), 日 )この場合、第1引数に対象となる年、第3引数に日を指定し、第2引数にSEQUENCE関数で1から12までの連番を返す。 以上のパラメータをもとに、DATE関数は以下のスクリーンショット左部のような日付列を生成する。
=date(2020, sequence(12), 1)
のみを表示する場合 月名 の場合、流出範囲に以下のカスタム日付フォーマットのいずれかを設定します。
- mmm - のような短い形式です。 ヤン , 2月 , マー など。
- のようなフルフォームです。 1月 , 2月 , 3月 など。
その結果、セルには月の名前だけが表示されますが、基本的な値は完全な日付のままです。 下のスクリーンショットの両方のシリーズで、Excelの数字と日付によくあるデフォルトの右揃えに注目してください。
1ヶ月ずつ増加する日付シーケンスを生成するには 日付けが決まっている の場合、EDATEと一緒にSEQUENCE機能を使用します。
EDATE( 開始日 , sequence(12, 1, 0))EDATE関数は、開始日から指定した月数だけ前または後の日付を返します。 SEQUENCE関数は、12個の数値(または指定した数だけ)の配列を生成し、EDATEを1ヶ月単位で進めるようにします。 なお、この関数で使用される 立ち上がり 引数を 0 に設定すると、開始日が結果に含まれるようになります。
B1に開始日を入れると、計算式はこのような形になる。
=edate(b1, sequence(12, 1, 0))
注:計算式を完成させた後、結果を正しく表示するために、適切な日付形式を適用することを忘れないでください。
Excelで年号の並びを作成する
年単位で増加する一連の日付を作るには、この一般的な数式を使用します。
DATE(SEQUENCE()の場合 n , 1, YEAR( 開始日 )), MONTH( 開始日 ), DAY( 開始日 ))どこ n は、生成したい日付の数です。
この場合、DATE(年、月、日)関数はこのように日付を構成する。
- 年 を生成するように構成された SEQUENCE 関数から返されます。 n の年号から始まる1行×1列の数値配列。 開始日 .
- 月 と 日 の値は、開始日から直接取得されます。
例えば、B1に開始日を入力した場合、以下の計算式で1年刻みで10回分の日付が出力されます。
=date(sequence(10, 1, year(b1)), month(b1), day(b1))
日付としてフォーマットされた後、結果は以下のようになります。
エクセルで回数表を作成する
Excelでは時刻は1日の端数を表す小数で保存されるため、SEQUENCE関数は時刻を直接操作することができます。
開始時刻をB1とすると、以下のいずれかの計算式で10回分のシリーズを作成することができます。 違いは、以下の部分のみです。 ステップ 1 日は 24 時間なので、1 時間単位は 1/24 で、30 分単位は 1/48 で、といった具合に刻みます。
30分間隔。
=sequence(10, 1, b1, 1/48)
1時間間隔。
=sequence(10, 1, b1, 1/24)
2時間間隔。
=sequence(10, 1, b1, 1/12)
下のスクリーンショットはその結果です。
ステップを手動で計算するのが面倒な場合は、TIME機能を使って定義することができます。
SEQUENCE(行、列、開始、TIME()) 時 , 微細 , 第二 ))この例では、以下のスクリーンショットのように、すべての変数を別々のセルに入力します。 そして、以下の式を使用して、セルE2(時間)、E3(分)、E4(秒)に指定した任意の増分ステップサイズの時系列を生成することができます。
=sequence(b2, b3, b4, time(e2, e3, e4))
エクセルで月間カレンダーを作成する方法
この最後の例では、SEQUENCE関数とDATEVALUE、WEEKDAYを組み合わせて、指定した年と月に基づいて自動的に更新される月間カレンダーを作成することにします。
A5の計算式は以下の通りです。
=SEQUENCE(6, 7, DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)))+1, 1)
この処方の仕組み
SEQUENCE関数を使用して、6行(1ヶ月の最大週数)×7列(1週間の日数)の、1日ずつ増加する日付の配列を生成します。 したがって、この配列は 漕ぎ手 , コラムス と ステップ は、何の疑問も抱かせない。
で一番厄介なのは 立ち上がり 引数で指定した曜日が分からないため、対象月の1日からカレンダーを開始することはできません。 そこで、次の計算式で指定した月と年の1日前の最初の日曜日を求めます。
DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1")
最初のDATEVALUE関数は、Excelの内部システムで、B2に月の1日、B1に年を表す通し番号を返します。 この場合、2020年8月1日に対応する44044です。 この時点で、私たちは
44044 - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1)
WEEKDAY関数は、対象月の1日に対応する曜日を1(日曜日)~7(土曜日)の数値で返します。 今回の場合、2020年8月1日は土曜日なので7です。 そして、計算式は以下のようになります。
44044 - 7 + 1
44044 - 7 は 4403 で、2020 年 7 月 25 日(土)に相当する。 日曜日が必要なので、+1 の補正を加える。
こうすると、4404で始まるシリアル番号の配列を出力する簡単な式が得られる。
=sequence(6, 7, 4404, 1)
結果を日付でフォーマットすると、上のスクリーンショットのようなカレンダーが表示されます。 例えば、以下の日付フォーマットのいずれかを使用することができます。
- ドムドム のように、日付を表示するようにします。 1-Aug-20
- うーん のように、月と日を表示します。 8月20日
- d をクリックすると、その日だけが表示されます。
でも、せっかく月別のカレンダーを作ったのに、前月や来月の日付が表示されてしまうのはなぜでしょう? そんなときは、以下の数式で条件付き書式ルールを設定し、その条件付き書式ルールで表示される日付に 白色フォント の色になります。
=MONTH(A5)MONTH(DATEVALUE($B$2 & "1")))
A5はカレンダーの一番左のセル、B2は対象月です。
詳しい手順については、「Excelで数式ベースの条件付き書式ルールを作成する方法」をご覧ください。
以上、エクセルで日付の並びを生成する方法でした。 読んでくださってありがとうございました!来週のブログでお会いできるのを楽しみにしています。
練習用ワークブック(ダウンロード
Excelでの日付の並び - 数式の例 (.xlsx ファイル)