エクセルで曜日を出す方法は「セルの表示形式」「TEXT関数」「WEEKDAY関数」の3つです。見た目を変えたいだけなら表示形式、曜日の文字を別セルに取り出すならTEXT、色分けや集計に使うならWEEKDAY。返ってくるものの型が3つとも違うので、目的から逆に選ぶのが早道です。
この記事でわかること
- 曜日を出す3つの方法と、どれを選ぶかの判断基準
- 表示形式の
aaaと、日付+曜日を1つのセルに収める書き方 - WEEKDAY関数の種類(第2引数)の選び方
- 土日・祝日に色を付ける条件付き書式の式
- 曜日が出ない・数字のままになるときの原因と直し方
曜日を出す3つの方法と選び方
同じ「曜日を出す」でも、返るものが違います。ここを取り違えると後で詰まります。
| 方法 | 何が返るか | 元の日付 | 向いている場面 |
|---|---|---|---|
| セルの表示形式 | 見た目だけが変わる(値は日付のまま) | そのまま残る | 予定表・カレンダーを見やすくする |
| TEXT関数 | 文字列の「月」「月曜日」 | 別セルに残る | 曜日の文字を連結したい・別列に出したい |
| WEEKDAY関数 | 数値の1〜7 | 別セルに残る | 判定・色分け・曜日別の集計 |
判断はこの順で付きます。計算に使うなら表示形式かWEEKDAY、文字として使うならTEXT。TEXT関数が返すのは文字列なので、その値で足し算や大小比較をしようとすると行き止まりになります。

方法① セルの表示形式で曜日を表示する
数式を1本も足さずに済む方法です。日付が入ったセルを選び、Ctrl+1で「セルの書式設定」を開きます。「表示形式」タブの左側からユーザー定義を選び、「種類」の欄に書式記号を入力します。
| 種類に入れる記号 | 表示例 |
|---|---|
aaa | 月 |
aaaa | 月曜日 |
ddd | Mon |
dddd | Monday |
yyyy/m/d(aaa) | 2026/4/6(月) |
m月d日(aaa) | 4月6日(月) |
値は日付のまま変わらない
表示形式で変えているのは見せ方だけです。セルの中身は日付のシリアル値のままなので、そのセルを使った日数計算も並べ替えもそのまま通ります。予定表の日付列は、まずこの方法を検討してください。
日付列の隣に曜日列を作るなら、B2に =A2 と入れ、B列の表示形式だけを aaa にします。日付は1か所で管理でき、曜日は自動で追従します。
方法② TEXT関数で曜日を文字列として取り出す
曜日を文字として扱いたいときはTEXT関数です。
=TEXT(A2, "aaa")
書式記号は " で囲みます。囲み忘れると #NAME? になります。使える記号は表示形式と同じで、"aaaa" なら「月曜日」、"ddd" なら「Mon」です。
文章の中に埋め込むときに効きます。
="納品日は "&TEXT($A2,"m月d日(aaa)")&" です"
⚠️ 返るのは文字列
TEXT関数の結果は数値ではなく文字列です。左寄せで表示されるのが目印になります。
そのため、TEXTで作った曜日列をそのまま並べ替えても、曜日の順番にはなりません。「月・火・水」ではなく文字コードの順に並びます。曜日順に並べたいなら、次のWEEKDAY関数で数値の作業列を作り、そちらをキーにします。
方法③ WEEKDAY関数で曜日を数値にする
構文
=WEEKDAY(シリアル値, [種類])
| 引数 | 指定するもの | 注意点 |
|---|---|---|
| シリアル値 | 日付が入ったセル、または日付 | 文字列の日付は #VALUE! になる |
| 種類 | 何曜日を1と数えるか | 省略すると1(日曜が1) |
種類(第2引数)の選び方
| 種類 | 1になる曜日 | 土日はいくつか |
|---|---|---|
| 1(省略時) | 日曜 = 1 〜 土曜 = 7 | 土=7・日=1 |
| 2 | 月曜 = 1 〜 日曜 = 7 | 土=6・日=7 |
| 3 | 月曜 = 0 〜 日曜 = 6 | 土=5・日=6 |
| 11 | 月曜 = 1(種類2と同じ) | 土=6・日=7 |
| 16 | 土曜 = 1 | 土=1・日=2 |
| 17 | 日曜 = 1(種類1と同じ) | 土=7・日=1 |
実務でよく使うのは種類 2 です。土日が6と7で連続するため、>=6 の1条件で「土日」をまとめて判定できます。種類を省略すると日曜が1・土曜が7に分かれ、条件が2つ必要になります。
種類 11〜17 は Excel 2010以降で使えます。種類 1・2・3 はそれより前から使える指定です。
① 土日だけ「休」と表示する
=IF(WEEKDAY($A2,2)>=6, "休", "")
② 曜日の文字に変換する(CHOOSE)
=CHOOSE(WEEKDAY($A2), "日","月","火","水","木","金","土")
WEEKDAYが返した1〜7を、CHOOSE関数が並べた候補の何番目かとして拾います。種類を省略した既定の並びに合わせて「日」から書き始める点に注意してください。TEXT関数のほうが短く書けますが、「日曜」「月曜」のように表記を自分で決めたいときはこの形が使えます。
③ 曜日別に集計する
WEEKDAYの結果を作業列(D列)に出しておけば、=SUMIF($D$2:$D$100, 1, $C$2:$C$100) で月曜の売上だけを合計できます。作業列を作らずに1本で書くなら、SUMPRODUCT関数で配列のまま判定します。
=SUMPRODUCT((WEEKDAY($A$2:$A$100,2)=1)*$C$2:$C$100)

