見出し画像

[EXCEL]曜日は手入力しない。曜日を自動で表示する2つの方法。違いと使い分け

日付と時間の入力・日付・計算の一覧は「マガジン」をご覧ください。
 「連続する日付の入力方法」はこちらをどうぞ。

【まとめ】
1「セルの書式設定」で 「ユーザー定義」を aaa に
2 =TEXT(日付セル、”aaa")  
 *1は数値のまま、2は文字列(曜日別集計が可能)になる。


【説明】
新年度を間近に控え、新しい日程表を作る機会も多いでしょう。
エクセルで作られた日程表で、よくこんなものを見かけます。
これ、ちょっと問題です。

何がいけないのか、わかるでしょうか?
そう・・・

曜日が手入力されています。
これだと、毎年(あるいは毎月)曜日を入力し直す必要があります。
エクセルは賢いので、手入力された漢字の曜日でも、下にドラッグすると自動で曜日が変わっていきます。↓↓↓

セルの右下にカーソルを合わせて「+」が出たら下にドラッグします。
すると、曜日が変わっていきます。
4月6日のところで、ドラッグをやめると・・・
4月6日までの曜日が自動で入ります。
なお、最初のセルで「+」をダブルクリックすると、
一番下まで自動で曜日が入ります。

このため、この機能で特に困らない人もいるでしょう。
年々引き継がれている日程表が、このスタイルなので、特に疑問も持たずに使っている人も多いかもしれません。
(先日見た表は、日付も文字列で入っていました・・・。それでも下にドラッグすると日付が変わるのは、流石エクセルです。)

しかし、曜日の手入力では、誤りが発生します。
上の表が「R6年度用」であるならば、曜日が違っています。
R6年(2024年)の4月1日は月曜日です。土曜日なのは昨年です。
(最初の「何がいけないのか」で、「曜日が違う」と気づいた方も多いことでしょう。)

年月日の表示を変えて、和暦年も出しました

手入力だと、このような間違いが発生します。

曜日を手入力してはいけない

新年度の初日の曜日なら、間違えないでしょうけれど、手入力は、常に誤りが発生するおそれがあります。
誤りを防ぐためには「集中力」と「見直し」が必要です。
でも、その作業はムダです。
そこに時間と労力を割く意味はありません。
(そういう不要な作業を一生懸命やっていて「仕事をしている」気になっている者も結構いるのが実情ですが・・・)

曜日を手入力するのはムダです。
なぜなら、一つの日付には一つの曜日しかないからです(当たり前です)。日付(年月日)から曜日を自動で取り出せるからです。しかも間違いなく。

年月日から曜日を取り出す(=表示する)方法は、2つあります。

1 「セルの書式設定」で曜日を表示(曜日は数値)

①セルに「年月日」のセルを引っ張ってくる計算式を入れる

曜日を表示したいセルに = と入れて、年月日の入っているセルをクリック

② 「セルの書式設定」を開く
Ctrl+1(推奨)又は 右クリック(or メニューキー)→ E

③「表示形式」タブの「分類」の「ユーザー定義」を選び、「種類」に「aaa」と入れる。

なぜ a か、なぜ3つか、は不明。
そういうものと覚える。
なお、aaaaとaが4つだと「月曜日」となる。

④「OK」を押す。

これで、曜日が表示されます。

B2には、A2と同じデータが入っていることが分かります。

トレース機能で矢印を出しています

同じデータが入っていますが、
A2セルでは年月日で表示し、
B2セルでは曜日で表示している、ということです。
これで終了です。

この状態から、セルの右下にマウスを当て、「+」が出たら、ダブルクリックすると・・・

下のセルにも曜日が自動で表示されます。
*左右いずれかのセルにデータが入っていないとできません。

以上です。
ここで重要なのは、曜日が右寄せになっていることです。
つまり、この曜日は「数値」データのままということです。
表示は曜日でも、年月日のデータを持っています。

セルの書式を変えると、曜日から年月日に戻ります。

2 TEXT関数を使って、曜日を表示(曜日は文字列)

もう一つは、TEXT(テキスト)関数を使う方法です。
Microsoftサポートによれば、
TEXT関数は、
=TEXT(書式設定する値, "適用する表示形式コード")
とあります。

指定したセルを「””」の中の書式で表示する ということです。

具体的にやってみます。
曜日を表示したいセルに =text(年月日セル,"aaa") と入力します。
この場合、「年月日セル」はA2です。


=te と入れて出てきた関数候補からTabで決定しても構いません。
後は、隣のセルをクリックし、「,」の後に、”aaa" と入れます。
いずれの場合も、最後にEnter を押します。最後の「)」は不要です。

これで、曜日が入ります。
1と同じく "aaaa"だと「月曜日」になります。

1と同じように、セル右下にカーソルを当てて、「+」が出たらダブルクリックします。

