日付から曜日を抽出する:「地味に役立つ」テクニック

本稿では、実務上大変頻繁に使用する「日付の曜日」などのフォーマットを紹介したい。エクセルは日付を全てシリアル値で管理しているのだが、これを「セルの書式設定」だけを使って簡単に変換することができてしまうのだ。是非、身につけてほしい。

日付が数列になってしまう問題とシリアル値

入力した日付が「数字の値」になってしまう場合の対処』では、エクセルで作業をしている際、日付を入力したら「わけのわからない数列になってしまう」という問題を紹介した。

入力した日付が「数字の値」になってしまう場合の対処

「あれ?日付を入力したらいきなりわけのわからない数列に変換された…!」そんな経験をされた方は多いのではないだろうか。いい加減、エクセルの使い勝手については改善し…

このような問題が生じる理由は、エクセルが日付に「シリアル値」を与えている点にある。

「シリアル値」とは、「1900年1月1日」を「1」、「1900年1月2日」を「2」という具合に、日付を固有の番号で管理するという、オフィス系のソフトウェアに共通する考え方で、ほかにも Microsoft Access でもシリアル値が用いられている。

ちなみに本稿執筆日、すなわち2021年8月24日のシリアル値は「44432」であるが、これは「2021年8月24日が1990年1月1日から起算して44431日後である」という意味でもある。

そして、ユーザーの側がこの具体的な「シリアル値」を覚えておく必要は全くないが、エクセルの「癖」を知っておく上では、「エクセルが日付をシリアル値で管理している」という事実を抑えておく必要がある。

欠点としては、1899年12月31日以前の日付をエクセルに入力することができないという点が挙げられるが、長所としては、日数の計算などが容易にできる、という点が挙げられる。これについてはいずれ機会を見て、「ある日からX日後」を自動計算する、などのテクニックに落とし込んでいきたい。

サンプルシートと書式設定

さて、本稿で次に確認したいのは、実務上の優先順位が非常に高い「必須テクニック」のひとつである「曜日の抽出」だ。とくに、意外と知られていないが、「セルの書式設定」でできることはたくさんある。

ここにこんなサンプルシートを用意しよう(図表1)。

図表1 サンプルシート:シリアル値と書式の関係

2行目で言えば、左端のA2セルには日付のシリアル値「44432」、B2~E2セルにはA2セルを列絶対参照する数式「=$A2」を入れている。

また、A3セル以下、A列には「直上のセルの値を1つ減らす」という計算式を入れており(たとえばA3の場合は「=A2-1」)、A2セルを動かすだけで、すべての値を変更することができる、という仕組みだ(図表2)。

図表2 図表1の計算式

ではなぜ、B列は2021/8/24、C列は「2021年8月24日」、D列は「R3/8/24」、E列は「火曜日」、という具合に、まったく別々の表示ができているのか。

これが、書式設定である。

たとえば、B列を選んで「Ctrl+1」を押すと、「日付」の「#2012/3/14」が選択されていることがわかる(図表3)。

図表3 B列の書式設定

ただ、書式を日付に設定する場合、この「セルの書式設定」ウィンドウに準備されているものを必ずしも使う必要はない。

たとえば、C列に関しては「ユーザー設定」を選び、「種類」ウィンドウで「yyyy"年"m"月"d"日"」という書式を自身で入力している(図表4)。

図表4 C列の書式設定

「y」が西暦下2桁、「yyyy」が西暦4桁、「m」が月、「mm」だと月2桁表示(たとえば1月の場合は「01」と表示される)、「d」が日、「dd」だと日2桁表示(たとえば3日の場合は「03」と表示される)、そして「ge」が「和暦表示」を意味している(図表5

図表5 D列の書式設定

では、E列はどうなっているのか。

「aaaa」と入力すれば良い(図表6)。

図表6 E列の書式設定

セルの書式設定だけで、ここまでできる、ということだ。

日付に関連するセル書式一覧

ちなみに、日付に関連するセルの書式を一覧にしておきたい(図表7)。

図表7 セルの書式(日付、シリアル値44432の場合)
フォーマット 表示 備考
y 21 西暦下2桁
yy 21 西暦下2桁
yyy 2021 西暦4桁
yyyy 2021 西暦4桁
g R 元号のアルファベット
gg 元号の漢字1字
ggg 令和 元号の漢字2字表示
e 3 元号の数値
ee 03 元号の数値2桁表示
m 8 月の数値
mm 08 月の数値2桁表示
mmm Aug 月の英語名称3桁表示
mmmm August 月の英語名称
mmmmm A 月の英語名称1桁表示
d 24 日の数値
dd 24 日の数値2桁表示
ddd Tue 曜日の英語名称3桁
dddd Tuesday 曜日の英語名称
aaa 曜日の漢字1字
aaaa 火曜日 曜日の漢字表示