メインコンテンツへスキップ
見出し画像

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

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

    2025/4/20追加 PDF版「日付と時間の入力、表示、計算」を作成しました



    【まとめ】
    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との違いなどまでには触れず。動画の時間的な問題があるのでしょうけれど、その情報だけではなぁ、と思いました。
    まぁ、「こんなことができるんだ」というきっかけにはなるのでしょう。

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







    2

    あなたへのおすすめ