土日・祝日に色を付ける
曜日を出す目的が「予定表を見やすくする」なら、条件付き書式のほうが手数が少なくなります。
- 色を付けたい範囲(見出しを除いた表全体)を選択する
- 「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」
- 数式を入れ、「書式」で塗りつぶし色を選ぶ
| やりたいこと | 入れる数式 |
|---|---|
| 土日の行に色 | =WEEKDAY($A2,2)>=6 |
| 土曜だけ | =WEEKDAY($A2,2)=6 |
| 日曜だけ | =WEEKDAY($A2,2)=7 |
| 祝日リストと一致する行 | =COUNTIF($H$2:$H$30,$A2)>0 |
⚠️ 列だけを固定する($A2)
行全体に色を敷くなら、参照は $A2 の形です。列はドル記号で固定し、行は固定しない。$A$2 と両方固定すると、A2が土日かどうかで表全体が塗られます。逆にどちらも固定しないと、判定する列が右にずれていきます。
数式は選択範囲の左上のセルを基準に書きます。2行目から選んだなら $A2、3行目から選んだなら $A3 です。
祝日ルールは土日ルールより上に置く
同じセルに2つのルールが重なったときは、「条件付き書式ルールの管理」で上にあるルールが優先されます。祝日の色を見せたいなら、祝日ルールを土日ルールより上へ移動してください。
なお、Excelには日本の祝日データが入っていません。祝日を判定するには、別シートに祝日の日付を並べたリストを自分で用意する必要があります。