B2セル以外は枠線をつけていませんが、
曜日が入るとともに、
枠線も自動で付きました。
「+」→カチャカチャによるオートフィルによる結果です。

これで、下のセルにも曜日が入りました。

ここで重要なのは、曜日が左寄せになっていることです。
つまり、この曜日は「文字列」になっているということです。
TEXT関数を使うと、元の数値データは消えて、文字列になります。
「セルの書式設定」で「日付」を選んでも、年月日は表示されません。↓↓↓

「セルの書式設定」で「日付」を選んでも、
年月日には戻りません。

2つの方法をどう使い分けるか?

上記1では日付を数値のままで曜日表示にし、
上記2では日付から文字列として曜日を表示する方法をお示ししました。

この2つの方法、どう使い分けたらいいでしょうか?

単純な日程表なら1でも2でも、どちらでもいいでしょう。
曜日を日付として計算式などで使う可能性があれば、1です。
ただし、隣の日付データを使えば済むので、その機会は少ないかもしれません。
*そもそも、日付と曜日を一緒に表示することも可能です。
 日付と曜日を同一セルに表示する方法 m/d(aaa)

また、1の数値データは2の文字列に変えられますが、2の文字列から1の数値データには変えられないので、1の方が融通が利きます。
作業的にも、関数を使わない1の方が楽でしょう。

では、2にする場合は?

文字列の曜日は、曜日別集計に使える

見出しの通りですが、曜日を文字列にした場合、曜日別の集計に使えます。
というか、曜日別集計をするなら、曜日は文字列にする必要があります。

これは1ではできないことです。
例を見てみます。
ある施設の日別の利用者数一覧から、曜日別の平均利用者数を出したいとします。
しかし、B列の曜日(=数値)から、曜日の数を出すことはできません。。

計算式を入れても、ゼロになってしまっています。

=COUNTIFS(B:B,F2)とは
B列にF2(月)と同じものがいくつあるか、を出す計算式です。
(単一条件ですが、SUMIF関数はあえて使いません。詳細別途。)

日付データのままでは、曜日の集計はできないということが分かります。
元々が「日付」データなので、曜日の数を数えることができないのです。
同じく、曜日別の利用者数の合計も出せません。
従って、曜日別の平均利用者数も出せません。

念のため、ピボットテーブルでも試してみます。
*ピボットテーブルの使い方の概略は「データ集計をどう行うか? 実際の自治体データをもとに考える⑤ ピボットテーブル」をご覧ください。

行ラベルには同じ曜日が複数出てきます。
これは、見た目には同じ曜日でも、実際は、それぞれ違う日付であるため、こうなってしまうわけです。

一方、文字列の曜日の場合、これらが集計できます。
文字列である曜日の列Cに「月」がいくつあるか、集計してみると・・・

=COUNTIFS(C:C,F2) とは、
C列の中にF2(月)がいくつあるか、を出す計算式です。
曜日が文字列となっているC列からは「月」の数を集計することができることが分かります。
同じく、曜日別の利用者数の計も出せます。

=SUMIFS(D:D,C:C,F2) とは、
「D列(利用者数)の数を合計する、ただし、C列(曜日)がF2(月)と同じものに限る」、つまり、
「C列(曜日)がF2(月)と同じもののD列(利用者数)の合計を出す」
という計算式です。

曜日の数と曜日別の利用者数の合計が出るので、曜日別の平均利用者数を出すことができます。
このように、曜日別の集計を出す場合、TEXT関数を使って、日付を曜日の文字列にしておきます。

念のため、ピボットテーブルでも確認してみます。

こちらは、行ラベルに曜日が7つ(月~日)しかなく(これが普通)、それぞれの曜日の数が正しく集計されています。

*上の例は、あえて「右寄せ」「左寄せ」のままにしてありますが、
「中央寄せ」にするなら、次のショートカットを使います。
Alt → H(ホーム)→A → C の順番押し

*実務なら、表には1年分(1か月分)の数値が入るのでしょうけれど、上は見本なので4月12日までしかデータを入れていません。
*本来は、データ一覧と集計表は別シートにするべきですが、上の例ではわかりやすいように同一シート上に並べています。

ちなみに、上の例は既に日付が入っていることが前提です。
日付を入れ方は「連続する日付の入力方法」をご覧ください。

こちらもどうぞ

余談ですが、一時期、インスタグラムのリール(動画)などで、上の2の方法が紹介されているものを結構見かけました。
ただ、「=text(セル,"aaa") で曜日が表示できるの知ってた?」的な内容だけで、1との違いなどまでには触れず。動画の時間的な問題があるのでしょうけれど、その情報だけではなぁ、と思いました。
まぁ、「こんなことができるんだ」というきっかけにはなるのでしょう。

以上、長くなりましたが、参考になれば幸いです。








この記事が気に入ったらサポートをしてみませんか?