みなさんこんにちは。
内山です。
エクセルで本当によく使われる日付ですがその仕組みはあまり知られておりません。
仕組みが理解ればとても便利に使えます。
今回は特定の曜日に自動的に色を付けたりしてみましょう。
エクセルの日付は数値の表記を変えているだけ
「エクセルの「日付」セルに自動的に曜日も表示してしまう裏技」
でも詳しく説明しましたが、
エクセル欄に日付を入力すると「2021/2/20」のように記載されますが、実は
44247
という数値が入力されています。
(1900/1/1を1として何日後かという数値です。)
それをユーザーのお好みの日付表示に変えることができるというわけです。
なので、横一列に同じ数値を入力しておいて
年 月 日 曜日
と、列ごとにそれぞれを表記させることが可能です。
実際の表をつくってみましょう
いろいろな方法がありますが、今回は以下のような手順でつくってみます。
- 希望する日付がどの数値になるか調べます。(表の最初の日付をどこかに入力し右クリック→セルの書式設定→標準(または数値)→OK でセルの値が数値に変わる)
- 表の枠と数値、年、月、日、曜日の見出しを入力します。
- 数値のセル(ここではB3)に1で調べた数値を入力します。
- 年、月、日、曜日のセル(CDEF列)に「=B3」と入力します。(この時点ではすべてのセルに数値が入力されています。)
- 見出しに入力されている数値のセルを右クリック→セルの書式設定で「ユーザー定義」を選択し「種類」の欄にそれぞれ以下のように入力します。
- それぞれの列に見出しにあった表記がされました。
- 表の列をドラッグして選択します(ここではB3~F3)。
- 一番右のセルの右下を下方向にドラッグ&ドロップ(オートフィルでコピー)します。
- 以下のような表が出来上がります(この例では7日分)
このように、行ごとでは同じ数値しか入力していなくても年月日や曜日として表示することができます。
今回は日付のもととなる数値のために1列つくりましたが、慣れてくればつくらなくても可能です。
今回のようにつくった場合は、実際の表には表示する必要はないでしょうから非表示にしておくこともできます。
特定の曜日の書式をかえて色をつけたりしてみる
エクセルには
「条件付き書式」
というコマンドがあって、
特定のデータが入力されている場合に書式(フォント、色、背景等)をかえる
ことができます。
たとえば「日」という文字が入力されている場合に文字を赤にする…といった具合です。
今回のケースでも条件付き書式を使うことは可能ですが、見かけは「日月…」となっていても実際のデータは日付のもととなる数値が入力されているので、そのまま漢字を条件づけしても機能しません。
様々な方法があると思いますが、ここでは「weekday関数」を使って日付のもととなる数値を1から7の数値に変換させて以下の手順で行います。
1~7の数値をユーザー定義で「aaa」と設定すると以下のような表記になります。
- 1 → 日
- 2 → 月
- 3 → 火
- 4 → 水
- 5 → 木
- 6 → 金
- 7 → 土
「日」のセルを赤い文字とピンクの背景にしてみましょう。
- 曜日の一番上のセル(ここではF3)に入力されている「=B3」を「=weekday(B3)」に書きかえます。(表記は「土」で変わりませんがweekday関数により値は数値の7に変換されています。)
- 曜日の列をオートフィルで下方向にコピーします。(同様に表記は変わりませんがそれぞれ数値に変換されています。)
- 曜日をドラッグで範囲指定して、リボンから「条件付き書式」→「セルの強調表示ルール」→「文字列」を選択します。
- 「次の文字列を含むセルを書式設定」に「1」を入力
- 書式には、エクセルの標準ですでに「濃い赤の文字、明るい赤の背景」が用意されているのでここではそのままOKをクリック。
- 日だけが赤い書式にかわりました。
- 加えて例えば土を青にかえたい場合は上図の「次の文字列を含むセルを書式設定」に「7」を入力→「②書式」から「ユーザー設定の書式」を選択すると細かく設定ができます。
- 日に加えて土の書式もかわりました。
- 以後は縦にオートフィルするだけで表ができあがります。
まとめ
- エクエルでは日付で表記がされていても入力されているのは数値である。
- エクセルで日付を操作するときは仕組みを学んだ上でその数値を用いて作表したほうが何かと便利である
- 条件付き書式などと組み合わせると自動的に色や背景、フォントなどの書式を変えることもできる。