うまくいかないときの原因と直し方
| 症状 | 主な原因 | 直し方 |
|---|---|---|
aaa と入れたのに「aaa」と表示される | 「文字列」書式のセルに入力した | 表示形式を「標準」に戻してから日付を入れ直す |
| 曜日ではなく5桁の数字が出る | 表示形式が「標準」のまま | 表示形式を日付またはユーザー定義に変える |
#VALUE! | 日付が文字列として入っている | 左寄せなら文字列。DATEVALUE関数で変換するか入力し直す |
#NAME? | TEXT関数の書式記号を " で囲んでいない | =TEXT(A2,"aaa") の形にする |
| WEEKDAYの結果が想定とずれる | 第2引数の種類が違う | 土日を6・7にしたいなら種類は2 |
| 曜日の列が曜日順に並ばない | TEXTの結果は文字列 | WEEKDAYで数値の作業列を作り、それを並べ替えキーにする |
| 条件付き書式で表全体が塗られる | 参照が $A$2 になっている | $A2 に直す(F4キーを押すたびに切り替わる) |
| 祝日に色が付かない | 祝日リストが日付でなく文字列 | =COUNTIF($H$2:$H$30,DATE(2026,1,1)) が0なら文字列 |
日付か文字列かを一発で見分ける
原因の大半は「日付に見えるが日付ではない」です。判定は表示位置で付きます。日付と数値は既定で右寄せ、文字列は左寄せ。外部システムから貼り付けたデータは文字列になっていることが多く、この場合は曜日の関数がすべて #VALUE! を返します。
=ISNUMBER(A2) が FALSE を返せば確定です。
似た方法との使い分け
| 方法 | 対応バージョン | 返るもの | 選ぶ場面 |
|---|---|---|---|
| セルの表示形式 | 2016〜 | 見た目のみ(値は日付) | 元の日付を計算にも使う |
| TEXT | 2016〜 | 文字列 | 曜日の文字を連結・別列に出す |
| WEEKDAY | 2016〜 | 数値 1〜7 | 判定・色分け・曜日別集計 |
| CHOOSE+WEEKDAY | 2016〜 | 文字列 | 曜日の表記を自分で決める |
| WORKDAY | 2016〜 | 日付 | 土日祝を除いて営業日を数える |
いずれも古いバージョンで動くため、バージョンの制約で選ぶ場面はほとんどありません。判断の軸は「その値を後で計算に使うか」の1点です。
なお「土日を除いて日数を数えたい」「〇営業日後の日付が欲しい」という目的なら、曜日を出す必要はありません。WORKDAY関数やNETWORKDAYS関数が直接その答えを返します。
よくある質問
Q1:日付の下のセルに曜日を出したいのですが。
日付がA1にあるとして、A2に =A1 と入れ、A2の表示形式だけを aaa にします。TEXT関数で =TEXT(A1,"aaa") としても表示は同じですが、こちらは文字列になります。後でその曜日セルを計算に使う予定があるなら、表示形式のほうを選んでください。
Q2:曜日を英語で表示できますか?
できます。書式記号を ddd(Mon)または dddd(Monday)にします。TEXT関数なら =TEXT(A2,"ddd") です。日本語の aaa と英語の ddd は、記号を入れ替えるだけで切り替わります。
Q3:カレンダーの何列目に置くかを、曜日で決められますか?
WEEKDAY関数の結果をそのまま列位置に使えます。種類を省略した既定なら日曜が1・土曜が7なので、その値が日曜始まりカレンダーの左から何列目かと一致します。月曜始まりにするなら種類に 2 を指定してください。
Q4:曜日ごとの件数や売上を集計するには?
WEEKDAY関数で数値の作業列を作り、COUNTIF関数・SUMIF関数の条件にその数値を指定するのが最も簡単です。作業列を作りたくない場合は、SUMPRODUCT関数で (WEEKDAY(範囲,2)=1) のように配列のまま判定します。TEXT関数で作った「月」という文字を条件にする方法でも集計はできますが、表記ゆれの影響を受けます。
Q5:土日と祝日で色を分けたいのですが、ルールは2つ必要ですか?
必要です。土日は =WEEKDAY($A2,2)>=6、祝日は祝日リストとの照合 =COUNTIF($H$2:$H$30,$A2)>0 で、判定の仕方そのものが違います。2つのルールを作り、祝日ルールを上に置いて優先させます。祝日リストは自分で用意し、年に一度更新する運用にしておくと安全です。
まとめ
- 選び方の軸は「その値を後で計算に使うか」の1点
- 見た目だけなら表示形式
aaa。値は日付のまま残る - 文字として使うならTEXT。結果は文字列で、曜日順には並ばない
- 判定・色分け・集計はWEEKDAY。種類は
2が扱いやすい(土=6・日=7) - 色分けは条件付き書式で
=WEEKDAY($A2,2)>=6。列だけ固定する
※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。祝日は法令の改正や振替により変動するため、祝日リストは年度ごとに最新の情報で更新してください。

