エクセルで、日付が入力されているセルに、日付と一緒に曜日も表示させる方法を紹介します。
一緒に表示させるだけでなく、別のセルに曜日だけを表示させる事もできます。
方法は2つあり、1つは書式設定で、もう1つは関数を使う事で解決します。
書式設定を使った曜日を表示
日付データがあるセルの書式を設定することで、曜日を表示させます。
書式設定を開く
まず書式設定したセルを範囲選択し、右クリックのメニューからセルの書式設定を選択します。
ユーザー定義
書式設定の画面で、左の分類からユーザー定義を選択。
次に、右の種類の欄に、aaaと直接入力します。
最後にOKで確定。
日付ではなく曜日が表示される
書式設定を反映させると、日付ではなく曜日が表示されるようになります。
ただし、書式設定で表示させているだけなので、実際のデータは日付のままになります。
他にも、=VLOOKUP("水",A:A,1,FALSE) のように、水という文字を探すような関数にも引っかからない。
日付と一緒に表示させたい
ユーザー定義の設定次第で、日付と一緒に表示させたり、英語表記の表日で表示させたりと、好きな形で表示させることができますので、色々な組み合わせを試してみましょう。
使える書式設定は下記の4種類。
- aaa(月、火、水...)
- aaaa(月曜日、火曜日...)
- ddd(Mon、Tue、Wed...)
- dddd(Monday、Tuesday...)
曜日を実データにしたい
ここまでの時点では、あくまでも実データは2020/1/1という日付のままであり、見た目だけを曜日に変えているにすぎません。
ですが、メモ帳を経由して、書式が文字列になっているセルへ値貼り付けすることで、今表示されてる内容を実体化させることができます。
詳しくは下の記事を参考にしてみてください。
WEEKDAY関数を使う
書式設定のほかに、WEEKDAY関数を使う方法があります。
=WEEKDAY(セル)
WEEKDAYを使う
実際にWEEKDAYを使うと、日月火水木金土の順に、1234567の数字が返ってきます。
例えば、その日が日曜日ならば1、水曜日ならば4という結果が出ます。
INDEX関数と組み合わせて日本語化
INDEX関数と組み合わせることで、曜日を数値ではなく日本語にすることができます。
式:=INDEX({"日","月","火","水","木","金","土"},セル)
この関数は、指定された行と列が交差する位置にある値を返します。というちょっと小難しい説明になってます。
今回は、日、月、火、水、木、金、土の並びの中から、n番目の文字を表示させるという使い方をしていて、現在B1セルには4が入っているので、4番目の水が表示されています。
WEEKDAYとINDEXを組み合わせる
わざわざWEEKDAY用のセルを用意してからINDEXを使わなくても、1つの式にまとめきれます。
式:=INDEX({"日","月","火","水","木","金","土"},WEEKDAY(日付セル))
そこまで長い式ではないので、関数でいくなら、まとめてしまってよいでしょう。
関数を使う場合でも同じセルに日付と曜日を表示させたい
先ほどの、WEEKDAY関数とINDEX関数の組み合わせの例では、年月日のセルと、曜日のセルが分かれています。
これを、同じセル上に、日付と曜日の両方を表示させることも可能です。
この時、=A1 & INDEX({"日","月","火","水","木","金","土"},WEEKDAY(A1)) という式にしてしまうと、A1のセルの内容を日付としてではなく、シリアル値で拾ってきてしまいます。
しかも、INDEX関数とWEEKDAY関数を使っている関係で、書式を日付にしても意味がありません。
そこで、YEAR関数、MONTH関数、DAY関数と組み合わせることで、表示させたい形式に整えていきます。
今回は、2020/1/1 (水) と表示させる場合を例とします。
=YEAR(A1) & "/" & MONTH(A1) & "/" & DAY(A1) & " (" & INDEX({"日","月","火","水","木","金","土"},WEEKDAY(A1)) & ")"
少し長い式ですが、やっている事は簡単です。
YEAR関数、MONTH関数、DAY関数はそれぞれ、指定したシリアル値から年月日を算出してくれる関数です。
各関数で日付情報を拾いつつ、見た目を整えるため、間に/が入るようにし、最後に曜日の前後が()で囲まれるようにしているだけです。
コメント