この記事では、Excelで動的に変化するカレンダーを作成する方法を紹介します。
ワークブックのダウンロード
変数の設定
最初のステップは、数式で使用される変数を作成することです。 これらの変数は、カレンダーカレンダーが自動的に更新できるように、現在の日の情報を提供する必要があります。 変数のリストは次のとおりです:
- 現在の日付
- 現在の日の数
- 現在の月の数
- 現在の年
- 現在の月の初日の日付
- 現在の曜日の数
- 現在の曜日の数
- 現在の日の数
- 現在の日の数
- 現在の日の数
- 現在の日の数
- 現在の日の数
- 現在の日の数
- 現在の日の数
today、day、month、year、date、weekday、weeknum関数を使用します。 簡単に言えば、TODAY関数は現在のday、DAY、MONTH、YEAR、WEEKDAYおよびWEEKNUM関数の日付を返しますが、それぞれの日付値を解析します。 DATE関数は、指定された年、月、日の日付値を返します。
次のスクリーンショットでは、2020年11月20日に生成された名前と数式を見ることができます。
数式を作成するときに作業を容易にするために、各変数に名前を付けました。 Excelで予定表を作成する次の手順は、予定表インターフェイスのアウトラインを作成することです。
Excelのカレンダーの概要
月の日を生成する実際の数式を作成する前に、まず数式の作成に役立つアウトラインを配置し、視覚的な参照を提供する必
日は7列6行のテーブルに配置されます。 タイトルとヘルパーセルについても、これらの数を2ずつ増やす必要があります。 列と行のタイトルには、列の曜日と行ごとの週番号が含まれますが、ヘルパーセルは1から始まる連続した数字になります。
カレンダーは以下のようになります。
あなたが好きなように枠線や背景色を使用してください。 重要な点は、タイトルに動的な週番号を使用することです。 最初の週にWEEKNUM関数を参照し、連続する週ごとに1を追加します。
F | |
4 | =WeekNumber |
5 | =F4+1 |
6 | =F5+1 |
7 | =F6+1 |
8 | =F7+1 |
9 | =F8+1 |
日の数字を入力して、Excelでカレンダーを作成し続けましょう。
生成日
同様のレイアウトを使用していて、式の詳細について心配したくない場合は、以下の式をコピーして自由に感じてください。 次に、カレンダーの日領域の左上のセルに貼り付け、残りのセルに入力します。 G2セルとE4セルは、ヘルパー列の最初のセルを参照します。 したがって、最初のセルがG4でない限り、これらの参照を調整する必要がある場合があります。
さて、式を詳しく見てみましょう。 最初に、式は、指定された年、月、日の日付を返すDATE関数を使用します。 最初の2つの引数は、すでに計算されている変数YearNumberとMonthNumberによって提供されます。
数式の日の部分は、週に7日があるため、7基数で日の数字を生成することを目的としています。 7*(E E4-1)数式の一部ヘルパー列Eの週番号をチェックし、0から始まり、毎回7ずつ増加するベースを生成します。
週 | ベース |
1 | 0 |
2 | 7 |
3 | 14 |
4 | 21 |
5 | 28 |
6 | 35 |
この数は、月の最初の日の曜日とその日の週番号の差と同じくらい増減することができます。 言い換えれば、私たちはアンカーポイントとして現在の月の最初の日を取得しています。 たとえば、2020年11月1日の週の7日目(月曜日から日曜日の基準)です。
カレンダーの週が月曜日が週の最初の日であると仮定している場合、月曜日は月の最初の日の6日前(=1-7)にする必要があります。 したがって、以下のような数字が得られます。
月 | 火 | 水 | 木 | 金 | 土 | 日 |
-6 | -5 | -4 | -3 | -2 | -1 | 0 |
数値をシフトするには、これらの値を1に追加します。 したがって、次の例のように、日曜日が最初の日になることができます。
月 | 火 | 水 | 木 | 金 | 土 | 日 |
-5 | -4 | -3 | -2 | -1 | 0 | 1 |
その結果、2次元に対して2つの配列があります。 テーブルを作成するには、両方の配列を一緒に追加する必要があります。
これらの数字は、現在の月の日を表しています。 1より小さいまたは31より大きい数字がありますが、これは明らかに月の日にすることはできません。
DATE関数は、前の月または次の月の日付を生成することによって、これらのタイプの数値を処理します。 たとえば、-2は、指定された月の最初の日の2日前になります。
最後に、これらの数値をDATE関数で使用すると、現在の月の実際の日付を取得できます。
フォーマット
日の数字
さて、日を入力しましょう。 実際の値を変更せずに、値の書式を変更できます。 この機能は数値の書式設定と呼ばれます。 日付のみを表示するように数値の書式を調整する手順に従います。
- 日領域の日付を選択します
- Ctrl+1を押してセルの書式設定ダイアログを開きます
- 数字タブがまだ開いていない場合は有効にします
- カテゴリリストでカスタムを選択します
- 文字dをタイプボックスに入力します
- OKをクリックして保存します
これで、カレンダーレイアウトが完了しました。
一桁の日付のパディングを削除する場合は、単一のdの代わりにddを使用できます。 数値の書式設定の詳細については、Excelでの数値の書式設定-知っておく必要があるすべて
現在の日の強調表示
最後に、条件付き書式を使用して、現在の月にない日に異なる色を設定し、現在の日を強調表示します。
これらの条件付き書式設定オプションを追加するには;
- 日の範囲を選択
- リボンのホームタブの下にある条件付き書式アイコンをクリックします
- 新しいルールを選択します
- 数式を使用して書式設定するセルを決定するを選択します
- 現在の日を強調表示するためのルールを定義する数式を入力します
=G4=TODAY()
G4:範囲の左上のセルには日が含まれています。 相対参照を使用します($は使用しないでください)。 - セルの書式設定ダイアログのプレビューウィンドウの書式設定ボタンをクリックします
- ダイアログで、現在のセルに表示する書式設定オプションを選択します
この例ではオレンジ色の背景を使用しました。 - OKをクリックしてExcelで
- プレビューボックスに設定が表示されます
- OKをクリックして条件付き書式を適用します
これはどのように見えるかです:Excelの
数式はブール値を返します。 セル値(G4)が、現在の日を日付形式で返すTODAY関数の結果と等しい場合、数式はTRUEを返します。 それ以外の場合はFALSEです。 結果がTRUEの場合、Excelはセルに書式設定を適用します。
ここには2つの重要なポイントがあります:
- Excelで範囲に沿って参照を設定したくない場合を除き、g4などの相対参照を使用する必要があります。 数式を他の場所にコピーすると、数式がどのように変化するかを検討します。 Excelは条件付き書式設定の数式にも同じことを適用します。 詳細については、以下を参照してください: Excelの絶対参照と相対参照を作成する方法
- 日のセルは、実際の日付値を返す必要があります。 これが、日の部分を表示するために数値書式を使用している理由です。